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–51 unchanged (51 lines)
52 super(r);
53 }
54
55 @Override
56 public int read() throws IOException {
57 int current = super.read();
58 if (current == '\n') {
59 lineCounter++;
60 }
61 lastChar = current;
62 return lastChar;
63 }
64
…lines 65–162 unchanged (98 lines)

After

…lines 1–51 unchanged (51 lines)
52 super(r);
53 }
54
55 @Override
56 public int read() throws IOException {
57 int current = super.read();
58 if (current == '\r' || (current == '\n' && lastChar != '\r')) {
59 lineCounter++;
60 }
61 lastChar = current;
62 return lastChar;
63 }
64
…lines 65–162 unchanged (98 lines)

Before

program
block_comment "/*\n * Licensed to the Apache Software Foundation (ASF) under"...
package_declaration
package "package"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "apache"
. "."
identifier "commons"
. "."
identifier "csv"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "io"
. "."
identifier "BufferedReader"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "io"
. "."
identifier "IOException"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "io"
. "."
identifier "Reader"
; ";"
block_comment "/**\n * ExtendedBufferedReader\n *\n * A special reader decorat"...
class_declaration
class "class"
identifier "ExtendedBufferedReader"
superclass
extends "extends"
type_identifier "BufferedReader"
class_body
{ "{"
block_comment "/** The end of stream symbol */"
field_declaration
modifiers
static "static"
final "final"
integral_type
int "int"
variable_declarator
identifier "END_OF_STREAM"
= "="
unary_expression
- "-"
decimal_integer_literal "1"
; ";"
block_comment "/** Undefined state for the lookahead char */"
field_declaration
modifiers
static "static"
final "final"
integral_type
int "int"
variable_declarator
identifier "UNDEFINED"
= "="
unary_expression
- "-"
decimal_integer_literal "2"
; ";"
block_comment "/** The last char returned */"
field_declaration
modifiers
private "private"
integral_type
int "int"
variable_declarator
identifier "lastChar"
= "="
identifier "UNDEFINED"
; ";"
block_comment "/** The line counter */"
field_declaration
modifiers
private "private"
integral_type
int "int"
variable_declarator
identifier "lineCounter"
= "="
decimal_integer_literal "0"
; ";"
block_comment "/**\n * Created extended buffered reader using default bu"...
constructor_declaration
identifier "ExtendedBufferedReader"
formal_parameters
( "("
formal_parameter
type_identifier "Reader"
identifier "r"
) ")"
constructor_body
{ "{"
explicit_constructor_invocation
super "super"
argument_list
( "("
identifier "r"
) ")"
; ";"
} "}"
method_declaration
modifiers
marker_annotation
@ "@"
identifier "Override"
public "public"
integral_type
int "int"
identifier "read"
formal_parameters
( "("
) ")"
throws
throws "throws"
type_identifier "IOException"
block
{ "{"
local_variable_declaration
integral_type
int "int"
variable_declarator
identifier "current"
= "="
method_invocation
super "super"
. "."
identifier "read"
argument_list
( "("
) ")"
; ";"
if_statement
if "if"
parenthesized_expression
( "("
binary_expression any 1:2
identifier "current"
== "=="
character_literal "'\\n'"
) ")"
block
{ "{"
expression_statement
update_expression
identifier "lineCounter"
++ "++"
; ";"
} "}"
expression_statement
assignment_expression
identifier "lastChar"
= "="
identifier "current"
; ";"
return_statement
return "return"
identifier "lastChar"
; ";"
} "}"
block_comment "/**\n * Returns the last character that was read as an in"...
method_declaration
integral_type
int "int"
identifier "readAgain"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "lastChar"
; ";"
} "}"
method_declaration (+227 nodes collapsed)
block_comment "/**\n * Calls {@link BufferedReader#readLine()} which dro"...
method_declaration (+101 nodes collapsed)
block_comment "/**\n * Returns the next character in the current reader "...
method_declaration (+50 nodes collapsed)
block_comment "/**\n * Returns the nof line read\n *\n * @return t"...
method_declaration
integral_type
int "int"
identifier "getLineNumber"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "lineCounter"
; ";"
} "}"
} "}"

