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–190 unchanged (190 lines)
191 if (NodeUtil.isExprCall(parent)) {
192 Node callee = node.getFirstChild();
193 if (callee != null && callee.getType() == Token.GETPROP) {
194 String qualifiedName = callee.getQualifiedName();
195 if (functionName.equals(qualifiedName)) {
196 Node target = callee.getNext();
197 if (target != null) {
198 className = target.getString();
199 }
200 }
201 }
202 }
203 return className;
…lines 204–404 unchanged (201 lines)

After

…lines 1–190 unchanged (190 lines)
191 if (NodeUtil.isExprCall(parent)) {
192 Node callee = node.getFirstChild();
193 if (callee != null && callee.getType() == Token.GETPROP) {
194 String qualifiedName = callee.getQualifiedName();
195 if (functionName.equals(qualifiedName)) {
196 Node target = callee.getNext();
197 if (target != null && target.getType() == Token.STRING) {
198 className = target.getString();
199 }
200 }
201 }
202 }
203 return className;
…lines 204–404 unchanged (201 lines)

Before

program
block_comment "/*\n * Copyright 2007 The Closure Compiler Authors.\n *\n * Lic"...
package_declaration
package "package"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "base"
. "."
identifier "Preconditions"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "collect"
. "."
identifier "ImmutableList"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "collect"
. "."
identifier "ImmutableSet"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "collect"
. "."
identifier "Lists"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "Node"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "Token"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "jstype"
. "."
identifier "FunctionType"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "jstype"
. "."
identifier "JSTypeNative"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "jstype"
. "."
identifier "ObjectType"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "Collection"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "List"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "Set"
; ";"
block_comment "/**\n * This describes the Closure-specific JavaScript coding"...
class_declaration
modifiers
public "public"
class "class"
identifier "ClosureCodingConvention"
superclass
extends "extends"
type_identifier "DefaultCodingConvention"
class_body
{ "{"
field_declaration
modifiers
private "private"
static "static"
final "final"
integral_type
long "long"
variable_declarator
identifier "serialVersionUID"
= "="
decimal_integer_literal "1L"
; ";"
field_declaration (+25 nodes collapsed)
block_comment "/**\n * Closure's goog.inherits adds a {@code superClass_} "...
method_declaration (+98 nodes collapsed)
block_comment "/**\n * {@inheritDoc}\n *\n * <p>Understands several diff"...
method_declaration (+319 nodes collapsed)
block_comment "/**\n * Determines whether the given node is a class-defini"...
method_declaration (+210 nodes collapsed)
method_declaration (+31 nodes collapsed)
block_comment "/**\n * Given a qualified name node, returns whether \"proto"...
method_declaration (+55 nodes collapsed)
block_comment "/**\n * Exctracts X from goog.provide('X'), if the applied "...
method_declaration (+37 nodes collapsed)
block_comment "/**\n * Exctracts X from goog.require('X'), if the applied "...
method_declaration (+37 nodes collapsed)
method_declaration
modifiers
private "private"
static "static"
type_identifier "String"
identifier "extractClassNameIfGoog"
formal_parameters
( "("
formal_parameter
type_identifier "Node"
identifier "node"
, ","
formal_parameter
type_identifier "Node"
identifier "parent"
, ","
formal_parameter
type_identifier "String"
identifier "functionName"
) ")"
block
{ "{"
local_variable_declaration
type_identifier "String"
variable_declarator
identifier "className"
= "="
null_literal "null"
; ";"
if_statement
if "if"
parenthesized_expression
( "("
method_invocation
identifier "NodeUtil"
. "."
identifier "isExprCall"
argument_list
( "("
identifier "parent"
) ")"
) ")"
block
{ "{"
local_variable_declaration
type_identifier "Node"
variable_declarator
identifier "callee"
= "="
method_invocation
identifier "node"
. "."
identifier "getFirstChild"
argument_list
( "("
) ")"
; ";"
if_statement
if "if"
parenthesized_expression (+22 nodes collapsed)
block
{ "{"
local_variable_declaration
type_identifier "String"
variable_declarator
identifier "qualifiedName"
= "="
method_invocation
identifier "callee"
. "."
identifier "getQualifiedName"
argument_list
( "("
) ")"
; ";"
if_statement
if "if"
parenthesized_expression
( "("
method_invocation
identifier "functionName"
. "."
identifier "equals"
argument_list
( "("
identifier "qualifiedName"
) ")"
) ")"
block
{ "{"
local_variable_declaration
type_identifier "Node"
variable_declarator
identifier "target"
= "="
method_invocation
identifier "callee"
. "."
identifier "getNext"
argument_list
( "("
) ")"
; ";"
if_statement
if "if"
parenthesized_expression
( "("
binary_expression
identifier "target"
!= "!="
null_literal "null"
) ")"
block
{ "{"
expression_statement
assignment_expression
identifier "className"
= "="
method_invocation
identifier "target"
. "."
identifier "getString"
argument_list
( "("
) ")"
; ";"
} "}"
} "}"
} "}"
} "}"
return_statement
return "return"
identifier "className"
; ";"
} "}"
block_comment "/**\n * Use closure's implementation.\n * @return closure'"...
method_declaration (+21 nodes collapsed)
block_comment "/**\n * Use closure's implementation.\n * @return closure'"...
method_declaration (+21 nodes collapsed)
method_declaration (+210 nodes collapsed)
method_declaration (+21 nodes collapsed)
method_declaration (+113 nodes collapsed)
method_declaration (+71 nodes collapsed)
method_declaration (+21 nodes collapsed)
field_declaration (+65 nodes collapsed)
method_declaration (+62 nodes collapsed)
method_declaration (+229 nodes collapsed)
method_declaration (+21 nodes collapsed)
method_declaration (+21 nodes collapsed)
method_declaration (+21 nodes collapsed)
method_declaration (+141 nodes collapsed)
method_declaration (+311 nodes collapsed)
method_declaration (+40 nodes collapsed)
} "}"

