This is very difficult for a tool to solve. It requires external lookup of what X keymaps to.

This mapping has 5 multi-map groups: several pairings are equally correct there. The code view shows one arbitrary valid pairing, not the only one.

This mapping has 48 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

…lines 1–5 unchanged (5 lines)
6)
7
8var RevertDuringRebaseWhenStoppedOnEdit = NewIntegrationTest(NewIntegrationTestArgs{
9 Description: "Revert a series of commits while stopped in a rebase",
10 ExtraCmdArgs: []string{},
11 Skip: false,
12 SetupConfig: func(cfg *config.AppConfig) {
13 // TODO: use our revert UI once we support range-select for reverts
14 cfg.GetUserConfig().CustomCommands = []config.CustomCommand{
15 {
16 Key: "X",
17 Context: "commits",
18 Command: "git -c core.editor=: revert HEAD^ HEAD^^",
19 },
20 }
21 },
22 SetupRepo: func(shell *Shell) {
23 shell.EmptyCommit("master commit")
24 shell.NewBranch("branch")
25 shell.CreateNCommits(4)
26 },
27 Run: func(t *TestDriver, keys config.KeybindingConfig) {
28 t.Views().Commits().
29 Focus().
30 Lines(
31 Contains("commit 04").IsSelected(),
32 Contains("commit 03"),
33 Contains("commit 02"),
34 Contains("commit 01"),
35 Contains("master commit"),
36 ).
37 NavigateToLine(Contains("commit 03")).
38 Press(keys.Universal.Edit).
39 Lines(
40 Contains("pick").Contains("commit 04"),
41 Contains("<-- YOU ARE HERE --- commit 03").IsSelected(),
42 Contains("commit 02"),
43 Contains("commit 01"),
44 Contains("master commit"),
45 ).
46 Press("X").
47 Lines(
48 Contains("pick").Contains("commit 04"),
49 Contains(`<-- YOU ARE HERE --- Revert "commit 01"`).IsSelected(),
50 Contains(`Revert "commit 02"`),
51 Contains("commit 03"),
52 Contains("commit 02"),
53 Contains("commit 01"),
54 Contains("master commit"),
55 )
56 },
57})
58

After

…lines 1–5 unchanged (5 lines)
6)
7
8var RevertDuringRebaseWhenStoppedOnEdit = NewIntegrationTest(NewIntegrationTestArgs{
9 Description: "Revert a series of commits while stopped in a rebase",
10 ExtraCmdArgs: []string{},
11 Skip: false,
12 SetupConfig: func(cfg *config.AppConfig) {},
13 SetupRepo: func(shell *Shell) {
14 shell.EmptyCommit("master commit 1")
15 shell.EmptyCommit("master commit 2")
16 shell.NewBranch("branch")
17 shell.CreateNCommits(4)
18 },
19 Run: func(t *TestDriver, keys config.KeybindingConfig) {
20 t.Views().Commits().
21 Focus().
22 Lines(
23 Contains("commit 04").IsSelected(),
24 Contains("commit 03"),
25 Contains("commit 02"),
26 Contains("commit 01"),
27 Contains("master commit 2"),
28 Contains("master commit 1"),
29 ).
30 NavigateToLine(Contains("commit 03")).
31 Press(keys.Universal.Edit).
32 Lines(
33 Contains("pick").Contains("commit 04"),
34 Contains("<-- YOU ARE HERE --- commit 03").IsSelected(),
35 Contains("commit 02"),
36 Contains("commit 01"),
37 Contains("master commit 2"),
38 Contains("master commit 1"),
39 ).
40 SelectNextItem().
41 Press(keys.Universal.RangeSelectDown).
42 Press(keys.Commits.RevertCommit).
43 Tap(func() {
44 t.ExpectPopup().Confirmation().
45 Title(Equals("Revert commit")).
46 Content(MatchesRegexp(`Are you sure you want to revert \w+?`)).
47 Confirm()
48 }).
49 Lines(
50 Contains("pick").Contains("commit 04"),
51 Contains(`<-- YOU ARE HERE --- Revert "commit 01"`),
52 Contains(`Revert "commit 02"`),
53 Contains("commit 03"),
54 Contains("commit 02").IsSelected(),
55 Contains("commit 01").IsSelected(),
56 Contains("master commit 2"),
57 Contains("master commit 1"),
58 )
59 },
60})
61

Before

