Skip to main content

C#

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.

Scopes​

Anonymous function​

1. Anonymous function​

An anonymous function, eg a lambda function, an arrow function, etc.

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 call

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

7. Argument list: Actual method single line​

A single line list of arguments in a method call

8. Argument list: Actual multi line​

A multi line list of arguments in a function call. Insertion delimiter should include new line.

9. Argument list: Actual single line​

A single line list of arguments in a function call

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 declaration

13. 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 declaration

17. 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 declaration

20. Argument list: Formal multi line​

A multi line list of parameters in a function declaration. Insertion delimiter should include new line.

21. Argument list: Formal single line​

A single line list of parameters in a function declaration

Argument or parameter​

1. Argument: Actual constructor multi line​

A multi line argument in a constructor call. Insertion delimiter should include new line.

2. Argument: Actual constructor single line​

A single line argument in a constructor call

3. Argument: Actual method multi line​

A multi line argument in a method call. Insertion delimiter should include new line.

4. Argument: Actual method single line​

A single line argument in a method call

5. Argument: Actual multi line​

A multiline argument in a function call. Insertion delimiter should include new line.

6. Argument: Actual single line​

A single line argument in a function call

7. Argument: Formal catch​

A parameter in a catch clause

8. Argument: Formal constructor multi line​

A multi line parameter in a constructor declaration. Insertion delimiter should include new line.

9. Argument: Formal constructor single line​

A single line parameter in a constructor declaration

10. Argument: Formal lambda multi line​

A multi line parameter in a lambda declaration. Insertion delimiter should include new line.

11. Argument: Formal lambda single line​

A single line parameter in a lambda declaration

12. Argument: Formal method multi line​

A multi line parameter in a class method declaration. Insertion delimiter should include new line.

13. Argument: Formal method single line​

A single line parameter in a class method declaration

14. Argument: Formal multi line​

A multi line parameter in a function declaration. Insertion delimiter should include new line.

15. Argument: Formal single line​

A single line parameter in a function declaration

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.

21. Argument: Formal lambda (iteration)​

Iteration scope for formal parameters in a lambda declaration: the parameter list. The domain should be the entire lambda.

22. Argument: Formal method (iteration)​

Iteration scope for formal parameters in a method declaration: the parameter list. The domain should be the entire method.

Attribute​

1. Attribute​

A attribute, eg of a html element or a C++ attribute

Branch​

1. Branch: If​

An if branch

2. Branch: If elif else​

An if-elif-else branch. The removal range for the if branch should include the trailing else keyword.

3. Branch: If else​

An if-else branch

4. Branch: Switch case​

A case/default branch in a switch statement

5. Branch: Ternary​

A branch in a ternary expression

6. Branch: Try​

A try/catch/finally branch

7. Branch: If (iteration)​

Iteration scope for if/elif/else branches: the if-else statement.

8. Branch: Switch case (iteration)​

Iteration scope for switch branches: the switch statement body.

9. Branch: Ternary (iteration)​

Iteration scope for ternary expression branches: the ternary expression.

10. Branch: Try (iteration)​

Iteration scope for try/catch/finally branches: the try-catch statement.

Class​

1. Class​

A class/struct in an object-oriented language

2. Class (iteration class)​

Iteration scope for classes: class bodies.

3. Class (iteration document)​

Iteration scope for classes: the entire document including leading and trailing empty lines.

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.

2. Collection item: Unenclosed single line​

An item in a comma-separated single line list without enclosing delimiters. This could be multi-variable declarations, import statements, etc.

3. Collection item: Unenclosed (iteration)​

Iteration scope for items in a comma-separated list without enclosing delimiters

Collection key​

1. Key: Map pair​

Key (LHS) of a key-value pair of a map

2. Key: Map pair (iteration)​

Iteration scope for keys of key-value pairs in a map: should be between the braces.

Comment​

1. Comment: Block​

A block comment

2. Comment: Line​

A line comment

Condition​

1. Condition: Do while​

A condition in a do while loop

