High-level overview of the project’s goals, tasks, and milestones for future releases.
Any new ideas related to the content here are welcome.
Sections:
- General Codebase Changes - tasks useful for future additions
- Server Features and Providers - future general features that the server provides
- Automation and Pipelines - CI/CD or tooling related to the project
- Documentation - modifications for the project's documentation (wiki, README, site, etc.)
- Refactor unused files & data-structures
- Read a user's specific configuration they have set
-
env_variables
could be set via zod - set options via cli flags,
fish-lsp start --enable ... --disable ...
- read from a global json file
-
- Supporting fish feature flags and handling proper syntax changes
- Add
Diagnostics
- add a
diagnostic queue
to store diagnostics - enable/disable specific features:
- Error - missing
end
to block - Error - missing
switch/case
fall through checkcase '*'
orcase \*
- Warning - prefer
command
/builtin
prefix for commands or builtins - Warning - missing completions file from a
functions/<file>.fish
- ...add more features...
- Error - missing
- write verbose tests for each new diagnostic
- add a
- Add
CodeActions
- Create
completions
file -
Quickfix
diagnostic error - Rename autoloaded filename (for a fish
function
), that doesn't have a matching function name - Prefer
command
prefix for possible aliased shell commands. - Move function in
~/.config/fish/config.fish
to it's own file,~/.config/fish/functions/<file>.fish
and call it inline. -
if
statement toand
/or
equivalent, combiner
- Create
- Add
CodeLens
support- Decide what would be useful to display
- Add
CommandExecutor
provider - Add function
SignatureHelp
provider. -
FormatOnType
provider (useful for small files) - Enable server via shebang's:
-
#!/usr/bin/fish
-
#!/usr/local/bin/fish
-
#!/usr/bin/env fish
-
- Add
DocumentHighlight
provider - Extend symbol definitions recognized by the server:
- variables created by
fish_opt
&&argparse
commands -
alias
names -
abbr
names - include theme variables
- event handlers for
function _ --on-event event
- universal variables
- variables created by
- Descriptions for array indexing:
echo $PATH[-1..2]
- ensure array indexes are:
1 >= idx <= -1
- ensure array indexes are:
-
source
command use cases, for workspaces outside of default configurations. (Thesource
command, can be used similar to import in other languages) - status variable documentation
0 is generally the exit status of commands if they successfully performed the requested operation. 1 is generally the exit status of commands if they failed to perform the requested operation. 121 is generally the exit status of commands if they were supplied with invalid arguments. 123 means that the command was not executed because the command name contained invalid characters. 124 means that the command was not executed because none of the wildcards in the command produced any matches. 125 means that while an executable with the specified name was located, the operating system could not actually execute the command. 126 means that while a file with the specified name was located, it was not executable. 127 means that no function, builtin or command with the given name could be located.
- Options to enable from client configuration
-
if_statement
must be silent:if command -s
->if command -sq
- prefer
command _
prefix for ambiguous commands - default case for
switch_statement
-
test
number/string flags from condition argument's - function requires returning a status number
-
fish_add_path
instead ofset -gx PATH _
- logger location
- private functions need underscore prefix
- prefer
universal
scope, or preferglobal
scope - prefer specific
redirect
to/dev/null
- hover documentation fallback: tldr, cht.sh, ...
- format specific options
- remove showing
lsp kind
in completions list
-
- (POTENTIALLY) Use pnpm instead of yarn
- Minimize
test-suite
for master branch's PR compatibility- run via:
yarn test-hook
- could be improved with more tests
- run via:
- Include refactoring/tree-shaking help to scripts:
yarn refactor
- Release binary downloadable files, per machine OS
- need a build pipeline as well
- handle scope specific dependencies
- Action for updating fish-lsp.dev documentation on new publishes
- write script for generating
fish-lsp --help
screenshot
- write script for generating
- Add new editor configurations:
- Monaco support (Could be used to demo project on fish-lsp.dev)
- helix support
- vscode support
- Add fish-lsp.dev website
- add monaco support -- testing lsp in web-editor
- Add improved
gif
file, showcasing lsp's capabilities to README.md - include
tree-sitter-fish.wasm
in downloaded project- build from fork: @esdmr/tree-sitter-fish
- universal
*.wasm
file
- README.md changes:
- improve contributing section (add authors icons)
- license include only MIT
- test out
<details><summary/></details>
for features
- Extend documentation provided via wiki
- workflows - guide for creating new workflows
- testing - guide for writing tests
- layout - guide for project layout & design patterns via mermaid charts