Summary
Implement textDocument/selectionRange so Shift+Alt+Right progressively expands selection to enclosing AST nodes.
Scope
- Expression → statement → block body → PROGRAM/FUNCTION_BLOCK/FUNCTION body → full declaration
- Works in PROGRAM, FUNCTION_BLOCK, FUNCTION sections
- Registered in LSP server capabilities
Implementation Notes
- New
SelectionRangeProvider in src/server/providers/
- Walks AST from cursor position outward
- Returns nested
SelectionRange chain
Acceptance
- Expand selection grows through expression, statement, block, and full declaration correctly
- Shrink selection reverses
- Tests cover nested expressions and block boundaries
Summary
Implement
textDocument/selectionRangeso Shift+Alt+Right progressively expands selection to enclosing AST nodes.Scope
Implementation Notes
SelectionRangeProviderinsrc/server/providers/SelectionRangechainAcceptance