This mapping has 2 all-to-all groups: every node on one side corresponds to every node on the other, and none is deleted or inserted. Each member carries an all N:M badge; selecting one highlights all of its counterparts, in the tree and in the code view alike.

Code view:

A painting is a person's account of this edit as text, recorded independently of the node mapping - a rendering often has several equally defensible answers where the mapping has one. Deletions and insertions carry no position on the opposite side in a painting, so that panel draws no caret for them.

Before

1#!/bin/bash
2
3set -eu
4
5# Initialize a variable to keep track of errors
6errors=0
7
8# make sure not importing from langchain or langchain_experimental
9git --no-pager grep '^from langchain\.' . && errors=$((errors+1))
10git --no-pager grep '^from langchain_experimental\.' . && errors=$((errors+1))
11
12# Decide on an exit status based on the errors
13if [ "$errors" -gt 0 ]; then
14 exit 1
15else
16 exit 0
17fi
18

After

1#!/bin/bash
2
3set -eu
4
5# Initialize a variable to keep track of errors
6errors=0
7
8# make sure not importing from langchain or langchain_experimental
9# allow langchain.agents and langchain.tools (v1 middleware)
10git --no-pager grep "^from langchain\." . | grep -v ":from langchain\.agents" | grep -v ":from langchain\.tools" && errors=$((errors+1))
11git --no-pager grep "^from langchain_experimental\." . && errors=$((errors+1))
12
13# Decide on an exit status based on the errors
14if [ "$errors" -gt 0 ]; then
15 exit 1
16else
17 exit 0
18fi
19

Before

program
comment "#!/bin/bash"
command
command_name
word "set"
word "-eu"
comment "# Initialize a variable to keep track of errors"
variable_assignment
variable_name "errors"
= "="
number "0"
comment "# make sure not importing from langchain or langchain_experi"...
list
command
command_name
word "git"
word "--no-pager"
word "grep"
raw_string "'^from langchain\\.'" all 1:3
word "."
&& "&&"
variable_assignment
variable_name "errors"
= "="
arithmetic_expansion
$(( "$(("
binary_expression
variable_name "errors"
+ "+"
number "1"
)) "))"
list
command
command_name
word "git"
word "--no-pager"
word "grep"
raw_string "'^from langchain_experimental\\.'" all 1:3
word "."
&& "&&"
variable_assignment
variable_name "errors"
= "="
arithmetic_expansion
$(( "$(("
binary_expression
variable_name "errors"
+ "+"
number "1"
)) "))"
comment "# Decide on an exit status based on the errors"
if_statement (+27 nodes collapsed)

After

program
comment "#!/bin/bash"
command
command_name
word "set"
word "-eu"
comment "# Initialize a variable to keep track of errors"
variable_assignment
variable_name "errors"
= "="
number "0"
comment "# make sure not importing from langchain or langchain_experi"...
comment "# allow langchain.agents and langchain.tools (v1 middleware)"
pipeline
command
command_name
word "git"
word "--no-pager"
word "grep"
string
" "\"" all 1:3
string_content "^from langchain\\." all 1:3
" "\"" all 1:3
word "."
| "|"
list
pipeline
command
command_name
word "grep"
word "-v"
string
" "\""
string_content ":from langchain\\.agents"
" "\""
| "|"
command
command_name
word "grep"
word "-v"
string
" "\""
string_content ":from langchain\\.tools"
" "\""
&& "&&"
variable_assignment
variable_name "errors"
= "="
arithmetic_expansion
$(( "$(("
binary_expression
variable_name "errors"
+ "+"
number "1"
)) "))"
list
command
command_name
word "git"
word "--no-pager"
word "grep"
string
" "\"" all 1:3
string_content "^from langchain_experimental\\." all 1:3
" "\"" all 1:3
word "."
&& "&&"
variable_assignment
variable_name "errors"
= "="
arithmetic_expansion
$(( "$(("
binary_expression
variable_name "errors"
+ "+"
number "1"
)) "))"
comment "# Decide on an exit status based on the errors"
if_statement (+27 nodes collapsed)