Server Configurations

The server configuration is optional, and might not be required for your setup (e.g., if you didn't install fish-lsp via a package manager).

Completions

# To generate completions for your shell via the `fish-lsp` version actively in your PATH:
fish-lsp complete | source

# To catch the completions in a file for your shell to source:
fish-lsp complete > ~/.config/fish/completions/fish-lsp.fish

Environment Variables

fish-lsp env --create
# $fish_lsp_enabled_handlers <ARRAY>
# Enables the fish-lsp handlers. By default, all stable handlers are enabled.
# (Options: 'complete', 'hover', 'rename', 'definition', 'implementation', 
#           'reference', 'logger', 'formatting', 'formatRange', 
#           'typeFormatting', 'codeAction', 'codeLens', 'folding', 
#           'selectionRange', 'signature', 'executeCommand', 'inlayHint', 
#           'highlight', 'diagnostic', 'popups', 'semanticTokens')
# (Default: [])
set -gx fish_lsp_enabled_handlers 

# $fish_lsp_disabled_handlers <ARRAY>
# Disables the fish-lsp handlers. By default, non-stable handlers are disabled.
# (Options: 'complete', 'hover', 'rename', 'definition', 'implementation', 
#           'reference', 'logger', 'formatting', 'formatRange', 
#           'typeFormatting', 'codeAction', 'codeLens', 'folding', 
#           'selectionRange', 'signature', 'executeCommand', 'inlayHint', 
#           'highlight', 'diagnostic', 'popups', 'semanticTokens')
# (Default: [])
set -gx fish_lsp_disabled_handlers 

# $fish_lsp_commit_characters <ARRAY>
# Array of the completion expansion characters.
# Single letter values only.
# Commit characters are used to select completion items, as shortcuts.
# (Example Options: '.', ',', ';', ':', '(', ')', '[', ']', '{', '}', '<', 
#                   '>', ''', '"', '=', '+', '-', '/', '\', '|', '&', '%', 
#                   '$', '#', '@', '!', '?', '*', '^', '`', '~', '\t', ' ')
# (Default: ['\t', ';', ' '])
set -gx fish_lsp_commit_characters 

# $fish_lsp_log_file <STRING>
# A path to the fish-lsp's logging file. Empty string disables logging.
# (Example Options: '/tmp/fish_lsp.log', '~/path/to/fish_lsp/logs.txt')
# (Default: '')
set -gx fish_lsp_log_file 

# $fish_lsp_log_level <STRING>
# The logging severity level for displaying messages in the log file.
# (Options: 'debug', 'info', 'warning', 'error', 'log')
# (Default: '')
set -gx fish_lsp_log_level 

# $fish_lsp_all_indexed_paths <ARRAY>
# The fish file paths to include in the fish-lsp's startup indexing, as workspaces.
# Order matters (usually place `$__fish_config_dir` before `$__fish_data_dir`).
# (Example Options: '$HOME/.config/fish', '/usr/share/fish', 
#                   '$__fish_config_dir', '$__fish_data_dir')
# (Default: ['$__fish_config_dir', '$__fish_data_dir'])
set -gx fish_lsp_all_indexed_paths 

# $fish_lsp_modifiable_paths <ARRAY>
# The fish file paths, for workspaces where global symbols can be renamed by the user.
# (Example Options: '/usr/share/fish', '$HOME/.config/fish', 
#                   '$__fish_data_dir', '$__fish_config_dir')
# (Default: ['$__fish_config_dir'])
set -gx fish_lsp_modifiable_paths 

# $fish_lsp_diagnostic_disable_error_codes <ARRAY>
# The diagnostics error codes to disable from the fish-lsp's diagnostics.
# (Options: 1001, 1002, 1003, 1004, 1005, 2001, 2002, 2003, 2004, 3001, 3002, 
#           3003, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008, 4009, 5001, 
#           5555, 6001, 7001, 8001, 9999)
# (Default: [])
set -gx fish_lsp_diagnostic_disable_error_codes 

# $fish_lsp_max_diagnostics <NUMBER>
# The maximum number of diagnostics to return per file.
# Using value `0` means unlimited diagnostics.
# To entirely disable diagnostics use `fish_lsp_disabled_handlers`
# (Example Options: 0, 10, 25, 50, 100, 250)
# (Default: 0)
set -gx fish_lsp_max_diagnostics 

# $fish_lsp_enable_experimental_diagnostics <BOOLEAN>
# Enables the experimental diagnostics feature, using `fish --no-execute`.
# This feature will enable the diagnostic error code 9999 (disabled by default).
# (Options: 'true', 'false')
# (Default: 'false')
set -gx fish_lsp_enable_experimental_diagnostics 

# $fish_lsp_strict_conditional_command_warnings <BOOLEAN>
# Diagnostic `3002` includes/excludes conditionally chained commands to explicitly check existence.
# ENABLED EXAMPLE: `command -q ls && command ls || echo 'no ls'`
# DISABLED EXAMPLE: `command ls || echo 'no ls'`
# (Options: 'true', 'false')
# (Default: 'false')
set -gx fish_lsp_strict_conditional_command_warnings 

# $fish_lsp_prefer_builtin_fish_commands <BOOLEAN>
# Show diagnostic `2004` which warns the user when they are using a recognized external command that can be replaced by an equivalent fish builtin command.
# (Options: 'true', 'false')
# (Default: 'false')
set -gx fish_lsp_prefer_builtin_fish_commands 

# $fish_lsp_allow_fish_wrapper_functions <BOOLEAN>
# Show warnings when `alias`, `export`, etc... are used instead of their equivalent fish builtin commands.
# Some commands will provide quick-fixes to convert this diagnostic to its equivalent fish command.
# Diagnostic `2002` is shown when this setting is false, and hidden when true.
# (Options: 'true', 'false')
# (Default: 'true')
set -gx fish_lsp_allow_fish_wrapper_functions 

# $fish_lsp_require_autoloaded_functions_to_have_description <BOOLEAN>
# Show warning diagnostic `4008` when an autoloaded function definition does not have a description `function -d/--description '...'; end;`
# (Options: 'true', 'false')
# (Default: 'true')
set -gx fish_lsp_require_autoloaded_functions_to_have_description 

# $fish_lsp_max_background_files <NUMBER>
# The maximum number of background files to read into buffer on startup.
# (Example Options: 100, 250, 500, 1000, 5000, 10000)
# (Default: 10000)
set -gx fish_lsp_max_background_files 

# $fish_lsp_show_client_popups <BOOLEAN>
# Should the client receive pop-up window notification requests from the fish-lsp server?
# (Options: 'true', 'false')
# (Default: 'false')
set -gx fish_lsp_show_client_popups 

# $fish_lsp_single_workspace_support <BOOLEAN>
# Try to limit the fish-lsp's workspace searching to only the current workspace open.
# (Options: 'true', 'false')
# (Default: 'true')
set -gx fish_lsp_single_workspace_support 

# $fish_lsp_ignore_paths <ARRAY>
# Glob paths to never search when indexing their parent folder
# (Example Options: '**/.git/**', '**/node_modules/**', '**/vendor/**', 
#                   '**/__pycache__/**', '**/docker/**', 
#                   '**/containerized/**', '**/*.log', '**/tmp/**')
# (Default: ['**/.git/**', '**/node_modules/**', '**/containerized/**', 
#           '**/docker/**'])
set -gx fish_lsp_ignore_paths 

# $fish_lsp_max_workspace_depth <NUMBER>
# The maximum depth for the lsp to search when starting up.
# (Example Options: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20)
# (Default: 5)
set -gx fish_lsp_max_workspace_depth 

# $fish_lsp_fish_path <STRING>
# A path to the fish executable to use exposing fish binary to use in server's spawned child_processes.
# Typically, this is used in the language-client's `FishServer.initialize(connection, InitializeParams.initializationOptions)`, NOT as an environment variable
# (Example Options: 'fish', '/usr/bin/fish', '/usr/.local/bin/fish', 
#                   '~/.local/bin/fish')
# (Default: '')
set -gx fish_lsp_fish_path 

# $fish_lsp_tree_sitter_wasm_path <STRING>
# A path to the tree-sitter-fish.wasm binary for the language server to use
# (Example Options: '~/repos/tree-sitter-fish/tree-sitter-fish.wasm', 
#                   '~/.local/share/tree-sitter-fish.wasm', '')
# (Default: '')
set -gx fish_lsp_tree_sitter_wasm_path 

# $fish_lsp_show_subcommand_semantic_tokens <BOOLEAN>
# Highlight `COMMAND SUBCOMMAND` tokens together (e.g., `string collect`, `path resolve`, `status is-interactive`)
# (Options: 'true', 'false')
# (Default: 'true')
set -gx fish_lsp_show_subcommand_semantic_tokens
fish-lsp env --show-default
# $fish_lsp_enabled_handlers <ARRAY>
# Enables the fish-lsp handlers. By default, all stable handlers are enabled.
# (Options: 'complete', 'hover', 'rename', 'definition', 'implementation', 
#           'reference', 'logger', 'formatting', 'formatRange', 
#           'typeFormatting', 'codeAction', 'codeLens', 'folding', 
#           'selectionRange', 'signature', 'executeCommand', 'inlayHint', 
#           'highlight', 'diagnostic', 'popups', 'semanticTokens')
# (Default: [])
set -gx fish_lsp_enabled_handlers 

# $fish_lsp_disabled_handlers <ARRAY>
# Disables the fish-lsp handlers. By default, non-stable handlers are disabled.
# (Options: 'complete', 'hover', 'rename', 'definition', 'implementation', 
#           'reference', 'logger', 'formatting', 'formatRange', 
#           'typeFormatting', 'codeAction', 'codeLens', 'folding', 
#           'selectionRange', 'signature', 'executeCommand', 'inlayHint', 
#           'highlight', 'diagnostic', 'popups', 'semanticTokens')
# (Default: [])
set -gx fish_lsp_disabled_handlers 

# $fish_lsp_commit_characters <ARRAY>
# Array of the completion expansion characters.
# Single letter values only.
# Commit characters are used to select completion items, as shortcuts.
# (Example Options: '.', ',', ';', ':', '(', ')', '[', ']', '{', '}', '<', 
#                   '>', ''', '"', '=', '+', '-', '/', '\', '|', '&', '%', 
#                   '$', '#', '@', '!', '?', '*', '^', '`', '~', '\t', ' ')
# (Default: ['\t', ';', ' '])
set -gx fish_lsp_commit_characters '\t' ';' ' '

# $fish_lsp_log_file <STRING>
# A path to the fish-lsp's logging file. Empty string disables logging.
# (Example Options: '/tmp/fish_lsp.log', '~/path/to/fish_lsp/logs.txt')
# (Default: '')
set -gx fish_lsp_log_file ''

# $fish_lsp_log_level <STRING>
# The logging severity level for displaying messages in the log file.
# (Options: 'debug', 'info', 'warning', 'error', 'log')
# (Default: '')
set -gx fish_lsp_log_level ''

# $fish_lsp_all_indexed_paths <ARRAY>
# The fish file paths to include in the fish-lsp's startup indexing, as workspaces.
# Order matters (usually place `$__fish_config_dir` before `$__fish_data_dir`).
# (Example Options: '$HOME/.config/fish', '/usr/share/fish', 
#                   '$__fish_config_dir', '$__fish_data_dir')
# (Default: ['$__fish_config_dir', '$__fish_data_dir'])
set -gx fish_lsp_all_indexed_paths "$__fish_config_dir" "$__fish_data_dir"

# $fish_lsp_modifiable_paths <ARRAY>
# The fish file paths, for workspaces where global symbols can be renamed by the user.
# (Example Options: '/usr/share/fish', '$HOME/.config/fish', 
#                   '$__fish_data_dir', '$__fish_config_dir')
# (Default: ['$__fish_config_dir'])
set -gx fish_lsp_modifiable_paths "$__fish_config_dir"

# $fish_lsp_diagnostic_disable_error_codes <ARRAY>
# The diagnostics error codes to disable from the fish-lsp's diagnostics.
# (Options: 1001, 1002, 1003, 1004, 1005, 2001, 2002, 2003, 2004, 3001, 3002, 
#           3003, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008, 4009, 5001, 
#           5555, 6001, 7001, 8001, 9999)
# (Default: [])
set -gx fish_lsp_diagnostic_disable_error_codes 

# $fish_lsp_max_diagnostics <NUMBER>
# The maximum number of diagnostics to return per file.
# Using value `0` means unlimited diagnostics.
# To entirely disable diagnostics use `fish_lsp_disabled_handlers`
# (Example Options: 0, 10, 25, 50, 100, 250)
# (Default: 0)
set -gx fish_lsp_max_diagnostics 0

# $fish_lsp_enable_experimental_diagnostics <BOOLEAN>
# Enables the experimental diagnostics feature, using `fish --no-execute`.
# This feature will enable the diagnostic error code 9999 (disabled by default).
# (Options: 'true', 'false')
# (Default: 'false')
set -gx fish_lsp_enable_experimental_diagnostics false

# $fish_lsp_strict_conditional_command_warnings <BOOLEAN>
# Diagnostic `3002` includes/excludes conditionally chained commands to explicitly check existence.
# ENABLED EXAMPLE: `command -q ls && command ls || echo 'no ls'`
# DISABLED EXAMPLE: `command ls || echo 'no ls'`
# (Options: 'true', 'false')
# (Default: 'false')
set -gx fish_lsp_strict_conditional_command_warnings false

# $fish_lsp_prefer_builtin_fish_commands <BOOLEAN>
# Show diagnostic `2004` which warns the user when they are using a recognized external command that can be replaced by an equivalent fish buil
tin command.
# (Options: 'true', 'false')
# (Default: 'false')
set -gx fish_lsp_prefer_builtin_fish_commands false

# $fish_lsp_allow_fish_wrapper_functions <BOOLEAN>
# Show warnings when `alias`, `export`, etc... are used instead of their equivalent fish builtin commands.
# Some commands will provide quick-fixes to convert this diagnostic to its equivalent fish command.
# Diagnostic `2002` is shown when this setting is false, and hidden when true.
# (Options: 'true', 'false')
# (Default: 'true')
set -gx fish_lsp_allow_fish_wrapper_functions true

# $fish_lsp_require_autoloaded_functions_to_have_description <BOOLEAN>
# Show warning diagnostic `4008` when an autoloaded function definition does not have a description `function -d/--description '...'; end;`
# (Options: 'true', 'false')
# (Default: 'true')
set -gx fish_lsp_require_autoloaded_functions_to_have_description true

# $fish_lsp_max_background_files <NUMBER>
# The maximum number of background files to read into buffer on startup.
# (Example Options: 100, 250, 500, 1000, 5000, 10000)
# (Default: 10000)
set -gx fish_lsp_max_background_files 10000

# $fish_lsp_show_client_popups <BOOLEAN>
# Should the client receive pop-up window notification requests from the fish-lsp server?
# (Options: 'true', 'false')
# (Default: 'false')
set -gx fish_lsp_show_client_popups true

# $fish_lsp_single_workspace_support <BOOLEAN>
# Try to limit the fish-lsp's workspace searching to only the current workspace open.
# (Options: 'true', 'false')
# (Default: 'true')
set -gx fish_lsp_single_workspace_support true

# $fish_lsp_ignore_paths <ARRAY>
# Glob paths to never search when indexing their parent folder
# (Example Options: '**/.git/**', '**/node_modules/**', '**/vendor/**', 
#                   '**/__pycache__/**', '**/docker/**', 
#                   '**/containerized/**', '**/*.log', '**/tmp/**')
# (Default: ['**/.git/**', '**/node_modules/**', '**/containerized/**', 
#           '**/docker/**'])
set -gx fish_lsp_ignore_paths '**/.git/**' '**/node_modules/**' '**/containerized/**' '**/docker/**'

# $fish_lsp_max_workspace_depth <NUMBER>
# The maximum depth for the lsp to search when starting up.
# (Example Options: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20)
# (Default: 5)
set -gx fish_lsp_max_workspace_depth 3

# $fish_lsp_fish_path <STRING>
# A path to the fish executable to use exposing fish binary to use in server's spawned child_processes.
# Typically, this is used in the language-client's `FishServer.initialize(connection, InitializeParams.initializationOptions)`, NOT as an environment variable
# (Example Options: 'fish', '/usr/bin/fish', '/usr/.local/bin/fish', 
#                   '~/.local/bin/fish')
# (Default: '')
set -gx fish_lsp_fish_path 'fish'

# $fish_lsp_tree_sitter_wasm_path <STRING>
# A path to the tree-sitter-fish.wasm binary for the language server to use
# (Example Options: '~/repos/tree-sitter-fish/tree-sitter-fish.wasm', 
#                   '~/.local/share/tree-sitter-fish.wasm', '')
# (Default: '')
set -gx fish_lsp_tree_sitter_wasm_path ''

# $fish_lsp_show_subcommand_semantic_tokens <BOOLEAN>
# Highlight `COMMAND SUBCOMMAND` tokens together (e.g., `string collect`, `path resolve`, `status is-interactive`)
# (Options: 'true', 'false')
# (Default: 'true')
set -gx fish_lsp_show_subcommand_semantic_tokens true
fish-lsp env --create --no-comments
set -gx fish_lsp_enabled_handlers 

set -gx fish_lsp_disabled_handlers 

set -gx fish_lsp_commit_characters 

set -gx fish_lsp_log_file 

set -gx fish_lsp_log_level 

set -gx fish_lsp_all_indexed_paths 

set -gx fish_lsp_modifiable_paths 

set -gx fish_lsp_diagnostic_disable_error_codes 

set -gx fish_lsp_max_diagnostics 

set -gx fish_lsp_enable_experimental_diagnostics 

set -gx fish_lsp_strict_conditional_command_warnings 

set -gx fish_lsp_prefer_builtin_fish_commands 

set -gx fish_lsp_allow_fish_wrapper_functions 

set -gx fish_lsp_require_autoloaded_functions_to_have_description 

set -gx fish_lsp_max_background_files 

set -gx fish_lsp_show_client_popups 

set -gx fish_lsp_single_workspace_support 

set -gx fish_lsp_ignore_paths 

set -gx fish_lsp_max_workspace_depth 

set -gx fish_lsp_fish_path 

set -gx fish_lsp_tree_sitter_wasm_path 

set -gx fish_lsp_show_subcommand_semantic_tokens
fish-lsp env --show
set -gx fish_lsp_enabled_handlers 

set -gx fish_lsp_disabled_handlers 

set -gx fish_lsp_commit_characters '\t' ';' ' '

set -gx fish_lsp_log_file ''

set -gx fish_lsp_log_level ''

set -gx fish_lsp_all_indexed_paths "$__fish_config_dir" "$__fish_data_dir"

set -gx fish_lsp_modifiable_paths "$__fish_config_dir"

set -gx fish_lsp_diagnostic_disable_error_codes 

set -gx fish_lsp_max_diagnostics 0

set -gx fish_lsp_enable_experimental_diagnostics false

set -gx fish_lsp_strict_conditional_command_warnings false

set -gx fish_lsp_prefer_builtin_fish_commands false

set -gx fish_lsp_allow_fish_wrapper_functions true

set -gx fish_lsp_require_autoloaded_functions_to_have_description true

set -gx fish_lsp_max_background_files 10000

set -gx fish_lsp_show_client_popups true

set -gx fish_lsp_single_workspace_support true

set -gx fish_lsp_ignore_paths '**/.git/**' '**/node_modules/**' '**/containerized/**' '**/docker/**'

set -gx fish_lsp_max_workspace_depth 3

set -gx fish_lsp_fish_path 'fish'

set -gx fish_lsp_tree_sitter_wasm_path ''

set -gx fish_lsp_show_subcommand_semantic_tokens true
fish-lsp env --show-default --confd
# built by `fish-lsp env --show-default --confd`
type -aq fish-lsp || exit
if status is-interactive
    # $fish_lsp_enabled_handlers <ARRAY>
    # Enables the fish-lsp handlers. By default, all stable handlers are enabled.
    # (Options: 'complete', 'hover', 'rename', 'definition', 'implementation', 
    #           'reference', 'logger', 'formatting', 'formatRange', 
    #           'typeFormatting', 'codeAction', 'codeLens', 'folding', 
    #           'selectionRange', 'signature', 'executeCommand', 'inlayHint', 
    #           'highlight', 'diagnostic', 'popups', 'semanticTokens')
    # (Default: [])
    set -gx fish_lsp_enabled_handlers

    # $fish_lsp_disabled_handlers <ARRAY>
    # Disables the fish-lsp handlers. By default, non-stable handlers are disabled.
    # (Options: 'complete', 'hover', 'rename', 'definition', 'implementation', 
    #           'reference', 'logger', 'formatting', 'formatRange', 
    #           'typeFormatting', 'codeAction', 'codeLens', 'folding', 
    #           'selectionRange', 'signature', 'executeCommand', 'inlayHint', 
    #           'highlight', 'diagnostic', 'popups', 'semanticTokens')
    # (Default: [])
    set -gx fish_lsp_disabled_handlers

    # $fish_lsp_commit_characters <ARRAY>
    # Array of the completion expansion characters.
    # Single letter values only.
    # Commit characters are used to select completion items, as shortcuts.
    # (Example Options: '.', ',', ';', ':', '(', ')', '[', ']', '{', '}', '<', 
    #                   '>', ''', '"', '=', '+', '-', '/', '\', '|', '&', '%', 
    #                   '$', '#', '@', '!', '?', '*', '^', '`', '~', '\t', ' ')
    # (Default: ['\t', ';', ' '])
    set -gx fish_lsp_commit_characters '\t' ';' ' '

    # $fish_lsp_log_file <STRING>
    # A path to the fish-lsp's logging file. Empty string disables logging.
    # (Example Options: '/tmp/fish_lsp.log', '~/path/to/fish_lsp/logs.txt')
    # (Default: '')
    set -gx fish_lsp_log_file ''

    # $fish_lsp_log_level <STRING>
    # The logging severity level for displaying messages in the log file.
    # (Options: 'debug', 'info', 'warning', 'error', 'log')
    # (Default: '')
    set -gx fish_lsp_log_level ''

    # $fish_lsp_all_indexed_paths <ARRAY>
    # The fish file paths to include in the fish-lsp's startup indexing, as workspaces.
    # Order matters (usually place `$__fish_config_dir` before `$__fish_data_dir`).
    # (Example Options: '$HOME/.config/fish', '/usr/share/fish', 
    #                   '$__fish_config_dir', '$__fish_data_dir')
    # (Default: ['$__fish_config_dir', '$__fish_data_dir'])
    set -gx fish_lsp_all_indexed_paths "$__fish_config_dir" "$__fish_data_dir"

    # $fish_lsp_modifiable_paths <ARRAY>
    # The fish file paths, for workspaces where global symbols can be renamed by the user.
    # (Example Options: '/usr/share/fish', '$HOME/.config/fish', 
    #                   '$__fish_data_dir', '$__fish_config_dir')
    # (Default: ['$__fish_config_dir'])
    set -gx fish_lsp_modifiable_paths "$__fish_config_dir"

    # $fish_lsp_diagnostic_disable_error_codes <ARRAY>
    # The diagnostics error codes to disable from the fish-lsp's diagnostics.
    # (Options: 1001, 1002, 1003, 1004, 1005, 2001, 2002, 2003, 2004, 3001, 3002, 
    #           3003, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008, 4009, 5001, 
    #           5555, 6001, 7001, 8001, 9999)
    # (Default: [])
    set -gx fish_lsp_diagnostic_disable_error_codes

    # $fish_lsp_max_diagnostics <NUMBER>
    # The maximum number of diagnostics to return per file.
    # Using value `0` means unlimited diagnostics.
    # To entirely disable diagnostics use `fish_lsp_disabled_handlers`
    # (Example Options: 0, 10, 25, 50, 100, 250)
    # (Default: 0)
    set -gx fish_lsp_max_diagnostics 0

    # $fish_lsp_enable_experimental_diagnostics <BOOLEAN>
    # Enables the experimental diagnostics feature, using `fish --no-execute`.
    # This feature will enable the diagnostic error code 9999 (disabled by default).
    # (Options: 'true', 'false')
    # (Default: 'false')
    set -gx fish_lsp_enable_experimental_diagnostics false

    # $fish_lsp_strict_conditional_command_warnings <BOOLEAN>
    # Diagnostic `3002` includes/excludes conditionally chained commands to explicitly check existence.
    # ENABLED EXAMPLE: `command -q ls && command ls || echo 'no ls'`
    # DISABLED EXAMPLE: `command ls || echo 'no ls'`
    # (Options: 'true', 'false')
    # (Default: 'false')
    set -gx fish_lsp_strict_conditional_command_warnings false

    # $fish_lsp_prefer_builtin_fish_commands <BOOLEAN>
    # Show diagnostic `2004` which warns the user when they are using a recognized external command that can be replaced by an equivalent fish builtin command.
    # (Options: 'true', 'false')
    # (Default: 'false')
    set -gx fish_lsp_prefer_builtin_fish_commands false

    # $fish_lsp_allow_fish_wrapper_functions <BOOLEAN>
    # Show warnings when `alias`, `export`, etc... are used instead of their equivalent fish builtin commands.
    # Some commands will provide quick-fixes to convert this diagnostic to its equivalent fish command.
    # Diagnostic `2002` is shown when this setting is false, and hidden when true.
    # (Options: 'true', 'false')
    # (Default: 'true')
    set -gx fish_lsp_allow_fish_wrapper_functions true

    # $fish_lsp_require_autoloaded_functions_to_have_description <BOOLEAN>
    # Show warning diagnostic `4008` when an autoloaded function definition does not have a description `function -d/--description '...'; end;`
    # (Options: 'true', 'false')
    # (Default: 'true')
    set -gx fish_lsp_require_autoloaded_functions_to_have_description true

    # $fish_lsp_max_background_files <NUMBER>
    # The maximum number of background files to read into buffer on startup.
    # (Example Options: 100, 250, 500, 1000, 5000, 10000)
    # (Default: 10000)
    set -gx fish_lsp_max_background_files 10000

    # $fish_lsp_show_client_popups <BOOLEAN>
    # Should the client receive pop-up window notification requests from the fish-lsp server?
    # (Options: 'true', 'false')
    # (Default: 'false')
    set -gx fish_lsp_show_client_popups true

    # $fish_lsp_single_workspace_support <BOOLEAN>
    # Try to limit the fish-lsp's workspace searching to only the current workspace open.
    # (Options: 'true', 'false')
    # (Default: 'true')
    set -gx fish_lsp_single_workspace_support true

    # $fish_lsp_ignore_paths <ARRAY>
    # Glob paths to never search when indexing their parent folder
    # (Example Options: '**/.git/**', '**/node_modules/**', '**/vendor/**', 
    #                   '**/__pycache__/**', '**/docker/**', 
    #                   '**/containerized/**', '**/*.log', '**/tmp/**')
    # (Default: ['**/.git/**', '**/node_modules/**', '**/containerized/**', 
    #           '**/docker/**'])
    set -gx fish_lsp_ignore_paths '**/.git/**' '**/node_modules/**' '**/containerized/**' '**/docker/**'

    # $fish_lsp_max_workspace_depth <NUMBER>
    # The maximum depth for the lsp to search when starting up.
    # (Example Options: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20)
    # (Default: 5)
    set -gx fish_lsp_max_workspace_depth 3

    # $fish_lsp_fish_path <STRING>
    # A path to the fish executable to use exposing fish binary to use in server's spawned child_processes.
    # Typically, this is used in the language-client's `FishServer.initialize(connection, InitializeParams.initializationOptions)`, NOT as an environment variable
    # (Example Options: 'fish', '/usr/bin/fish', '/usr/.local/bin/fish', 
    #                   '~/.local/bin/fish')
    # (Default: '')
    set -gx fish_lsp_fish_path 'fish'

    # $fish_lsp_tree_sitter_wasm_path <STRING>
    # A path to the tree-sitter-fish.wasm binary for the language server to use
    # (Example Options: '~/repos/tree-sitter-fish/tree-sitter-fish.wasm', 
    #                   '~/.local/share/tree-sitter-fish.wasm', '')
    # (Default: '')
    set -gx fish_lsp_tree_sitter_wasm_path ''

    # $fish_lsp_show_subcommand_semantic_tokens <BOOLEAN>
    # Highlight `COMMAND SUBCOMMAND` tokens together (e.g., `string collect`, `path resolve`, `status is-interactive`)
    # (Options: 'true', 'false')
    # (Default: 'true')
    set -gx fish_lsp_show_subcommand_semantic_tokens true
end
fish-lsp env --show-default --json
{
  "fish_lsp_enabled_handlers": [],
  "fish_lsp_disabled_handlers": [],
  "fish_lsp_commit_characters": [
    "\t",
    ";",
    " "
  ],
  "fish_lsp_log_file": "",
  "fish_lsp_log_level": "",
  "fish_lsp_all_indexed_paths": [
    "$__fish_config_dir",
    "$__fish_data_dir"
  ],
  "fish_lsp_modifiable_paths": [
    "$__fish_config_dir"
  ],
  "fish_lsp_diagnostic_disable_error_codes": [],
  "fish_lsp_max_diagnostics": 0,
  "fish_lsp_enable_experimental_diagnostics": false,
  "fish_lsp_strict_conditional_command_warnings": false,
  "fish_lsp_prefer_builtin_fish_commands": false,
  "fish_lsp_allow_fish_wrapper_functions": true,
  "fish_lsp_require_autoloaded_functions_to_have_description": true,
  "fish_lsp_max_background_files": 10000,
  "fish_lsp_show_client_popups": true,
  "fish_lsp_single_workspace_support": true,
  "fish_lsp_ignore_paths": [
    "**/.git/**",
    "**/node_modules/**",
    "**/containerized/**",
    "**/docker/**"
  ],
  "fish_lsp_max_workspace_depth": 3,
  "fish_lsp_fish_path": "fish",
  "fish_lsp_tree_sitter_wasm_path": "",
  "fish_lsp_show_subcommand_semantic_tokens": true
}

Configuration File

Fish allows for using configuration snippets in ~/.config/fish/conf.d/ to set environment variables on startup.

To generate a configuration file with the default global settings:

fish-lsp env --show-default --confd > ~/.config/fish/conf.d/fish-lsp.fish
fish-lsp complete --abbreviations >> ~/.config/fish/conf.d/fish-lsp.fish

Man page

To provide the manpage for fish-lsp in your system, you can generate it with:

fish-lsp info --man-file --show > $MANPATH[1]/man1/fish-lsp.1

Or you could copy it from the latest github release