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–71 unchanged (71 lines)
72 * @return an XML declaration if it could be parsed as one, null otherwise.
73 */
74 public XmlDeclaration asXmlDeclaration() {
75 String data = getData();
76 Document doc = Jsoup.parse("<" + data.substring(1, data.length() -1) + ">", baseUri(), Parser.xmlParser());
77 XmlDeclaration decl = null;
78 if (doc.childNodeSize() > 0) {
79 Element el = doc.child(0);
80 decl = new XmlDeclaration(NodeUtils.parser(doc).settings().normalizeTag(el.tagName()), data.startsWith("!"));
81 decl.attributes().addAll(el.attributes());
82 }
83 return decl;
84 }
85}
86

After

…lines 1–71 unchanged (71 lines)
72 * @return an XML declaration if it could be parsed as one, null otherwise.
73 */
74 public XmlDeclaration asXmlDeclaration() {
75 String data = getData();
76 Document doc = Jsoup.parse("<" + data.substring(1, data.length() -1) + ">", baseUri(), Parser.xmlParser());
77 XmlDeclaration decl = null;
78 if (doc.children().size() > 0) {
79 Element el = doc.child(0);
80 decl = new XmlDeclaration(NodeUtils.parser(doc).settings().normalizeTag(el.tagName()), data.startsWith("!"));
81 decl.attributes().addAll(el.attributes());
82 }
83 return decl;
84 }
85}
86

Before

program
package_declaration
package "package"
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "jsoup"
. "."
identifier "nodes"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "jsoup"
. "."
identifier "Jsoup"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "jsoup"
. "."
identifier "parser"
. "."
identifier "Parser"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "io"
. "."
identifier "IOException"
; ";"
block_comment "/**\n A comment node.\n\n @author Jonathan Hedley, jonathan@hed"...
class_declaration
modifiers
public "public"
class "class"
identifier "Comment"
superclass
extends "extends"
type_identifier "LeafNode"
class_body
{ "{"
field_declaration
modifiers
private "private"
static "static"
final "final"
type_identifier "String"
variable_declarator
identifier "COMMENT_KEY"
= "="
string_literal
" "\""
string_fragment "comment"
" "\""
; ";"
block_comment "/**\n Create a new comment node.\n @param data The con"...
constructor_declaration
modifiers
public "public"
identifier "Comment"
formal_parameters
( "("
formal_parameter
type_identifier "String"
identifier "data"
) ")"
constructor_body
{ "{"
expression_statement
assignment_expression
identifier "value"
= "="
identifier "data"
; ";"
} "}"
block_comment "/**\n Create a new comment node.\n @param data The con"...
constructor_declaration (+24 nodes collapsed)
method_declaration
modifiers
public "public"
type_identifier "String"
identifier "nodeName"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
string_literal
" "\""
string_fragment "#comment"
" "\""
; ";"
} "}"
block_comment "/**\n Get the contents of the comment.\n @return comme"...
method_declaration
modifiers
public "public"
type_identifier "String"
identifier "getData"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
method_invocation
identifier "coreValue"
argument_list
( "("
) ")"
; ";"
} "}"
method_declaration (+85 nodes collapsed)
method_declaration (+24 nodes collapsed)
method_declaration (+22 nodes collapsed)
block_comment "/**\n * Check if this comment looks like an XML Declarati"...
method_declaration (+67 nodes collapsed)
block_comment "/**\n * Attempt to cast this comment to an XML Declaratio"...
method_declaration
modifiers
public "public"
type_identifier "XmlDeclaration"
identifier "asXmlDeclaration"
formal_parameters
( "("
) ")"
block
{ "{"
local_variable_declaration
type_identifier "String"
variable_declarator
identifier "data"
= "="
method_invocation
identifier "getData"
argument_list
( "("
) ")"
; ";"
local_variable_declaration (+58 nodes collapsed)
local_variable_declaration
type_identifier "XmlDeclaration"
variable_declarator
identifier "decl"
= "="
null_literal "null"
; ";"
if_statement
if "if"
parenthesized_expression
( "("
binary_expression
method_invocation
identifier "doc"
. "."
identifier "childNodeSize"
argument_list
( "("
) ")"
> ">"
decimal_integer_literal "0"
) ")"
block (+89 nodes collapsed)
return_statement
return "return"
identifier "decl"
; ";"
} "}"
} "}"

After

program
package_declaration
package "package"
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "jsoup"
. "."
identifier "nodes"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "jsoup"
. "."
identifier "Jsoup"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "jsoup"
. "."
identifier "parser"
. "."
identifier "Parser"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "io"
. "."
identifier "IOException"
; ";"
block_comment "/**\n A comment node.\n\n @author Jonathan Hedley, jonathan@hed"...
class_declaration
modifiers
public "public"
class "class"
identifier "Comment"
superclass
extends "extends"
type_identifier "LeafNode"
class_body
{ "{"
field_declaration
modifiers
private "private"
static "static"
final "final"
type_identifier "String"
variable_declarator
identifier "COMMENT_KEY"
= "="
string_literal
" "\""
string_fragment "comment"
" "\""
; ";"
block_comment "/**\n Create a new comment node.\n @param data The con"...
constructor_declaration
modifiers
public "public"
identifier "Comment"
formal_parameters
( "("
formal_parameter
type_identifier "String"
identifier "data"
) ")"
constructor_body
{ "{"
expression_statement
assignment_expression
identifier "value"
= "="
identifier "data"
; ";"
} "}"
block_comment "/**\n Create a new comment node.\n @param data The con"...
constructor_declaration (+24 nodes collapsed)
method_declaration
modifiers
public "public"
type_identifier "String"
identifier "nodeName"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
string_literal
" "\""
string_fragment "#comment"
" "\""
; ";"
} "}"
block_comment "/**\n Get the contents of the comment.\n @return comme"...
method_declaration
modifiers
public "public"
type_identifier "String"
identifier "getData"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
method_invocation
identifier "coreValue"
argument_list
( "("
) ")"
; ";"
} "}"
method_declaration (+85 nodes collapsed)
method_declaration (+24 nodes collapsed)
method_declaration (+22 nodes collapsed)
block_comment "/**\n * Check if this comment looks like an XML Declarati"...
method_declaration (+67 nodes collapsed)
block_comment "/**\n * Attempt to cast this comment to an XML Declaratio"...
method_declaration
modifiers
public "public"
type_identifier "XmlDeclaration"
identifier "asXmlDeclaration"
formal_parameters
( "("
) ")"
block
{ "{"
local_variable_declaration
type_identifier "String"
variable_declarator
identifier "data"
= "="
method_invocation
identifier "getData"
argument_list
( "("
) ")"
; ";"
local_variable_declaration (+58 nodes collapsed)
local_variable_declaration
type_identifier "XmlDeclaration"
variable_declarator
identifier "decl"
= "="
null_literal "null"
; ";"
if_statement
if "if"
parenthesized_expression
( "("
binary_expression
method_invocation
method_invocation
identifier "doc"
. "."
identifier "children"
argument_list
( "("
) ")"
. "."
identifier "size"
argument_list
( "("
) ")"
> ">"
decimal_integer_literal "0"
) ")"
block (+89 nodes collapsed)
return_statement
return "return"
identifier "decl"
; ";"
} "}"
} "}"