source_file
package_clause
package "package"
package_identifier "interactive_rebase"
import_declaration
import "import"
import_spec_list
( "("
import_spec
interpreted_string_literal
" "\""
interpreted_string_literal_content "github.com/jesseduffield/lazygit/pkg/config"
" "\""
import_spec
dot
. "."
interpreted_string_literal
" "\""
interpreted_string_literal_content "github.com/jesseduffield/lazygit/pkg/integration/components"
" "\""
) ")"
var_declaration
var "var"
var_spec
identifier "RevertDuringRebaseWhenStoppedOnEdit"
= "="
expression_list
call_expression
identifier "NewIntegrationTest"
argument_list
( "("
composite_literal
type_identifier "NewIntegrationTestArgs"
literal_value
{ "{"
keyed_element
literal_element
identifier "Description"
: ":"
literal_element
interpreted_string_literal
" "\""
interpreted_string_literal_content "Revert a series of commits while stopped in a rebase"
" "\""
, ","
keyed_element
literal_element
identifier "ExtraCmdArgs"
: ":"
literal_element
composite_literal
slice_type
[ "["
] "]"
type_identifier "string"
literal_value
{ "{"
} "}"
, ","
keyed_element
literal_element
identifier "Skip"
: ":"
literal_element
false "false"
, ","
keyed_element
literal_element
identifier "SetupConfig"
: ":"
literal_element
func_literal
func "func"
parameter_list
( "("
parameter_declaration
identifier "cfg"
pointer_type
* "*"
qualified_type
package_identifier "config"
. "."
type_identifier "AppConfig"
) ")"
block
{ "{"
comment "// TODO: use our revert UI once we support range-select for "...
statement_list
assignment_statement
expression_list
selector_expression
call_expression
selector_expression
identifier "cfg"
. "."
field_identifier "GetUserConfig"
argument_list
( "("
) ")"
. "."
field_identifier "CustomCommands"
= "="
expression_list
composite_literal
slice_type
[ "["
] "]"
qualified_type
package_identifier "config"
. "."
type_identifier "CustomCommand"
literal_value
{ "{"
literal_element
literal_value
{ "{"
keyed_element
literal_element
identifier "Key"
: ":"
literal_element
interpreted_string_literal
" "\""
interpreted_string_literal_content "X"
" "\""
, ","
keyed_element
literal_element
identifier "Context"
: ":"
literal_element
interpreted_string_literal
" "\""
interpreted_string_literal_content "commits"
" "\""
, ","
keyed_element
literal_element
identifier "Command"
: ":"
literal_element
interpreted_string_literal
" "\""
interpreted_string_literal_content "git -c core.editor=: revert HEAD^ HEAD^^"
" "\""
, ","
} "}"
, ","
} "}"
} "}"
, ","
keyed_element
literal_element
identifier "SetupRepo"
: ":"
literal_element
func_literal
func "func"
parameter_list
( "("
parameter_declaration
identifier "shell"
pointer_type
* "*"
type_identifier "Shell"
) ")"
block
{ "{"
statement_list
expression_statement all 1:2
call_expression all 1:2
selector_expression all 1:2
identifier "shell" all 1:2
. "." all 1:2
field_identifier "EmptyCommit" all 1:2
argument_list all 1:2
( "(" all 1:2
interpreted_string_literal all 1:2
" "\"" all 1:2
interpreted_string_literal_content "master commit" all 1:2
" "\"" all 1:2
) ")" all 1:2
expression_statement
call_expression
selector_expression
identifier "shell"
. "."
field_identifier "NewBranch"
argument_list
( "("
interpreted_string_literal
" "\""
interpreted_string_literal_content "branch"
" "\""
) ")"
expression_statement
call_expression
selector_expression
identifier "shell"
. "."
field_identifier "CreateNCommits"
argument_list
( "("
int_literal "4"
) ")"
} "}"
, ","
keyed_element
literal_element
identifier "Run"
: ":"
literal_element
func_literal
func "func"
parameter_list
( "("
parameter_declaration
identifier "t"
pointer_type
* "*"
type_identifier "TestDriver"
, ","
parameter_declaration
identifier "keys"
qualified_type
package_identifier "config"
. "."
type_identifier "KeybindingConfig"
) ")"
block
{ "{"
statement_list
expression_statement
call_expression any 9:12
selector_expression any 9:12
call_expression any 9:12
selector_expression any 9:12
call_expression any 9:12
selector_expression any 9:12
call_expression any 9:12
selector_expression any 9:12
call_expression any 9:12
selector_expression any 9:12
call_expression any 9:12
selector_expression any 9:12
call_expression any 9:12
selector_expression any 9:12
call_expression any 9:12
selector_expression any 9:12
call_expression any 9:12
selector_expression any 9:12
identifier "t"
. "."
field_identifier "Views"
argument_list
( "("
) ")"
. "."
field_identifier "Commits"
argument_list
( "("
) ")"
. "."
field_identifier "Focus"
argument_list
( "("
) ")"
. "."
field_identifier "Lines"
argument_list
( "("
call_expression
selector_expression
call_expression
identifier "Contains"
argument_list
( "("
interpreted_string_literal
" "\""
interpreted_string_literal_content "commit 04"
" "\""
) ")"
. "."
field_identifier "IsSelected"
argument_list
( "("
) ")"
, ","
call_expression
identifier "Contains"
argument_list
( "("
interpreted_string_literal
" "\""
interpreted_string_literal_content "commit 03"
" "\""
) ")"
, ","
call_expression
identifier "Contains"
argument_list
( "("
interpreted_string_literal
" "\""
interpreted_string_literal_content "commit 02"
" "\""
) ")"
, ","
call_expression
identifier "Contains"
argument_list
( "("
interpreted_string_literal
" "\""
interpreted_string_literal_content "commit 01"
" "\""
) ")"
, ","
call_expression all 1:2
identifier "Contains" all 1:2
argument_list all 1:2
( "(" all 1:2
interpreted_string_literal all 1:2
" "\"" all 1:2
interpreted_string_literal_content "master commit" all 1:2
" "\"" all 1:2
) ")" all 1:2
, "," all 1:2
) ")"
. "."
field_identifier "NavigateToLine"
argument_list
( "("
call_expression
identifier "Contains"
argument_list
( "("
interpreted_string_literal
" "\""
interpreted_string_literal_content "commit 03"
" "\""
) ")"
) ")"
. "."
field_identifier "Press"
argument_list
( "("
selector_expression
selector_expression
identifier "keys"
. "."
field_identifier "Universal"
. "."
field_identifier "Edit"
) ")"
. "."
field_identifier "Lines"
argument_list
( "("
call_expression
selector_expression
call_expression
identifier "Contains"
argument_list
( "("
interpreted_string_literal
" "\""
interpreted_string_literal_content "pick"
" "\""
) ")"
. "."
field_identifier "Contains"
argument_list
( "("
interpreted_string_literal
" "\""
interpreted_string_literal_content "commit 04"
" "\""
) ")"
, ","
call_expression
selector_expression
call_expression
identifier "Contains"
argument_list
( "("
interpreted_string_literal
" "\""
interpreted_string_literal_content "<-- YOU ARE HERE --- commit 03"
" "\""
) ")"
. "."
field_identifier "IsSelected"
argument_list
( "("
) ")"
, ","
call_expression
identifier "Contains"
argument_list
( "("
interpreted_string_literal
" "\""
interpreted_string_literal_content "commit 02"
" "\""
) ")"
, ","
call_expression
identifier "Contains"
argument_list
( "("
interpreted_string_literal
" "\""
interpreted_string_literal_content "commit 01"
" "\""
) ")"
, ","
call_expression all 1:2
identifier "Contains" all 1:2
argument_list all 1:2
( "(" all 1:2
interpreted_string_literal all 1:2
" "\"" all 1:2
interpreted_string_literal_content "master commit" all 1:2
" "\"" all 1:2
) ")" all 1:2
, "," all 1:2
) ")"
. "."
field_identifier "Press"
argument_list
( "("
interpreted_string_literal
" "\""
interpreted_string_literal_content "X"
" "\""
) ")"
. "."
field_identifier "Lines"
argument_list
( "("
call_expression
selector_expression
call_expression
identifier "Contains"
argument_list
( "("
interpreted_string_literal
" "\""
interpreted_string_literal_content "pick"
" "\""
) ")"
. "."
field_identifier "Contains"
argument_list
( "("
interpreted_string_literal
" "\""
interpreted_string_literal_content "commit 04"
" "\""
) ")"
, ","
call_expression any 2:1
selector_expression
call_expression any 2:1
identifier "Contains"
argument_list
( "("
raw_string_literal
` "`"
raw_string_literal_content "<-- YOU ARE HERE --- Revert \"commit 01\""
` "`"
) ")"
. "." all 1:2
field_identifier "IsSelected" all 1:2
argument_list all 1:2
( "(" all 1:2
) ")" all 1:2
, ","
call_expression
identifier "Contains"
argument_list
( "("
raw_string_literal
` "`"
raw_string_literal_content "Revert \"commit 02\""
` "`"
) ")"
, ","
call_expression
identifier "Contains"
argument_list
( "("
interpreted_string_literal
" "\""
interpreted_string_literal_content "commit 03"
" "\""
) ")"
, ","
call_expression any 1:2
identifier "Contains"
argument_list
( "("
interpreted_string_literal
" "\""
interpreted_string_literal_content "commit 02"
" "\""
) ")"
, ","
call_expression any 1:2
identifier "Contains"
argument_list
( "("
interpreted_string_literal
" "\""
interpreted_string_literal_content "commit 01"
" "\""
) ")"
, ","
call_expression all 1:2
identifier "Contains" all 1:2
argument_list all 1:2
( "(" all 1:2
interpreted_string_literal all 1:2
" "\"" all 1:2
interpreted_string_literal_content "master commit" all 1:2
" "\"" all 1:2
) ")" all 1:2
, "," all 1:2
) ")"
} "}"
, ","
} "}"
) ")"

