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
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: If (iteration)
Iteration scope for if/elif/else branches: the if-else statement.
Class
1. Class
A class/struct in an object-oriented language
Comment
1. Comment: Block
A block comment
2. Comment: Line
A line comment
Condition
1. Condition: If
A condition in an if statement
If statement
1. If statement
An if statement
Name
1. Name: Class
Name of a class
2. Name: Enum
Name of an enum
3. Name: Foreach
Iteration variable name in a for each loop
4. Name: Interface
Name of a interface
Statement
1. Statement: Class
A class/struct declaration
2. Statement: Enum
An enum declaration
3. Statement: Foreach
A for-each loop statement
4. Statement: Interface
An interface declaration
String
1. String: Multi line
A multi-line string
2. String: Single line
A single-line string
Type
1. Type: Foreach
Type of a variable in a for each loop
Value
1. Value: Foreach
Iterable in a for each loop
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.
Interior
1. Interior: If
The body of an if/elif/else branch
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