After

program
block_comment "/*\n * Copyright 2007 The Closure Compiler Authors.\n *\n * Lic"...
package_declaration
package "package"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "base"
. "."
identifier "Preconditions"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "collect"
. "."
identifier "ImmutableList"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "collect"
. "."
identifier "ImmutableSet"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "collect"
. "."
identifier "Lists"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "Node"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "Token"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "jstype"
. "."
identifier "FunctionType"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "jstype"
. "."
identifier "JSTypeNative"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "jstype"
. "."
identifier "ObjectType"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "Collection"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "List"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "Set"
; ";"
block_comment "/**\n * This describes the Closure-specific JavaScript coding"...
class_declaration
modifiers
public "public"
class "class"
identifier "ClosureCodingConvention"
superclass
extends "extends"
type_identifier "DefaultCodingConvention"
class_body
{ "{"
field_declaration
modifiers
private "private"
static "static"
final "final"
integral_type
long "long"
variable_declarator
identifier "serialVersionUID"
= "="
decimal_integer_literal "1L"
; ";"
field_declaration (+25 nodes collapsed)
block_comment "/**\n * Closure's goog.inherits adds a {@code superClass_} "...
method_declaration (+98 nodes collapsed)
block_comment "/**\n * {@inheritDoc}\n *\n * <p>Understands several diff"...
method_declaration (+319 nodes collapsed)
block_comment "/**\n * Determines whether the given node is a class-defini"...
method_declaration (+210 nodes collapsed)
method_declaration (+31 nodes collapsed)
block_comment "/**\n * Given a qualified name node, returns whether \"proto"...
method_declaration (+55 nodes collapsed)
block_comment "/**\n * Exctracts X from goog.provide('X'), if the applied "...
method_declaration (+37 nodes collapsed)
block_comment "/**\n * Exctracts X from goog.require('X'), if the applied "...
method_declaration (+37 nodes collapsed)
method_declaration
modifiers
private "private"
static "static"
type_identifier "String"
identifier "extractClassNameIfGoog"
formal_parameters
( "("
formal_parameter
type_identifier "Node"
identifier "node"
, ","
formal_parameter
type_identifier "Node"
identifier "parent"
, ","
formal_parameter
type_identifier "String"
identifier "functionName"
) ")"
block
{ "{"
local_variable_declaration
type_identifier "String"
variable_declarator
identifier "className"
= "="
null_literal "null"
; ";"
if_statement
if "if"
parenthesized_expression
( "("
method_invocation
identifier "NodeUtil"
. "."
identifier "isExprCall"
argument_list
( "("
identifier "parent"
) ")"
) ")"
block
{ "{"
local_variable_declaration
type_identifier "Node"
variable_declarator
identifier "callee"
= "="
method_invocation
identifier "node"
. "."
identifier "getFirstChild"
argument_list
( "("
) ")"
; ";"
if_statement
if "if"
parenthesized_expression (+22 nodes collapsed)
block
{ "{"
local_variable_declaration
type_identifier "String"
variable_declarator
identifier "qualifiedName"
= "="
method_invocation
identifier "callee"
. "."
identifier "getQualifiedName"
argument_list
( "("
) ")"
; ";"
if_statement
if "if"
parenthesized_expression
( "("
method_invocation
identifier "functionName"
. "."
identifier "equals"
argument_list
( "("
identifier "qualifiedName"
) ")"
) ")"
block
{ "{"
local_variable_declaration
type_identifier "Node"
variable_declarator
identifier "target"
= "="
method_invocation
identifier "callee"
. "."
identifier "getNext"
argument_list
( "("
) ")"
; ";"
if_statement
if "if"
parenthesized_expression
( "("
binary_expression
binary_expression
identifier "target"
!= "!="
null_literal "null"
&& "&&"
binary_expression
method_invocation
identifier "target"
. "."
identifier "getType"
argument_list
( "("
) ")"
== "=="
field_access
identifier "Token"
. "."
identifier "STRING"
) ")"
block
{ "{"
expression_statement
assignment_expression
identifier "className"
= "="
method_invocation
identifier "target"
. "."
identifier "getString"
argument_list
( "("
) ")"
; ";"
} "}"
} "}"
} "}"
} "}"
return_statement
return "return"
identifier "className"
; ";"
} "}"
block_comment "/**\n * Use closure's implementation.\n * @return closure'"...
method_declaration (+21 nodes collapsed)
block_comment "/**\n * Use closure's implementation.\n * @return closure'"...
method_declaration (+21 nodes collapsed)
method_declaration (+210 nodes collapsed)
method_declaration (+21 nodes collapsed)
method_declaration (+113 nodes collapsed)
method_declaration (+71 nodes collapsed)
method_declaration (+21 nodes collapsed)
field_declaration (+65 nodes collapsed)
method_declaration (+62 nodes collapsed)
method_declaration (+229 nodes collapsed)
method_declaration (+21 nodes collapsed)
method_declaration (+21 nodes collapsed)
method_declaration (+21 nodes collapsed)
method_declaration (+141 nodes collapsed)
method_declaration (+311 nodes collapsed)
method_declaration (+40 nodes collapsed)
} "}"