After

program
block_comment "/*\n * Licensed to the Apache Software Foundation (ASF) under"...
package_declaration
package "package"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "apache"
. "."
identifier "commons"
. "."
identifier "csv"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "io"
. "."
identifier "BufferedReader"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "io"
. "."
identifier "IOException"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "io"
. "."
identifier "Reader"
; ";"
block_comment "/**\n * ExtendedBufferedReader\n *\n * A special reader decorat"...
class_declaration
class "class"
identifier "ExtendedBufferedReader"
superclass
extends "extends"
type_identifier "BufferedReader"
class_body
{ "{"
block_comment "/** The end of stream symbol */"
field_declaration
modifiers
static "static"
final "final"
integral_type
int "int"
variable_declarator
identifier "END_OF_STREAM"
= "="
unary_expression
- "-"
decimal_integer_literal "1"
; ";"
block_comment "/** Undefined state for the lookahead char */"
field_declaration
modifiers
static "static"
final "final"
integral_type
int "int"
variable_declarator
identifier "UNDEFINED"
= "="
unary_expression
- "-"
decimal_integer_literal "2"
; ";"
block_comment "/** The last char returned */"
field_declaration
modifiers
private "private"
integral_type
int "int"
variable_declarator
identifier "lastChar"
= "="
identifier "UNDEFINED"
; ";"
block_comment "/** The line counter */"
field_declaration
modifiers
private "private"
integral_type
int "int"
variable_declarator
identifier "lineCounter"
= "="
decimal_integer_literal "0"
; ";"
block_comment "/**\n * Created extended buffered reader using default bu"...
constructor_declaration
identifier "ExtendedBufferedReader"
formal_parameters
( "("
formal_parameter
type_identifier "Reader"
identifier "r"
) ")"
constructor_body
{ "{"
explicit_constructor_invocation
super "super"
argument_list
( "("
identifier "r"
) ")"
; ";"
} "}"
method_declaration
modifiers
marker_annotation
@ "@"
identifier "Override"
public "public"
integral_type
int "int"
identifier "read"
formal_parameters
( "("
) ")"
throws
throws "throws"
type_identifier "IOException"
block
{ "{"
local_variable_declaration
integral_type
int "int"
variable_declarator
identifier "current"
= "="
method_invocation
super "super"
. "."
identifier "read"
argument_list
( "("
) ")"
; ";"
if_statement
if "if"
parenthesized_expression
( "("
binary_expression
binary_expression
identifier "current"
== "=="
character_literal "'\\r'"
|| "||"
parenthesized_expression
( "("
binary_expression any 1:2
binary_expression any 1:2
identifier "current"
== "=="
character_literal "'\\n'"
&& "&&"
binary_expression
identifier "lastChar"
!= "!="
character_literal "'\\r'"
) ")"
) ")"
block
{ "{"
expression_statement
update_expression
identifier "lineCounter"
++ "++"
; ";"
} "}"
expression_statement
assignment_expression
identifier "lastChar"
= "="
identifier "current"
; ";"
return_statement
return "return"
identifier "lastChar"
; ";"
} "}"
block_comment "/**\n * Returns the last character that was read as an in"...
method_declaration
integral_type
int "int"
identifier "readAgain"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "lastChar"
; ";"
} "}"
method_declaration (+227 nodes collapsed)
block_comment "/**\n * Calls {@link BufferedReader#readLine()} which dro"...
method_declaration (+101 nodes collapsed)
block_comment "/**\n * Returns the next character in the current reader "...
method_declaration (+50 nodes collapsed)
block_comment "/**\n * Returns the nof line read\n *\n * @return t"...
method_declaration
integral_type
int "int"
identifier "getLineNumber"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "lineCounter"
; ";"
} "}"
} "}"