After

source_file
package_clause
package "package"
package_identifier "interactive_rebase"
import_declaration
import "import"
import_spec_list
( "("
import_spec
interpreted_string_literal
" "\""
interpreted_string_literal_content "github.com/jesseduffield/lazygit/pkg/config"
" "\""
import_spec
dot
. "."
interpreted_string_literal
" "\""
interpreted_string_literal_content "github.com/jesseduffield/lazygit/pkg/integration/components"
" "\""
) ")"
var_declaration
var "var"
var_spec
identifier "RevertDuringRebaseWhenStoppedOnEdit"
= "="
expression_list
call_expression
identifier "NewIntegrationTest"
argument_list
( "("
composite_literal
type_identifier "NewIntegrationTestArgs"
literal_value
{ "{"
keyed_element
literal_element
identifier "Description"
: ":"
literal_element
interpreted_string_literal
" "\""
interpreted_string_literal_content "Revert a series of commits while stopped in a rebase"
" "\""
, ","
keyed_element
literal_element
identifier "ExtraCmdArgs"
: ":"
literal_element
composite_literal
slice_type
[ "["
] "]"
type_identifier "string"
literal_value
{ "{"
} "}"
, ","
keyed_element
literal_element
identifier "Skip"
: ":"
literal_element
false "false"
, ","
keyed_element
literal_element
identifier "SetupConfig"
: ":"
literal_element
func_literal
func "func"
parameter_list
( "("
parameter_declaration
identifier "cfg"
pointer_type
* "*"
qualified_type
package_identifier "config"
. "."
type_identifier "AppConfig"
) ")"
block
{ "{"
} "}"
, ","
keyed_element
literal_element
identifier "SetupRepo"
: ":"
literal_element
func_literal
func "func"
parameter_list
( "("
parameter_declaration
identifier "shell"
pointer_type
* "*"
type_identifier "Shell"
) ")"
block
{ "{"
statement_list
expression_statement all 1:2
call_expression all 1:2
selector_expression all 1:2
identifier "shell" all 1:2
. "." all 1:2
field_identifier "EmptyCommit" all 1:2
argument_list all 1:2
( "(" all 1:2
interpreted_string_literal all 1:2
" "\"" all 1:2
interpreted_string_literal_content "master commit 1" all 1:2
" "\"" all 1:2
) ")" all 1:2
expression_statement all 1:2
call_expression all 1:2
selector_expression all 1:2
identifier "shell" all 1:2
. "." all 1:2
field_identifier "EmptyCommit" all 1:2
argument_list all 1:2
( "(" all 1:2
interpreted_string_literal all 1:2
" "\"" all 1:2
interpreted_string_literal_content "master commit 2" all 1:2
" "\"" all 1:2
) ")" all 1:2
expression_statement
call_expression
selector_expression
identifier "shell"
. "."
field_identifier "NewBranch"
argument_list
( "("
interpreted_string_literal
" "\""
interpreted_string_literal_content "branch"
" "\""
) ")"
expression_statement
call_expression
selector_expression
identifier "shell"
. "."
field_identifier "CreateNCommits"
argument_list
( "("
int_literal "4"
) ")"
} "}"
, ","
keyed_element
literal_element
identifier "Run"
: ":"
literal_element
func_literal
func "func"
parameter_list
( "("
parameter_declaration
identifier "t"
pointer_type
* "*"
type_identifier "TestDriver"
, ","
parameter_declaration
identifier "keys"
qualified_type
package_identifier "config"
. "."
type_identifier "KeybindingConfig"
) ")"
block
{ "{"
statement_list
expression_statement
call_expression any 9:12
selector_expression any 9:12
call_expression any 9:12
selector_expression any 9:12
call_expression any 9:12
selector_expression any 9:12
call_expression any 9:12
selector_expression any 9:12
call_expression any 9:12
selector_expression any 9:12
call_expression any 9:12
selector_expression any 9:12
call_expression any 9:12
selector_expression any 9:12
call_expression any 9:12
selector_expression any 9:12
call_expression any 9:12
selector_expression any 9:12
call_expression any 9:12
selector_expression any 9:12
call_expression any 9:12
selector_expression any 9:12
call_expression any 9:12
selector_expression any 9:12
identifier "t"
. "."
field_identifier "Views"
argument_list
( "("
) ")"
. "."
field_identifier "Commits"
argument_list
( "("
) ")"
. "."
field_identifier "Focus"
argument_list
( "("
) ")"
. "."
field_identifier "Lines"
argument_list
( "("
call_expression
selector_expression
call_expression
identifier "Contains"
argument_list
( "("
interpreted_string_literal
" "\""
interpreted_string_literal_content "commit 04"
" "\""
) ")"
. "."
field_identifier "IsSelected"
argument_list
( "("
) ")"
, ","
call_expression
identifier "Contains"
argument_list
( "("
interpreted_string_literal
" "\""
interpreted_string_literal_content "commit 03"
" "\""
) ")"
, ","
call_expression
identifier "Contains"
argument_list
( "("
interpreted_string_literal
" "\""
interpreted_string_literal_content "commit 02"
" "\""
) ")"
, ","
call_expression
identifier "Contains"
argument_list
( "("
interpreted_string_literal
" "\""
interpreted_string_literal_content "commit 01"
" "\""
) ")"
, ","
call_expression all 1:2
identifier "Contains" all 1:2
argument_list all 1:2
( "(" all 1:2
interpreted_string_literal all 1:2
" "\"" all 1:2
interpreted_string_literal_content "master commit 2" all 1:2
" "\"" all 1:2
) ")" all 1:2
, "," all 1:2
call_expression all 1:2
identifier "Contains" all 1:2
argument_list all 1:2
( "(" all 1:2
interpreted_string_literal all 1:2
" "\"" all 1:2
interpreted_string_literal_content "master commit 1" all 1:2
" "\"" all 1:2
) ")" all 1:2
, "," all 1:2
) ")"
. "."
field_identifier "NavigateToLine"
argument_list
( "("
call_expression
identifier "Contains"
argument_list
( "("
interpreted_string_literal
" "\""
interpreted_string_literal_content "commit 03"
" "\""
) ")"
) ")"
. "."
field_identifier "Press"
argument_list
( "("
selector_expression
selector_expression
identifier "keys"
. "."
field_identifier "Universal"
. "."
field_identifier "Edit"
) ")"
. "."
field_identifier "Lines"
argument_list
( "("
call_expression
selector_expression
call_expression
identifier "Contains"
argument_list
( "("
interpreted_string_literal
" "\""
interpreted_string_literal_content "pick"
" "\""
) ")"
. "."
field_identifier "Contains"
argument_list
( "("
interpreted_string_literal
" "\""
interpreted_string_literal_content "commit 04"
" "\""
) ")"
, ","
call_expression
selector_expression
call_expression
identifier "Contains"
argument_list
( "("
interpreted_string_literal
" "\""
interpreted_string_literal_content "<-- YOU ARE HERE --- commit 03"
" "\""
) ")"
. "."
field_identifier "IsSelected"
argument_list
( "("
) ")"
, ","
call_expression
identifier "Contains"
argument_list
( "("
interpreted_string_literal
" "\""
interpreted_string_literal_content "commit 02"
" "\""
) ")"
, ","
call_expression
identifier "Contains"
argument_list
( "("
interpreted_string_literal
" "\""
interpreted_string_literal_content "commit 01"
" "\""
) ")"
, ","
call_expression all 1:2
identifier "Contains" all 1:2
argument_list all 1:2
( "(" all 1:2
interpreted_string_literal all 1:2
" "\"" all 1:2
interpreted_string_literal_content "master commit 2" all 1:2
" "\"" all 1:2
) ")" all 1:2
, "," all 1:2
call_expression all 1:2
identifier "Contains" all 1:2
argument_list all 1:2
( "(" all 1:2
interpreted_string_literal all 1:2
" "\"" all 1:2
interpreted_string_literal_content "master commit 1" all 1:2
" "\"" all 1:2
) ")" all 1:2
, "," all 1:2
) ")"
. "."
field_identifier "SelectNextItem"
argument_list
( "("
) ")"
. "."
field_identifier "Press"
argument_list
( "("
selector_expression
selector_expression
identifier "keys"
. "."
field_identifier "Universal"
. "."
field_identifier "RangeSelectDown"
) ")"
. "."
field_identifier "Press"
argument_list
( "("
selector_expression
selector_expression
identifier "keys"
. "."
field_identifier "Commits"
. "."
field_identifier "RevertCommit"
) ")"
. "."
field_identifier "Tap"
argument_list
( "("
func_literal
func "func"
parameter_list
( "("
) ")"
block
{ "{"
statement_list
expression_statement
call_expression
selector_expression
call_expression
selector_expression
call_expression
selector_expression
call_expression
selector_expression
call_expression
selector_expression
identifier "t"
. "."
field_identifier "ExpectPopup"
argument_list
( "("
) ")"
. "."
field_identifier "Confirmation"
argument_list
( "("
) ")"
. "."
field_identifier "Title"
argument_list
( "("
call_expression
identifier "Equals"
argument_list
( "("
interpreted_string_literal
" "\""
interpreted_string_literal_content "Revert commit"
" "\""
) ")"
) ")"
. "."
field_identifier "Content"
argument_list
( "("
call_expression
identifier "MatchesRegexp"
argument_list
( "("
raw_string_literal
` "`"
raw_string_literal_content "Are you sure you want to revert \\w+?"
` "`"
) ")"
) ")"
. "."
field_identifier "Confirm"
argument_list
( "("
) ")"
} "}"
) ")"
. "."
field_identifier "Lines"
argument_list
( "("
call_expression
selector_expression
call_expression
identifier "Contains"
argument_list
( "("
interpreted_string_literal
" "\""
interpreted_string_literal_content "pick"
" "\""
) ")"
. "."
field_identifier "Contains"
argument_list
( "("
interpreted_string_literal
" "\""
interpreted_string_literal_content "commit 04"
" "\""
) ")"
, ","
call_expression any 2:1
identifier "Contains"
argument_list
( "("
raw_string_literal
` "`"
raw_string_literal_content "<-- YOU ARE HERE --- Revert \"commit 01\""
` "`"
) ")"
, ","
call_expression
identifier "Contains"
argument_list
( "("
raw_string_literal
` "`"
raw_string_literal_content "Revert \"commit 02\""
` "`"
) ")"
, ","
call_expression
identifier "Contains"
argument_list
( "("
interpreted_string_literal
" "\""
interpreted_string_literal_content "commit 03"
" "\""
) ")"
, ","
call_expression any 1:2
selector_expression
call_expression any 1:2
identifier "Contains"
argument_list
( "("
interpreted_string_literal
" "\""
interpreted_string_literal_content "commit 02"
" "\""
) ")"
. "." all 1:2
field_identifier "IsSelected" all 1:2
argument_list all 1:2
( "(" all 1:2
) ")" all 1:2
, ","
call_expression any 1:2
selector_expression
call_expression any 1:2
identifier "Contains"
argument_list
( "("
interpreted_string_literal
" "\""
interpreted_string_literal_content "commit 01"
" "\""
) ")"
. "." all 1:2
field_identifier "IsSelected" all 1:2
argument_list all 1:2
( "(" all 1:2
) ")" all 1:2
, ","
call_expression all 1:2
identifier "Contains" all 1:2
argument_list all 1:2
( "(" all 1:2
interpreted_string_literal all 1:2
" "\"" all 1:2
interpreted_string_literal_content "master commit 2" all 1:2
" "\"" all 1:2
) ")" all 1:2
, "," all 1:2
call_expression all 1:2
identifier "Contains" all 1:2
argument_list all 1:2
( "(" all 1:2
interpreted_string_literal all 1:2
" "\"" all 1:2
interpreted_string_literal_content "master commit 1" all 1:2
" "\"" all 1:2
) ")" all 1:2
, "," all 1:2
) ")"
} "}"
, ","
} "}"
) ")"