FISH-LSP(1)

πŸ“¦ version 1.1.5, in nixpkgs unstable

πŸŽ€ NAME πŸŽ€

okay bestie, meet fish-lsp(1) β€” A language server for the fish shell πŸŸπŸ’– This is the manual for fish-lsp, and it's giving β€œyour fish scripts are about to get main character energy” ✨

🌸 SYNOPSIS 🌸

fish-lsp [OPTIONS]
fish-lsp [SUBCOMMAND] [OPTIONS]

πŸ¦‹ DESCRIPTION πŸ¦‹

fish-lsp is a language server for the fish shell. It brings IDE-like features to fish shell scripts, like syntax checking, linting, and auto-completion β€” yes bestie, all the good stuff πŸ’…

It requires a language client that supports the Language Server Protocol (LSP). Some common language clients include: the builtin API for nvim (v0.9+), lsp-mode for emacs, or the fish-lsp extension for VSCode 🫢

The documentation below shows usage of the fish-lsp command, including its subcommands and options. Periodt.

bestie, this is not a standalone editor vibe β€” it needs an LSP client to actually do its thing. The manual said it, so I'm saying it too πŸ’–

✨ OPTIONS ✨

  • -v, --version β€” Show version information and exit. πŸ‘‹
  • -h, --help β€” Show help message and exit. 🫢
  • --help-all β€” Show all the help information ✨
  • --help-short β€” Show shortened help message 🌸
  • --help-man β€” Show manpage output πŸ“–

πŸ’… SUBCOMMANDS πŸ’…

πŸš€ start

start the language server β€” the main event, the moment, the slay πŸ’…

  • --enable β€” enable the language server features ✨
  • --disable β€” disable the language server features πŸ™ˆ
  • --dump β€” dump the json output of the language server features enabled after startup πŸ‘€
  • --stdio β€” use stdin/stdout for communication (default) 🫢
  • --node-ipc β€” use node IPC for communication πŸ”Œ
  • --socket <port> β€” use TCP socket for communication 🌐
  • --memory-limit <mb> β€” set memory usage limit in MB 🧠
  • --max-files <number> β€” override the maximum number of files to analyze πŸ“‚
  • --web β€” start server in web mode used for https://fish-lsp.dev/playground 🌈

πŸ“ env

show the environment variables available to the lsp πŸ“

  • -c, --create β€” create the environment variable ✨
  • -s, --show β€” show the environment variables πŸ‘€
  • --show-default β€” show the default values for fish-lsp env variables πŸŽ€
  • --only <VAR> β€” only include the specified environment variables in the output 🎯
  • --no-global β€” don't use global scope when generating environment variables 🌍
  • --no-local β€” don't use local scope when generating environment variables 🏠
  • --no-export β€” don't use export flag when generating environment variables 🚫
  • --no-comments β€” skip outputting comments πŸ’¬
  • --confd β€” output for redirecting to conf.d/fish-lsp.fish 🐟
  • --json β€” output fish_lsp_* initialization variables as JSON object (for vscode settings.json) 🧾

🧚 info

show the build info of fish-lsp 🧚

  • --bin β€” show the path of the fish-lsp executable πŸ› οΈ
  • --path β€” show the path of the entire fish-lsp installation πŸ“¦
  • --build-time β€” show the path of the entire fish-lsp repo πŸ•°οΈ
  • --build-type β€” show the build type of the command 🏷️
  • -v, --version β€” show the lsp version πŸ’–
  • --lsp-version β€” show the vscode-languageserver version 🧩
  • --capabilities β€” show the lsp capabilities ✨
  • --man-file β€” show the man file path πŸ“–
  • --log-file β€” show the log file path πŸͺ΅
  • --show β€” show the man/log file contents (needs to be paired with --log-file or --man-file) πŸ‘€
  • --short β€” display small amount of info (alias for --version --build-type --build-time --lsp-version) πŸŽ€
  • --json β€” display the info as JSON (e.g., fish-lsp info --short --json) 🧾
  • --extra β€” show debugging server info (capabilities, paths, version, etc.) πŸ”
  • --verbose β€” show debugging server info (capabilities, paths, version, etc.) πŸ—£οΈ
  • --check-health β€” run diagnostics and report health status 🩺
  • --health-check β€” run diagnostics and report health status πŸ’–
  • --time-startup β€” time the startup of the fish-lsp executable ⏱️
  • --time-only β€” show brief summary of the startup timing πŸ•°οΈ
  • --use-workspace <PATH> β€” use the workspace at the specified directory path when fish-lsp info --time-startup is used πŸ“
  • --no-warning β€” disable message in the fish-lsp info --time-startup output 🚫
  • --show-files β€” show the files that were indexed during startup when fish-lsp info --time-startup is used πŸ“‚
  • --dump-symbol-tree <FILE> β€” show the fish-lsp definition symbol tree for the specified file 🌳
  • --dump-parse-tree <FILE> β€” show the tree-sitter AST for the specified file 🌲
  • --dump-semantic-tokens <FILE> β€” show the semantic-tokens for the specified file 🎨
  • --no-color β€” disable color output from --dump-* output 🌈
  • --no-icons β€” disable icon usage in output from fish-lsp info --dump-symbol-tree 🚫
  • --source-maps β€” show the source-maps πŸ—ΊοΈ
  • --url β€” used with --source-maps, show the download url of the external source map for this version πŸ”—
  • --check β€” used in combination with --source-maps, verifies source-maps are working by throwing an error πŸ’€
  • --status β€” used in combination with --source-maps, shows status of source-maps loading πŸ“Š