2. Condition: For​

A condition in a for loop

3. Condition: If​

A condition in an if statement

4. Condition: Switch case​

A condition in a switch statement

5. Condition: Ternary​

A condition in a ternary expression

6. Condition: While​

A condition in a while loop

7. Condition: Switch case (iteration)​

Iteration scope for conditions in a switch statement: the switch statement body.

Function call​

1. Function call​

A function call

2. Function call: Chain​

A chain of function calls, eg foo().bar()

3. Function call: Constructor​

A constructor call

4. Function call: Generic​

A function call with generic type arguments

5. Function call: Method​

A method call

Function callee​

1. Function callee​

The function being called in a function call

2. Function callee: Chain​

The function being called in a chain of function calls, including parent objects.

3. Function callee: Constructor​

The class being constructed in a class instantiation, including the new keyword.

4. Function callee: Generic​

The function being called in a function call with generic type arguments

5. Function callee: Method​

The function being called in a method call, including parent objects.

If statement​

1. If statement​

An if statement

List​

1. List​

A list/array

Map​

1. Map​

A map/dictionary

Name​

1. Name: Argument actual​

Name of a (keyword) argument in a function call

2. Name: Argument catch​

Name of a parameter in a catch clause

3. Name: Argument formal​

Name of a parameter in a function declaration

4. Name: Argument formal constructor​

The name of a parameter in a constructor declaration

5. Name: Argument formal lambda​

Name of a parameter in a lambda declaration

6. Name: Argument formal method​

Name of a parameter in a class method declaration

7. Name: Assignment​

Name (LHS) of an assignment

8. Name: Assignment compound​

Name (LHS) of a compound assignment, eg +=/-=

9. Name: Class​

Name of a class

10. Name: Constant​

Name (LHS) of a constant declaration

11. Name: Constructor​

Name of a constructor

12. Name: Enum​

Name of an enum

13. Name: Field class​

Name (LHS) of a field in a class

14. Name: Field enum​

Name (LHS) of a field in an enum

15. Name: Field interface​

Name (LHS) of a field in an interface

16. Name: Foreach​

Iteration variable name in a for each loop

17. Name: Function​

Name of a function

18. Name: Interface​

Name of a interface

19. Name: Method​

Name of a class method

20. Name: Method interface​

Name of a interface method

21. Name: Namespace​

Name of a namespace

22. Name: Resource​

Name in a with / use / using statement

23. Name: Type alias​

Name of a type alias

24. Name: Variable initialized​

Name (LHS) of an initialized variable declaration

25. Name: Variable uninitialized​

Name (LHS) of an uninitialized variable declaration

26. Name (iteration block)​

Iteration scope for names: statement blocks (body of functions/if-statements/for-loops/etc).

27. Name (iteration class)​

Iteration scope for names: class bodies.

28. Name (iteration document)​

Iteration scope for names: the entire document including leading and trailing empty lines.

29. Name (iteration enum)​

Iteration scope for names: enum bodies.

30. Name (iteration interface)​

Iteration scope for names: interface bodies.

31. Name: Argument actual (iteration)​

Iteration scope for names of (keyword) arguments in a function call: the argument list.

32. Name: Argument formal (iteration)​

Iteration scope for names of formal parameters in a function declaration: the parameters list.

33. Name: Argument formal constructor (iteration)​

Iteration scope for names of formal parameters in a constructor declaration: the parameters list.

34. Name: Argument formal lambda (iteration)​

Iteration scope for names of formal parameters in a lambda declaration: the parameters list.

35. Name: Argument formal method (iteration)​

Iteration scope for names of formal parameters in a method declaration: the parameters list.

Named function​

1. Named function​

A named function declaration

2. Named function: Constructor​

A constructor declaration in a class

3. Named function: Method​

A named method declaration in a class

4. Named function (iteration class)​

Iteration scope for named functions: class bodies.

5. Named function (iteration document)​

Iteration scope for named functions: the entire document including leading and trailing empty lines.

Statement​

1. Statement: Assignment​

