Skip to content

Infrastructure Enhancement #169

@6cdh

Description

@6cdh

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions