Skip to main content

Python

Scopes

Supported facets

These facets are supported

Anonymous function

  • 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.

Pair delimiter

  • Pair delimiter: A pair delimiter, eg parentheses, brackets, braces, quotes, etc

Statement

  • 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
  • Yield: Value of a yield statement