An assignment statement

2. Statement: Assignment compound​

A compound assignment statement, eg +=/-=

3. Statement: Break​

A break statement

4. Statement: Class​

A class/struct declaration

5. Statement: Constant​

A constant declaration

6. Statement: Constructor​

A constructor declaration

7. Statement: Continue​

A continue statement

8. Statement: Do while​

A do-while loop statement

9. Statement: Enum​

An enum declaration

10. Statement: Field class​

A field declaration in a class/struct

11. Statement: Field interface​

A field declaration in a interface

12. Statement: For​

A for loop statement

13. Statement: Foreach​

A for-each loop statement

14. Statement: Function​

A named function declaration

15. Statement: Function call​

A function call statement

16. Statement: If​

A if/elif/else statement

17. Statement: Import​

An import statement

18. Statement: Interface​

An interface declaration

19. Statement: Method​

A method declaration

20. Statement: Method interface​

A method declaration in a interface

21. Statement: Namespace​

A namespace declaration

22. Statement: Resource​

A with / use / using statement

23. Statement: Return​

A return statement

24. Statement: Switch​

A switch statement

25. Statement: Throw​

A throw statement

26. Statement: Try​

A try/catch/finally statement

27. Statement: Type alias​

A type alias declaration

28. Statement: Update​

An update statement, eg ++/--

29. Statement: Variable initialized​

An initialized variable declaration

30. Statement: Variable uninitialized​

An uninitialized variable declaration

31. Statement: While​

A while loop statement

32. Statement: Yield​

A yield statement

33. Statement (iteration block)​

Iteration scope for statements: statement blocks (body of functions/if-statements/for-loops/etc).

34. Statement (iteration class)​

Iteration scope for statements: class bodies.

35. Statement (iteration document)​

Iteration scope for statements: the entire document including leading and trailing empty lines.

36. Statement (iteration interface)​

Iteration scope for statements: interface bodies.

Type​

1. Type: Alias​

A type alias declaration

2. Type: Argument catch​

Type of a parameter in a catch clause

3. Type: Argument formal​

Type of a formal parameter in a function declaration

4. Type: Argument formal constructor​

Type of a formal parameter in a constructor declaration

5. Type: Argument formal lambda​

Type of a formal parameter in a lambda declaration

6. Type: Argument formal method​

Type of a formal parameter in a class method declaration

7. Type: Cast​

A type cast

8. Type: Class​

A class declaration

9. Type: Constant​

Type of a constant declaration

10. Type: Enum​

An enum declaration

11. Type: Field class​

Type of a field in a class

12. Type: Field interface​

Type of a field in a interface

13. Type: Foreach​

Type of a variable in a for each loop

14. Type: Interface​

An interface declaration

15. Type: Resource​

Type in a with / use / using statement

16. Type: Return​

Type of a return value in a function declaration

17. Type: Return method​

Type of a return value in a method declaration

18. Type: Type argument​

Type argument to a generic / parametrized type

19. Type: Variable initialized​

Type of an initialized variable declaration

20. Type: Variable uninitialized​

Type of an uninitialized variable declaration

21. Type (iteration block)​

Iteration scope for types: statement blocks (body of functions/if-statements/for-loops/etc).

22. Type (iteration class)​

Iteration scope for types: class bodies.

23. Type (iteration document)​

Iteration scope for types: the entire document including leading and trailing empty lines.

24. Type (iteration interface)​

Iteration scope for types: interface bodies.

25. Type: Argument formal (iteration)​

Iteration scope for types of formal parameters in a function declaration: the parameters list.

26. Type: Argument formal constructor (iteration)​

Iteration scope for types of formal parameters in a constructor declaration: the parameters list.

27. Type: Argument formal lambda (iteration)​

Iteration scope for types of formal parameters in a lambda declaration: the parameters list.

28. Type: Argument formal method (iteration)​

Iteration scope for types of formal parameters in a method declaration: the parameters list.

29. Type: Type argument (iteration)​

