plugins.none-ls.enable

Whether to enable none-ls.

Type: boolean

Default: false

Example: true

Declared by:

plugins.none-ls.enableLspFormat

Automatically enable the lsp-format plugin and configure none-ls accordingly.

Type: boolean

Default: false

Example: true

Declared by:

plugins.none-ls.package

Plugin to use for none-ls

Type: package

Default: <derivation vimplugin-none-ls.nvim-2024-05-14>

Declared by:

plugins.none-ls.border

Uses NullLsInfoBorder highlight group (see Highlight Groups).

Defines the border to use for :NullLsInfo UI window… Accepts same border values as nvim_open_win(). See :help nvim_open_win() for more info.

Plugin default: null

Type: null or string or list of string or list of list of string or raw lua code

Default: null

Declared by:

plugins.none-ls.cmd

Defines the command used to start the null-ls server. If you do not have an nvim binary available on your $PATH, you should change this to an absolute path to the binary.

Plugin default: ["nvim"]

Type: null or (list of string)

Default: null

Declared by:

plugins.none-ls.debounce

The debounce setting controls the amount of time between the last change to a buffer and the next textDocument/didChange notification. These notifications cause null-ls to generate diagnostics, so this setting indirectly controls the rate of diagnostic generation (affected by update_in_insert, described below).

Lowering debounce will result in quicker diagnostic refreshes at the cost of running diagnostic sources more frequently, which can affect performance. The default value should be enough to provide near-instantaneous feedback from most sources without unnecessary resource usage.

Plugin default: 250

Type: null or signed integer or floating point number or raw lua code

Default: null

Declared by:

plugins.none-ls.debug

Displays all possible log messages and writes them to the null-ls log, which you can view with the command :NullLsLog. This option can slow down Neovim, so it’s strongly recommended to disable it for normal use.

debug = true is the same as setting logLevel to "trace".

Plugin default: false

Type: null or boolean or raw lua code

Default: null

Declared by:

plugins.none-ls.defaultTimeout

Sets the amount of time (in milliseconds) after which built-in sources will time out. Note that built-in sources can define their own timeout period and that users can override the timeout period on a per-source basis, too (see BUILTIN_CONFIG.md).

Specifying a timeout with a value less than zero will prevent commands from timing out.

Plugin default: 5000

Type: null or signed integer or floating point number or raw lua code

Default: null

Declared by:

plugins.none-ls.diagnosticConfig

Specifies diagnostic display options for null-ls sources, as described in :help vim.diagnostic.config(). (null-ls uses separate namespaces for each source, so server-wide configuration will not work as expected.)

You can also configure diagnostic_config per built-in by using the with method, described in BUILTIN_CONFIG.md.

Plugin default: null

Type: null or (attribute set)

Default: null

Declared by:

plugins.none-ls.diagnosticsFormat

Sets the default format used for diagnostics. The plugin will replace the following special components with the relevant diagnostic information:

  • #{m}: message
  • #{s}: source name (defaults to null-ls if not specified)
  • #{c}: code (if available)

For example, setting diagnostics_format to the following:

diagnostics_format = "[#{c}] #{m} (#{s})"

Formats diagnostics as follows:

[2148] Tips depend on target shell and yours is unknown. Add a shebang or a 'shell' directive. (shellcheck)

You can also configure diagnostics_format per built-in by using the with method, described in BUILTIN_CONFIG.

Plugin default: "#{m}"

Type: null or string or raw lua code

Default: null

Declared by:

plugins.none-ls.extraOptions

These attributes will be added to the table parameter for the setup function. Typically, it can override NixVim’s default settings.

Type: attribute set of anything

Default: { }

Declared by:

plugins.none-ls.fallbackSeverity

Defines the severity used when a diagnostic source does not explicitly define a severity. See :help diagnostic-severity for available values.

Type: null or unsigned integer, meaning >=0, or one of “error”, “warn”, “info”, “hint”

Default: "error"

Declared by:

plugins.none-ls.logLevel

Enables or disables logging to file.

Plugin logs messages on several logging levels to following destinations:

  • file, can be inspected by :NullLsLog.
  • neovim’s notification area.

Plugin default: "warn"

Type: null or one of “off”, “error”, “warn”, “info”, “debug”, “trace” or raw lua code

Default: null

Declared by:

plugins.none-ls.notifyFormat

Sets the default format for vim.notify() messages. Can be used to customize 3rd party notification plugins like nvim-notify.

Plugin default: "[null-ls] %s"

Type: null or string or raw lua code

Default: null

Declared by:

plugins.none-ls.onAttach

Defines an on_attach callback to run whenever null-ls attaches to a buffer. If you have a common on_attach you’re using for LSP servers, you can reuse that here, use a custom callback for null-ls, or leave this undefined.

Plugin default: null

Type: null or string or raw lua code

Default: null

Declared by:

plugins.none-ls.onExit

Defines an on_exit callback to run when the null-ls client exits.

Plugin default: null

Type: null or lua function string

Default: null

Declared by:

plugins.none-ls.onInit

Defines an on_init callback to run when null-ls initializes. From here, you can make changes to the client (the first argument) or initialize_result (the second argument, which as of now is not used).

Plugin default: null

Type: null or lua function string

Default: null

Declared by:

plugins.none-ls.rootDir

Determines the root of the null-ls server. On startup, null-ls will call root_dir with the full path to the first file that null-ls attaches to.

local root_dir = function(fname)
    return fname:match("my-project") and "my-project-root"
end

If root_dir returns nil, the root will resolve to the current working directory.

Plugin default: null

Type: null or lua function string

Default: null

Declared by:

plugins.none-ls.shouldAttach

A user-defined function that controls whether to enable null-ls for a given buffer. Receives bufnr as its first argument.

To cut down potentially expensive calls, null-ls will call should_attach after its own internal checks pass, so it’s not guaranteed to run on each new buffer.

require("null-ls.nvim").setup({
    should_attach = function(bufnr)
        return not vim.api.nvim_buf_get_name(bufnr):match("^git://")
    end,
})

Plugin default: null

Type: null or lua function string

Default: null

Declared by:

plugins.none-ls.sourcesItems

The list of sources to enable, should be strings of lua code. Don’t use this directly

Type: null or (list of attribute set of string)

Default: null

Declared by:

plugins.none-ls.tempDir

Defines the directory used to create temporary files for sources that rely on them (a workaround used for command-based sources that do not support stdio).

To maximize compatibility, null-ls defaults to creating temp files in the same directory as the parent file. If this is causing issues, you can set it to /tmp (or another appropriate directory) here. Otherwise, there is no need to change this setting.

Note: some null-ls built-in sources expect temp files to exist within a project for context and so will not work if this option changes.

You can also configure temp_dir per built-in by using the with method, described in BUILTIN_CONFIG.md.

Plugin default: null

Type: null or string or raw lua code

Default: null

Declared by:

plugins.none-ls.updateInInsert

Controls whether diagnostic sources run in insert mode. If set to false, diagnostic sources will run upon exiting insert mode, which greatly improves performance but can create a slight delay before diagnostics show up. Set this to true if you don’t experience performance issues with your sources.

Note that by default, Neovim will not display updated diagnostics in insert mode. Together with the option above, you need to pass update_in_insert = true to vim.diagnostic.config for diagnostics to work as expected. See :help vim.diagnostic.config for more info.

Plugin default: false

Type: null or boolean or raw lua code

Default: null

Declared by: