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

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–84 unchanged (84 lines)
85 for (int offset = pos; offset < length; offset++) {
86 // scan to first instance of startchar:
87 if (startChar != input[offset])
88 while(++offset < length && startChar != input[offset]);
89 int i = offset + 1;
90 int last = i + seq.length()-1;
91 if (offset < length) {
92 for (int j = 1; i < last && seq.charAt(j) == input[i]; i++, j++);
93 if (i == last) // found full sequence
94 return offset - pos;
95 }
96 }
97 return -1;
…lines 98–285 unchanged (188 lines)

After

…lines 1–84 unchanged (84 lines)
85 for (int offset = pos; offset < length; offset++) {
86 // scan to first instance of startchar:
87 if (startChar != input[offset])
88 while(++offset < length && startChar != input[offset]);
89 int i = offset + 1;
90 int last = i + seq.length()-1;
91 if (offset < length && last <= length) {
92 for (int j = 1; i < last && seq.charAt(j) == input[i]; i++, j++);
93 if (i == last) // found full sequence
94 return offset - pos;
95 }
96 }
97 return -1;
…lines 98–285 unchanged (188 lines)

Before

program
package_declaration
package "package"
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "jsoup"
. "."
identifier "parser"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "jsoup"
. "."
identifier "helper"
. "."
identifier "Validate"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "Locale"
; ";"
block_comment "/**\n CharacterReader consumes tokens off a string. To replac"...
class_declaration
class "class"
identifier "CharacterReader"
class_body
{ "{"
field_declaration
modifiers
static "static"
final "final"
integral_type
char "char"
variable_declarator
identifier "EOF"
= "="
cast_expression
( "("
integral_type
char "char"
) ")"
unary_expression
- "-"
decimal_integer_literal "1"
; ";"
field_declaration
modifiers
private "private"
final "final"
array_type
integral_type
char "char"
dimensions
[ "["
] "]"
variable_declarator
identifier "input"
; ";"
field_declaration
modifiers
private "private"
final "final"
integral_type
int "int"
variable_declarator
identifier "length"
; ";"
field_declaration
modifiers
private "private"
integral_type
int "int"
variable_declarator
identifier "pos"
= "="
decimal_integer_literal "0"
; ";"
field_declaration
modifiers
private "private"
integral_type
int "int"
variable_declarator
identifier "mark"
= "="
decimal_integer_literal "0"
; ";"
constructor_declaration (+51 nodes collapsed)
method_declaration
integral_type
int "int"
identifier "pos"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "pos"
; ";"
} "}"
method_declaration
boolean_type "boolean"
identifier "isEmpty"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
binary_expression
identifier "pos"
>= ">="
identifier "length"
; ";"
} "}"
method_declaration (+27 nodes collapsed)
method_declaration (+40 nodes collapsed)
method_declaration
void_type "void"
identifier "unconsume"
formal_parameters
( "("
) ")"
block
{ "{"
expression_statement
update_expression
identifier "pos"
-- "--"
; ";"
} "}"
method_declaration
void_type "void"
identifier "advance"
formal_parameters
( "("
) ")"
block
{ "{"
expression_statement
update_expression
identifier "pos"
++ "++"
; ";"
} "}"
method_declaration
void_type "void"
identifier "mark"
formal_parameters
( "("
) ")"
block
{ "{"
expression_statement
assignment_expression
identifier "mark"
= "="
identifier "pos"
; ";"
} "}"
method_declaration
void_type "void"
identifier "rewindToMark"
formal_parameters
( "("
) ")"
block
{ "{"
expression_statement
assignment_expression
identifier "pos"
= "="
identifier "mark"
; ";"
} "}"
method_declaration (+25 nodes collapsed)
block_comment "/**\n * Returns the number of characters between the curr"...
method_declaration (+64 nodes collapsed)
block_comment "/**\n * Returns the number of characters between the curr"...
method_declaration
integral_type
int "int"
identifier "nextIndexOf"
formal_parameters
( "("
formal_parameter
type_identifier "CharSequence"
identifier "seq"
) ")"
block
{ "{"
line_comment "// doesn't handle scanning for surrogates"
local_variable_declaration
integral_type
char "char"
variable_declarator
identifier "startChar"
= "="
method_invocation
identifier "seq"
. "."
identifier "charAt"
argument_list
( "("
decimal_integer_literal "0"
) ")"
; ";"
for_statement
for "for"
( "("
local_variable_declaration
integral_type
int "int"
variable_declarator
identifier "offset"
= "="
identifier "pos"
; ";"
binary_expression
identifier "offset"
< "<"
identifier "length"
; ";"
update_expression
identifier "offset"
++ "++"
) ")"
block
{ "{"
line_comment "// scan to first instance of startchar:"
if_statement (+35 nodes collapsed)
local_variable_declaration
integral_type
int "int"
variable_declarator
identifier "i"
= "="
binary_expression
identifier "offset"
+ "+"
decimal_integer_literal "1"
; ";"
local_variable_declaration
integral_type
int "int"
variable_declarator
identifier "last"
= "="
binary_expression
binary_expression
identifier "i"
+ "+"
method_invocation
identifier "seq"
. "."
identifier "length"
argument_list
( "("
) ")"
- "-"
decimal_integer_literal "1"
; ";"
if_statement
if "if"
parenthesized_expression
( "("
binary_expression any 1:2
identifier "offset"
< "<"
identifier "length"
) ")"
block (+62 nodes collapsed)
} "}"
return_statement
return "return"
unary_expression
- "-"
decimal_integer_literal "1"
; ";"
} "}"
method_declaration (+79 nodes collapsed)
method_declaration (+78 nodes collapsed)
method_declaration (+119 nodes collapsed)
method_declaration (+39 nodes collapsed)
method_declaration (+100 nodes collapsed)
method_declaration (+151 nodes collapsed)
method_declaration (+115 nodes collapsed)
method_declaration (+82 nodes collapsed)
method_declaration (+33 nodes collapsed)
method_declaration (+93 nodes collapsed)
method_declaration (+126 nodes collapsed)
method_declaration (+70 nodes collapsed)
method_declaration (+66 nodes collapsed)
method_declaration (+51 nodes collapsed)
method_declaration (+50 nodes collapsed)
method_declaration (+50 nodes collapsed)
method_declaration (+80 nodes collapsed)
method_declaration (+31 nodes collapsed)
} "}"

