C#
Scopes
Below are visualizations of all our scope tests for this language. These were created primarily for testing purposes rather than as documentation. There are quite a few, and they may feel a bit overwhelming from a documentation standpoint.
Argument list
1. Argument list: Actual constructor empty
An empty list of arguments in a constructor call. Insertion delimiter should be empty.2. Argument list: Actual constructor multi line
A multi line list of arguments in a constructor call. Insertion delimiter should include new line.3. Argument list: Actual constructor single line
A single line list of arguments in a constructor call4. Argument list: Actual empty
An empty list of arguments in a function call. Insertion delimiter should be empty.5. Argument list: Actual method empty
An empty list of arguments in a method call. Insertion delimiter should be empty.6. Argument list: Actual method multi line
A multi line list of arguments in a method call. Insertion delimiter should include new line.8. Argument list: Actual multi line
A multi line list of arguments in a function call. Insertion delimiter should include new line.10. Argument list: Formal constructor empty
An empty list of parameters in a constructor declaration. Insertion delimiter should be empty.11. Argument list: Formal constructor multi line
A multi line list of parameters in a constructor declaration. Insertion delimiter should include new line.12. Argument list: Formal constructor single line
A single line list of parameters in a constructor declaration13. Argument list: Formal empty
An empty list of parameters in a function declaration. Insertion delimiter should be empty.14. Argument list: Formal lambda empty
An empty list of parameters in a lambda declaration. Insertion delimiter should be empty.15. Argument list: Formal lambda multi line
A multi line list of parameters in a lambda declaration. Insertion delimiter should include new line.16. Argument list: Formal lambda single line
A single line list of parameters in a lambda declaration17. Argument list: Formal method empty
An empty list of parameters in a class method declaration. Insertion delimiter should be empty.18. Argument list: Formal method multi line
A multi line list of parameters in a class method declaration. Insertion delimiter should include new line.19. Argument list: Formal method single line
A single line list of parameters in a class method declarationArgument or parameter
1. Argument: Actual constructor multi line
A multi line argument in a constructor call. Insertion delimiter should include new line.3. Argument: Actual method multi line
A multi line argument in a method call. Insertion delimiter should include new line.5. Argument: Actual multi line
A multiline argument in a function call. Insertion delimiter should include new line.8. Argument: Formal constructor multi line
A multi line parameter in a constructor declaration. Insertion delimiter should include new line.10. Argument: Formal lambda multi line
A multi line parameter in a lambda declaration. Insertion delimiter should include new line.12. Argument: Formal method multi line
A multi line parameter in a class method declaration. Insertion delimiter should include new line.14. Argument: Formal multi line
A multi line parameter in a function declaration. Insertion delimiter should include new line.16. Argument: Actual (iteration)
Iteration scope for arguments in a function call: the argument list. The domain should be the entire function call.17. Argument: Actual constructor (iteration)
Iteration scope for arguments in a constructor call: the argument list. The domain should be the entire constructor call..18. Argument: Actual method (iteration)
Iteration scope for arguments in a method call: the argument list. The domain should be the entire method call..19. Argument: Formal (iteration)
Iteration scope for formal parameters in a function declaration: the parameters list. The domain should be the entire function.20. Argument: Formal constructor (iteration)
Iteration scope for formal parameters in a constructor declaration: the parameter list. The domain should be the entire constructor.Branch
2. Branch: If elif else
An if-elif-else branch. The removal range for the if branch should include the trailing `else` keyword.Class
Collection item
1. Collection item: Unenclosed multi line
An item in a comma-separated multi line list without enclosing delimiters. This could be multi-variable declarations, import statements, etc. Insertion delimiter should include new line.Function callee
2. Function callee: Chain
The function being called in a chain of function calls, including parent objects.Name
17. Name (iteration block)
Iteration scope for names: statement blocks (body of functions/if-statements/for-loops/etc).19. Name (iteration document)
Iteration scope for names: the entire document including leading and trailing empty lines.22. Name: Argument formal (iteration)
Iteration scope for names of formal parameters in a function declaration: the parameters list. The domain should be the entire function.Statement
22. Statement (iteration block)
Iteration scope for statements: statement blocks (body of functions/if-statements/for-loops/etc).Type
15. Type (iteration block)
Iteration scope for types: statement blocks (body of functions/if-statements/for-loops/etc).17. Type (iteration document)
Iteration scope for types: the entire document including leading and trailing empty lines.19. Type: Argument formal (iteration)
Iteration scope for types of formal parameters in a function declaration: the parameters list. The domain should be the entire function.20. Type: 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.Value
14. Value (iteration block)
Iteration scope for values: statement blocks (body of functions/if-statements/for-loops/etc).16. Value (iteration document)
Iteration scope for values: the entire document including leading and trailing empty lines.18. Value: Argument formal (iteration)
Iteration scope for values of formal parameters in a function declaration: the parameters list. The domain should be the entire function.19. Value: 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.Internal scopes
The following are internal scopes. They are not intended for user interaction or spoken use. These scopes exist solely for internal Cursorless functionality.