Anonymous function: An anonymous function, eg a lambda function, an arrow function, etc
Argument list
Actual constructor empty: An empty list of arguments in a constructor call. Insertion delimiter should be empty.
Actual constructor multi line: A multi line list of arguments in a constructor call. Insertion delimiter should include new line.
Actual constructor single line: A single line list of arguments in a constructor call
Actual empty: An empty list of arguments in a function call. Insertion delimiter should be empty.
Actual method empty: An empty list of arguments in a method call. Insertion delimiter should be empty.
Actual method multi line: A multi line list of arguments in a method call. Insertion delimiter should include new line.
Actual method single line: A single line list of arguments in a method call
Actual multi line: A multi line list of arguments in a function call. Insertion delimiter should include new line.
Actual single line: A single line list of arguments in a function call
Formal constructor empty: An empty list of parameters in a constructor declaration. Insertion delimiter should be empty.
Formal constructor multi line: A multi line list of parameters in a constructor declaration. Insertion delimiter should include new line.
Formal constructor single line: A single line list of parameters in a constructor declaration
Formal empty: An empty list of parameters in a function declaration. Insertion delimiter should be empty.
Formal lambda empty: An empty list of parameters in a lambda declaration. Insertion delimiter should be empty.
Formal lambda single line: A single line list of parameters in a lambda declaration
Formal method empty: An empty list of parameters in a class method declaration. Insertion delimiter should be empty.
Formal method multi line: A multi line list of parameters in a class method declaration. Insertion delimiter should include new line.
Formal method single line: A single line list of parameters in a class method declaration
Formal multi line: A multi line list of parameters in a function declaration. Insertion delimiter should include new line.
Formal single line: A single line list of parameters in a function declaration
Argument or parameter
Actual constructor (iteration): Iteration scope for arguments in a constructor call: the argument list. The domain should be the entire constructor call.
Actual constructor multi line: A multi line argument in a constructor call. Insertion delimiter should include new line.
Actual constructor single line: A single line argument in a constructor call
Actual (iteration): Iteration scope for arguments in a function call: the argument list. The domain should be the entire function call.
Actual method (iteration): Iteration scope for arguments in a method call: the argument list. The domain should be the entire method call.
Actual method multi line: A multi line argument in a method call. Insertion delimiter should include new line.
Actual method single line: A single line argument in a method call
Actual multi line: A multiline argument in a function call. Insertion delimiter should include new line.
Actual single line: A single line argument in a function call
Catch: A parameter in a catch clause
Formal constructor (iteration): Iteration scope for formal parameters in a constructor declaration: the parameter list. The domain should be the entire constructor.
Formal constructor multi line: A multi line parameter in a constructor declaration. Insertion delimiter should include new line.
Formal constructor single line: A single line parameter in a constructor declaration
Formal (iteration): Iteration scope for formal parameters in a function declaration: the parameters list. The domain should be the entire function.
Formal lambda (iteration): Iteration scope for formal parameters in a lambda declaration: the parameter list. The domain should be the entire lambda.
Formal lambda single line: A single line parameter in a lambda declaration
Formal method (iteration): Iteration scope for formal parameters in a method declaration: the parameter list. The domain should be the entire method.
Formal method multi line: A multi line parameter in a class method declaration. Insertion delimiter should include new line.
Formal method single line: A single line parameter in a class method declaration
Formal multi line: A multi line parameter in a function declaration. Insertion delimiter should include new line.
Formal single line: A single line parameter in a function declaration
Branch
If: An if branch
If elif else: An if-elif-else branch. The removal range for the if branch should include the trailing `else` keyword.
If else: An if-else branch
If (iteration): Iteration scope for if/elif/else branches: the if-else statement.
Loop: A for / while loop branch. For most languages this is not supported, but eg in Python you can have an else branch for a loop.
Loop (iteration): Iteration scope for loop branches: the loop statement.
Switch case: A case/default branch in a switch statement
Switch case (iteration): Iteration scope for switch branches: the switch statement body.
Ternary: A branch in a ternary expression
Ternary (iteration): Iteration scope for ternary expression branches: the ternary expression.
Try: A try/catch/finally branch
Try (iteration): Iteration scope for try/catch/finally branches: the try-catch statement.
Class
Class: A class in an object-oriented language
Iteration document: Iteration scope for classes: the entire document including leading and trailing empty lines.
Class name
Class name: The name of a class
Iteration document: Iteration scope for class names: the entire document including leading and trailing empty lines.
Collection item
Unenclosed: An item in a comma-separated list without enclosing delimiters. This could be multi-variable declarations, import statements, etc.
Unenclosed (iteration): Iteration scope for items in a comma-separated list without enclosing delimiters
Collection key
Map pair: Key (LHS) of a key-value pair of a map
Map pair (iteration): Iteration scope for keys of key-value pairs in a map: should be between the braces.
Comment
Line: A line comment
Condition
If: A condition in an if statement
Switch case: A condition in a switch statement
Switch case (iteration): Iteration scope for conditions in a switch statement: the switch statement body.
Ternary: A condition in a ternary expression
While: A condition in a while loop
Disqualify delimiter
Disqualify delimiter: Used to disqualify a token from being treated as a surrounding pair delimiter. This will usually be operators containing `>` or `<`, eg `<`, `<=`, `->`, etc
Function call
Function call: A function call
Constructor: A constructor call
Function callee
Function callee: The function being called in a function call
Constructor: The class being constructed in a class instantiation, including the `new` keyword
Function name
Function name: The name of a function
Constructor: The name of a constructor in a class
Iteration document: Iteration scope for function names: the entire document including leading and trailing empty lines.
Method: The name of a method in a class
Method iteration class: Iteration scope for method names: class bodies.
If statement
If statement: An if statement
Interior
Class: The body of a class
Constructor: The body of a constructor declaration
Foreach: The body of a for-each loop
Function: The body of a function declaration
If: The body of an if/elif/else branch
Method: The body of a method declaration
Resource: the body of a 'with' / 'use' / 'using' statement
Switch: The body of a switch statement
Switch case: The body of a switch case branch
Ternary: The body of a ternary condition/branch
Try: The body of a try/catch/finally branch
While: The body of a while loop
List
List: A list/array
Map
Map: A map/dictionary
Name
Argument actual: Name of a (keyword) argument in a function call
Argument actual (iteration): Iteration scope for names of the arguments in a function call: the argument list. The domain should be the whole function call.
Argument catch: Name of a parameter in a catch clause
Argument formal: Name of a parameter in a function declaration
Argument formal constructor: The name of a parameter in a constructor declaration
Argument formal constructor (iteration): Iteration scope for names of formal parameters in a constructor declaration: the parameters list. The domain should be the entire constructor.
Argument formal (iteration): Iteration scope for names of formal parameters in a function declaration: the parameters list. The domain should be the entire function.
Argument formal method: Name of a parameter in a class method declaration
Argument formal method (iteration): Iteration scope for names of formal parameters in a method declaration: the parameters list. The domain should be the entire method.
Assignment: Name (LHS) of an assignment
Assignment pattern: LHS of an assignment with pattern destructuring
Class: Name of a class
Constructor: Name of a constructor
Field class: Name (LHS) of a field in a class
Foreach: Iteration variable name in a for each loop
Function: Name of a function
Iteration block: Iteration scope for names: statement blocks (body of functions/if-statements/for-loops/etc).
Iteration class: Iteration scope for names: class bodies.
Iteration document: Iteration scope for names: the entire document including leading and trailing empty lines.
Method: Name of a class method
Resource: Name in a 'with' / 'use' / 'using' statement
Resource (iteration): Iteration scope for names in a 'with' / 'use' / 'using' statement: the resource list. The domain should be the entire statement.
Variable: Name (LHS) of a variable declaration
Variable pattern: Name (LHS) of a variable declaration with pattern destructuring
Named function
Named function: A named function declaration
Constructor: A constructor declaration in a class
Iteration document: Iteration scope for named functions: the entire document including leading and trailing empty lines.
Method: A named method declaration in a class
Method iteration class: Iteration scope for named functions: class bodies.
Statement: A statement, eg assignment, for loop, etc
Class: A class declaration
Field class: A field declaration in a class
Iteration block: Iteration scope for statements: statement blocks (body of functions/if-statements/for-loops/etc).
Iteration class: Iteration scope for statements: class bodies.
Iteration document: Iteration scope for statements: the entire document including leading and trailing empty lines.
String
Multi line: A multi-line string
Single line: A single-line string
Text fragment
Comment line: Text fragment consisting of a line comment
String multi line: Text fragment consisting of a multi-line string
String single line: Text fragment consisting of a single-line string
Type
Argument catch: Type of parameter in a catch clause
Argument formal: Type of formal parameter in a function declaration
Argument formal constructor: Type of formal parameter in a constructor declaration
Argument formal constructor (iteration): Iteration scope for types of formal parameters in a constructor declaration: the parameters list. The domain should be the entire constructor.
Argument formal (iteration): Iteration scope for types of formal parameters in a function declaration: the parameters list. The domain should be the entire function.
Argument formal method: Type of formal parameter in a class method declaration
Argument formal method (iteration): Iteration scope for types of formal parameters in a method declaration: the parameters list. The domain should be the entire method.
Class: A class declaration
Field class: Type of field in a class
Iteration block: Iteration scope for types: statement blocks (body of functions/if-statements/for-loops/etc).
Iteration class: Iteration scope for types: class bodies.
Iteration document: Iteration scope for types: the entire document including leading and trailing empty lines.
Return: Type of return value in a function declaration
Type argument: Type argument to a generic / parametrized type
Type argument (iteration): Iteration scope for type arguments to a generic / parametrized type: the type argument list.
Variable: Type of variable in a variable declaration
Value
Argument actual: The value of a (keyword) argument in a function call
Argument actual (iteration): Iteration scope for values of arguments in a function call: the arguments list. The domain should be the entire function call.
Argument formal: The value of a (keyword) argument in a function declaration
Argument formal constructor: The value of a parameter in a constructor declaration
Argument formal constructor (iteration): Iteration scope for values of formal parameters in a constructor declaration: the parameters list. The domain should be the entire constructor.
Argument formal (iteration): Iteration scope for values of formal parameters in a function declaration: the parameters list. The domain should be the entire function.
Argument formal method: The value of a parameter in a class method declaration
Argument formal method (iteration): Iteration scope for values of formal parameters in a method declaration: the parameters list. The domain should be the entire method.
Assignment: Value (RHS) of an assignment
Field class: Value (RHS) of a field in a class
Foreach: Iterable in a for each loop
Iteration block: Iteration scope for values: statement blocks (body of functions/if-statements/for-loops/etc).
Iteration class: Iteration scope for values: class bodies.
Iteration document: Iteration scope for values: the entire document including leading and trailing empty lines.
Map pair: Value (RHS) of a key-value pair in a map
Map pair (iteration): Iteration scope for values of key-value pairs in a map: should be between the braces.
Resource: Value of a 'with' / 'use' / 'using' statement
Resource (iteration): Iteration scope for values in a 'with' / 'use' / 'using' statement: the resource list. The domain should be the entire statement.
Return: Return value of a function
Return lambda: Implicit return value from a lambda
Switch: The value / subject of a switch statement
Variable: Value (RHS) of a variable declaration
Variable pattern: Value (RHS) of a variable declaration with pattern destructuring