ndonfris / fish-lsp

LSP implementation for the fish shell langauge 🐠
https://fish-lsp.dev
MIT License
97 stars 6 forks source link

refactor & removal of legacy `analyzer` #52

Open ndonfris opened 4 months ago

ndonfris commented 4 months ago

High-Level Summary


[!IMPORTANT] Refactoring src/analyzer.ts will change various components within the project, and allow for more features to be supported by the server. Features like code-actions, quickfixes, and context specific diagnostics might be included in this PR.

This rewrite of the analyzer will include improvements for supporting edge cases specifically related to the various methods fish provides to define variables (with proper scope) including:

  • set/read flags: -l/--local, -g/--global, -U/--universal, -f/--function
  • the argparse command

    allowing for a function's completions to be auto-generated, plus many other things

  • function flags: -V/--inherit-variable, -a/--argument-names, -v/--on-variable, -S/--no-scope-shadowing
  • generated variable scoping: $status, $pipestatus, $argv

Tasks