After

program
package_declaration
package "package"
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "jsoup"
. "."
identifier "parser"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "jsoup"
. "."
identifier "helper"
. "."
identifier "Validate"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "Locale"
; ";"
block_comment "/**\n CharacterReader consumes tokens off a string. To replac"...
class_declaration
class "class"
identifier "CharacterReader"
class_body
{ "{"
field_declaration
modifiers
static "static"
final "final"
integral_type
char "char"
variable_declarator
identifier "EOF"
= "="
cast_expression
( "("
integral_type
char "char"
) ")"
unary_expression
- "-"
decimal_integer_literal "1"
; ";"
field_declaration
modifiers
private "private"
final "final"
array_type
integral_type
char "char"
dimensions
[ "["
] "]"
variable_declarator
identifier "input"
; ";"
field_declaration
modifiers
private "private"
final "final"
integral_type
int "int"
variable_declarator
identifier "length"
; ";"
field_declaration
modifiers
private "private"
integral_type
int "int"
variable_declarator
identifier "pos"
= "="
decimal_integer_literal "0"
; ";"
field_declaration
modifiers
private "private"
integral_type
int "int"
variable_declarator
identifier "mark"
= "="
decimal_integer_literal "0"
; ";"
constructor_declaration (+51 nodes collapsed)
method_declaration
integral_type
int "int"
identifier "pos"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "pos"
; ";"
} "}"
method_declaration
boolean_type "boolean"
identifier "isEmpty"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
binary_expression
identifier "pos"
>= ">="
identifier "length"
; ";"
} "}"
method_declaration (+27 nodes collapsed)
method_declaration (+40 nodes collapsed)
method_declaration
void_type "void"
identifier "unconsume"
formal_parameters
( "("
) ")"
block
{ "{"
expression_statement
update_expression
identifier "pos"
-- "--"
; ";"
} "}"
method_declaration
void_type "void"
identifier "advance"
formal_parameters
( "("
) ")"
block
{ "{"
expression_statement
update_expression
identifier "pos"
++ "++"
; ";"
} "}"
method_declaration
void_type "void"
identifier "mark"
formal_parameters
( "("
) ")"
block
{ "{"
expression_statement
assignment_expression
identifier "mark"
= "="
identifier "pos"
; ";"
} "}"
method_declaration
void_type "void"
identifier "rewindToMark"
formal_parameters
( "("
) ")"
block
{ "{"
expression_statement
assignment_expression
identifier "pos"
= "="
identifier "mark"
; ";"
} "}"
method_declaration (+25 nodes collapsed)
block_comment "/**\n * Returns the number of characters between the curr"...
method_declaration (+64 nodes collapsed)
block_comment "/**\n * Returns the number of characters between the curr"...
method_declaration
integral_type
int "int"
identifier "nextIndexOf"
formal_parameters
( "("
formal_parameter
type_identifier "CharSequence"
identifier "seq"
) ")"
block
{ "{"
line_comment "// doesn't handle scanning for surrogates"
local_variable_declaration
integral_type
char "char"
variable_declarator
identifier "startChar"
= "="
method_invocation
identifier "seq"
. "."
identifier "charAt"
argument_list
( "("
decimal_integer_literal "0"
) ")"
; ";"
for_statement
for "for"
( "("
local_variable_declaration
integral_type
int "int"
variable_declarator
identifier "offset"
= "="
identifier "pos"
; ";"
binary_expression
identifier "offset"
< "<"
identifier "length"
; ";"
update_expression
identifier "offset"
++ "++"
) ")"
block
{ "{"
line_comment "// scan to first instance of startchar:"
if_statement (+35 nodes collapsed)
local_variable_declaration
integral_type
int "int"
variable_declarator
identifier "i"
= "="
binary_expression
identifier "offset"
+ "+"
decimal_integer_literal "1"
; ";"
local_variable_declaration
integral_type
int "int"
variable_declarator
identifier "last"
= "="
binary_expression
binary_expression
identifier "i"
+ "+"
method_invocation
identifier "seq"
. "."
identifier "length"
argument_list
( "("
) ")"
- "-"
decimal_integer_literal "1"
; ";"
if_statement
if "if"
parenthesized_expression
( "("
binary_expression any 1:2
binary_expression any 1:2
identifier "offset"
< "<"
identifier "length"
&& "&&"
binary_expression
identifier "last"
<= "<="
identifier "length"
) ")"
block (+62 nodes collapsed)
} "}"
return_statement
return "return"
unary_expression
- "-"
decimal_integer_literal "1"
; ";"
} "}"
method_declaration (+79 nodes collapsed)
method_declaration (+78 nodes collapsed)
method_declaration (+119 nodes collapsed)
method_declaration (+39 nodes collapsed)
method_declaration (+100 nodes collapsed)
method_declaration (+151 nodes collapsed)
method_declaration (+115 nodes collapsed)
method_declaration (+82 nodes collapsed)
method_declaration (+33 nodes collapsed)
method_declaration (+93 nodes collapsed)
method_declaration (+126 nodes collapsed)
method_declaration (+70 nodes collapsed)
method_declaration (+66 nodes collapsed)
method_declaration (+51 nodes collapsed)
method_declaration (+50 nodes collapsed)
method_declaration (+50 nodes collapsed)
method_declaration (+80 nodes collapsed)
method_declaration (+31 nodes collapsed)
} "}"