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–757 unchanged (757 lines)
758 break;
759 }
760 return true;
761 }
762
763 boolean anyOtherEndTag(Token t, HtmlTreeBuilder tb) {
764 String name = t.asEndTag().normalName();
765 ArrayList<Element> stack = tb.getStack();
766 for (int pos = stack.size() -1; pos >= 0; pos--) {
767 Element node = stack.get(pos);
768 if (node.nodeName().equals(name)) {
769 tb.generateImpliedEndTags(name);
770 if (!name.equals(tb.currentElement().nodeName()))
…lines 771–1514 unchanged (744 lines)

After

…lines 1–757 unchanged (757 lines)
758 break;
759 }
760 return true;
761 }
762
763 boolean anyOtherEndTag(Token t, HtmlTreeBuilder tb) {
764 String name = t.asEndTag().name(); // matches with case sensitivity if enabled
765 ArrayList<Element> stack = tb.getStack();
766 for (int pos = stack.size() -1; pos >= 0; pos--) {
767 Element node = stack.get(pos);
768 if (node.nodeName().equals(name)) {
769 tb.generateImpliedEndTags(name);
770 if (!name.equals(tb.currentElement().nodeName()))
…lines 771–1514 unchanged (744 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 "StringUtil"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "jsoup"
. "."
identifier "nodes"
. "."
asterisk
* "*"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "ArrayList"
; ";"
block_comment "/**\n * The Tree Builder's current state. Each state embodies"...
enum_declaration
enum "enum"
identifier "HtmlTreeBuilderState"
enum_body
{ "{"
enum_constant (+258 nodes collapsed)
, ","
enum_constant (+342 nodes collapsed)
, ","
enum_constant (+384 nodes collapsed)
, ","
enum_constant (+729 nodes collapsed)
, ","
enum_constant (+469 nodes collapsed)
, ","
enum_constant (+593 nodes collapsed)
, ","
enum_constant
identifier "InBody"
class_body
{ "{"
method_declaration (+5766 nodes collapsed)
method_declaration
boolean_type "boolean"
identifier "anyOtherEndTag"
formal_parameters
( "("
formal_parameter
type_identifier "Token"
identifier "t"
, ","
formal_parameter
type_identifier "HtmlTreeBuilder"
identifier "tb"
) ")"
block
{ "{"
local_variable_declaration
type_identifier "String"
variable_declarator
identifier "name"
= "="
method_invocation
method_invocation
identifier "t"
. "."
identifier "asEndTag"
argument_list
( "("
) ")"
. "."
identifier "normalName"
argument_list
( "("
) ")"
; ";"
local_variable_declaration
generic_type
type_identifier "ArrayList"
type_arguments
< "<"
type_identifier "Element"
> ">"
variable_declarator
identifier "stack"
= "="
method_invocation
identifier "tb"
. "."
identifier "getStack"
argument_list
( "("
) ")"
; ";"
for_statement (+162 nodes collapsed)
return_statement
return "return"
true "true"
; ";"
} "}"
} "}"
, ","
enum_constant (+162 nodes collapsed)
, ","
enum_constant (+1162 nodes collapsed)
, ","
enum_constant (+389 nodes collapsed)
, ","
enum_constant (+494 nodes collapsed)
, ","
enum_constant (+476 nodes collapsed)
, ","
enum_constant (+670 nodes collapsed)
, ","
enum_constant (+640 nodes collapsed)
, ","
enum_constant (+634 nodes collapsed)
, ","
enum_constant (+1002 nodes collapsed)
, ","
enum_constant (+297 nodes collapsed)
, ","
enum_constant (+305 nodes collapsed)
, ","
enum_constant (+540 nodes collapsed)
, ","
enum_constant (+311 nodes collapsed)
, ","
enum_constant (+182 nodes collapsed)
, ","
enum_constant (+219 nodes collapsed)
, ","
enum_constant (+26 nodes collapsed)
enum_body_declarations (+1350 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 "StringUtil"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "jsoup"
. "."
identifier "nodes"
. "."
asterisk
* "*"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "ArrayList"
; ";"
block_comment "/**\n * The Tree Builder's current state. Each state embodies"...
enum_declaration
enum "enum"
identifier "HtmlTreeBuilderState"
enum_body
{ "{"
enum_constant (+258 nodes collapsed)
, ","
enum_constant (+342 nodes collapsed)
, ","
enum_constant (+384 nodes collapsed)
, ","
enum_constant (+729 nodes collapsed)
, ","
enum_constant (+469 nodes collapsed)
, ","
enum_constant (+593 nodes collapsed)
, ","
enum_constant
identifier "InBody"
class_body
{ "{"
method_declaration (+5766 nodes collapsed)
method_declaration
boolean_type "boolean"
identifier "anyOtherEndTag"
formal_parameters
( "("
formal_parameter
type_identifier "Token"
identifier "t"
, ","
formal_parameter
type_identifier "HtmlTreeBuilder"
identifier "tb"
) ")"
block
{ "{"
local_variable_declaration
type_identifier "String"
variable_declarator
identifier "name"
= "="
method_invocation
method_invocation
identifier "t"
. "."
identifier "asEndTag"
argument_list
( "("
) ")"
. "."
identifier "name"
argument_list
( "("
) ")"
; ";"
line_comment "// matches with case sensitivity if enabled"
local_variable_declaration
generic_type
type_identifier "ArrayList"
type_arguments
< "<"
type_identifier "Element"
> ">"
variable_declarator
identifier "stack"
= "="
method_invocation
identifier "tb"
. "."
identifier "getStack"
argument_list
( "("
) ")"
; ";"
for_statement (+162 nodes collapsed)
return_statement
return "return"
true "true"
; ";"
} "}"
} "}"
, ","
enum_constant (+162 nodes collapsed)
, ","
enum_constant (+1162 nodes collapsed)
, ","
enum_constant (+389 nodes collapsed)
, ","
enum_constant (+494 nodes collapsed)
, ","
enum_constant (+476 nodes collapsed)
, ","
enum_constant (+670 nodes collapsed)
, ","
enum_constant (+640 nodes collapsed)
, ","
enum_constant (+634 nodes collapsed)
, ","
enum_constant (+1002 nodes collapsed)
, ","
enum_constant (+297 nodes collapsed)
, ","
enum_constant (+305 nodes collapsed)
, ","
enum_constant (+540 nodes collapsed)
, ","
enum_constant (+311 nodes collapsed)
, ","
enum_constant (+182 nodes collapsed)
, ","
enum_constant (+219 nodes collapsed)
, ","
enum_constant (+26 nodes collapsed)
enum_body_declarations (+1350 nodes collapsed)
} "}"