πŸ¦‹ url

show a helpful url related to the fish-lsp πŸ¦‹

  • --repo, --git β€” show the github repo πŸ™
  • --npm β€” show the npm package url πŸ“¦
  • --homepage β€” show the homepage 🏠
  • --contributions β€” show the contributions url 🀝
  • --wiki β€” show the github wiki πŸ“š
  • --issues, --report β€” show the issues page πŸ›
  • --discussions β€” show the discussions page πŸ’¬
  • --clients-repo β€” show the clients configuration repo 🧩
  • --sources β€” show a list of helpful sources πŸ”—

🌟 complete

Provide completions for the fish-lsp 🌟

  • --names β€” show the feature names of the completions 🏷️
  • --toggles β€” show the feature names of the completions 🎚️
  • --fish β€” show fish script 🐟
  • --features β€” show features ✨
  • --env-variables β€” show env variable completions πŸ“
  • --env-variable-names β€” show env variable names 🏷️
  • --names-with-summary β€” show the names with the summary for the completions πŸ“
  • --abbreviations β€” show the 'fish-lsp' subcommand abbreviations πŸ’…

🌈 EXAMPLES 🌈

  • Start the fish-lsp language server, with the default configuration:
>_ fish-lsp start
  • Generate the completions for the fish-lsp language server binary:
>_ fish-lsp complete > ~/.config/fish/completions/fish-lsp.fish
  • Debug the fish-lsp language server by dumping the enabled features after startup:
>_ fish-lsp start --dump
  • Show information about the fish-lsp language server:
>_ fish-lsp info
  • Show all the available information about the fish-lsp language server:
>_ fish-lsp info --verbose
  • Show startup timing information for the fish-lsp language server:
>_ fish-lsp info --time-startup
  • Show startup timing information for the fish-lsp language server for a specific workspace:
>_ fish-lsp info --time-startup --use-workspace ~/.config/fish --no-warning
  • Preform a health check on the fish-lsp language server:
>_ fish-lsp info --check-health
  • Show the tree-sitter-fish parse tree for the input:
>_ cat ~/.config/fish/config.fish | fish-lsp info --dump-parse-tree
  • Show the definition symbol tree for a specific file:
>_ fish-lsp info --dump-symbol-tree ~/.config/fish/config.fish
  • Show the semantic tokens for a specific file (read from stdin):
>_ cat $__fish_data_dir/config.fish | fish-lsp info --dump-semantic-tokens
  • Show the environment variables available to the fish-lsp language server:
>_ fish-lsp env --show
  • Show the default values for specific environment variables used by the fish-lsp language server:
>_ fish-lsp env --show-default --only fish_lsp_all_indexed_paths,fish_lsp_max_background_files --no-comments
  • Get sources related to the fish-lsp language server's development:
>_ fish-lsp url --sources

🫢 SEE ALSO 🫢

πŸ‘‘ AUTHOR πŸ‘‘

  • Nick Donfris πŸ‘‘

That's the tea πŸ“: the source/manual tag is FISH-LSP(1), version 1.1.5, dated October 2026. Now go be iconic with your fish scripts, bestie πŸ’…πŸŸβœ¨

πŸ“¦ where this page comes from