Iteration scope for type arguments to a generic / parametrized type: the type argument list.

Value​

1. Value: Argument actual​

The value of a (keyword) argument in a function call

2. Value: Argument formal​

The (default) value of a argument in a function declaration

3. Value: Argument formal constructor​

The (default) value of a parameter in a constructor declaration

4. Value: Argument formal lambda​

The (default) value of a parameter in a lambda declaration

5. Value: Argument formal method​

The (default) value of a parameter in a method declaration

6. Value: Assignment​

Value (RHS) of an assignment

7. Value: Assignment compound​

Value (RHS) of a compound assignment, eg +=/-=

8. Value: Constant​

Value (RHS) of a constant declaration

9. Value: Field class​

Value (RHS) of a field in a class

10. Value: Field enum​

Value (RHS) of a field in an enum

11. Value: Field interface​

Value (RHS) of a field in an interface

12. Value: Foreach​

Iterable in a for each loop

13. Value: Map pair​

Value (RHS) of a key-value pair in a map

14. Value: Resource​

Value of a with / use / using statement

15. Value: Return​

Return value of a function

16. Value: Return lambda​

Implicit return value from a lambda

17. Value: Switch​

The value / subject of a switch statement

18. Value: Throw​

Value of a throw statement

19. Value: Type alias​

Value of a type alias declaration

20. Value: Variable​

Value (RHS) of a variable declaration

21. Value: Yield​

Value of a yield statement

22. Value (iteration block)​

Iteration scope for values: statement blocks (body of functions/if-statements/for-loops/etc).

23. Value (iteration class)​

Iteration scope for values: class bodies.

24. Value (iteration document)​

Iteration scope for values: the entire document including leading and trailing empty lines.

25. Value (iteration enum)​

Iteration scope for values: enum bodies.

26. Value: Argument actual (iteration)​

Iteration scope for values of (keyword) arguments in a function call: the arguments list.

27. Value: Argument formal (iteration)​

Iteration scope for values of formal parameters in a function declaration: the parameters list.

28. Value: Argument formal constructor (iteration)​

Iteration scope for values of formal parameters in a constructor declaration: the parameters list.

29. Value: Argument formal lambda (iteration)​

Iteration scope for values of formal parameters in a lambda declaration: the parameters list.

30. Value: Argument formal method (iteration)​

Iteration scope for values of formal parameters in a method declaration: the parameters list.

31. Value: Map pair (iteration)​

Iteration scope for values of key-value pairs in a map: should be between the braces.

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.

Disqualify delimiter​

1. Disqualify delimiter​

Internally used to disqualify a token from being treated as a surrounding pair delimiter. This will usually be operators containing > or <, eg <, <=, ->, etc.

Interior​

1. Interior: Class​

The body of a class

2. Interior: Constructor​

The body of a constructor declaration

3. Interior: Do while​

The body of a do-while loop

4. Interior: Enum​

The body of an enum

5. Interior: For​

The body of a for loop

6. Interior: Foreach​

The body of a for-each loop

7. Interior: Function​

The body of a function declaration

8. Interior: If​

The body of an if/elif/else branch

9. Interior: Interface​

The body of a interface

10. Interior: Lambda​

The block body of a lambda/anonymous function

11. Interior: Method​

The body of a method declaration

12. Interior: Namespace​

the body of a namespace statement

13. Interior: Resource​

the body of a with / use / using statement

14. Interior: Switch​

The body of a switch statement

15. Interior: Switch case​

The body of a switch case branch

16. Interior: Try​

The body of a try/catch/finally branch

17. Interior: While​

The body of a while loop

String​

1. String: Multi line​

A multi-line string

2. String: Single line​

A single-line string

Text fragment​

1. Text fragment: Comment block​

Internally used text fragment consisting of a block comment

2. Text fragment: Comment line​

Internally used text fragment consisting of a line comment

3. Text fragment: String multi line​

Internally used text fragment consisting of a multi-line string

4. Text fragment: String single line​

Internally used text fragment consisting of a single-line string