-
-
Notifications
You must be signed in to change notification settings - Fork 28
Open
Description
Many features still have significant room for improvement. However, these enhancements often require additional infrastructure that we currently lack, such as:
- A dedicated lexer
- AST traversal for pre-expanded code (result of
read-syntax) - AST traversal for fully expanded code (result of
expand) - Cross-module analysis (dependency graph)
- Language-specific analysis (e.g., improved support for Typed Racket, Rhombus, the little typer's language, the little prover's language)
Adding these new infrastructure could be complex and challenging.
To move forward effectively, I propose starting by creating a enhancement list for each feature.
For example, the enhanced feature list can be:
- code completion when expansion never succeed (requires lexer + AST traversal for pre-expanded code), this should also helps for cases like issue textDocument/completion behaving strangely #163.
- cross module variable renaming (requires cross-module analysis and dependency graph, etc).
- show (function/struct/class/parameter/...) definition for hover request for local project (requires AST traversal for pre-expanded code, and maybe comment/scribble inside those definitions).
- mitigated unused variables diagnostic when upstream can't fix fast, like issue false positive "unused variable" for sig-elems in define-signature #166 (requires AST traversal for pre-expanded code).
- better formatting (requires lexer).
We can take these features one by one, gradually adding and evolving the infrastructure while delivering concrete feature improvements.
This approach will be easier after completing #168 (Extract logic into a library refactor).
dannypsnl
Metadata
Metadata
Assignees
Labels
No labels