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 (iteration)
Iteration scope for arguments in a function call: the argument list. The domain should be the entire function call.2. Argument: Actual constructor (iteration)
Iteration scope for arguments in a constructor call: the argument list. The domain should be the entire constructor call.3. Argument: Actual constructor multi line
A multi line argument in a constructor call. Insertion delimiter should include new line.5. Argument: Actual method (iteration)
Iteration scope for arguments in a method call: the argument list. The domain should be the entire method call.6. Argument: Actual method multi line
A multi line argument in a method call. Insertion delimiter should include new line.8. Argument: Actual multi line
A multiline argument in a function call. Insertion delimiter should include new line.11. Argument: Formal (iteration)
Iteration scope for formal parameters in a function declaration: the parameters list. The domain should be the entire function.12. Argument: Formal constructor (iteration)
Iteration scope for formal parameters in a constructor declaration: the parameter list. The domain should be the entire constructor.13. Argument: Formal constructor multi line
A multi line parameter in a constructor declaration. Insertion delimiter should include new line.15. Argument: Formal lambda (iteration)
Iteration scope for formal parameters in a lambda declaration: the parameter list. The domain should be the entire lambda.16. Argument: Formal lambda multi line
A multi line parameter in a lambda declaration. Insertion delimiter should include new line.18. Argument: Formal method (iteration)
Iteration scope for formal parameters in a method declaration: the parameter list. The domain should be the entire method.19. Argument: Formal method multi line
A multi line parameter in a class method declaration. Insertion delimiter should include new line.Branch
3. Branch: If elif else
An if-elif-else branch. The removal range for the if branch should include the trailing `else` keyword.Class
Class name
Condition
Function name
Name
1. Name (iteration block)
Iteration scope for names: statement blocks (body of functions/if-statements/for-loops/etc).3. Name (iteration document)
Iteration scope for names: the entire document including leading and trailing empty lines.8. 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.10. Name: 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.Named function
Statement
2. Statement (iteration block)
Iteration scope for statements: statement blocks (body of functions/if-statements/for-loops/etc).Type
1. Type (iteration block)
Iteration scope for types: statement blocks (body of functions/if-statements/for-loops/etc).3. Type (iteration document)
Iteration scope for types: the entire document including leading and trailing empty lines.7. 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.9. 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.11. Type: 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.Value
1. Value (iteration block)
Iteration scope for values: statement blocks (body of functions/if-statements/for-loops/etc).3. Value (iteration document)
Iteration scope for values: the entire document including leading and trailing empty lines.6. 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.8. 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.10. Value: 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.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.