Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Registry options

The shared language-server and formatter registries. Languages and addons refer to entries here by name, so overriding one entry changes it for every editor at once.

devix.formatters

Reusable formatter registry.

Type: attribute set of (submodule)

Default:

{ }

Declared by:

devix.formatters.<name>.enable

Enable this formatter.

Type: boolean

Default:

true

Declared by:

devix.formatters.<name>.package

Package providing this formatter.

Type: null or package

Default:

null

Declared by:

devix.formatters.<name>.args

Arguments passed to this formatter.

Type: list of string

Default:

[ ]

Declared by:

devix.formatters.<name>.command

Command used to run this formatter. Derived from package; set it explicitly when the binary is not the package’s main program.

Type: string

Default:

lib.getExe package, or the registry key when there is no package

Declared by:

devix.formatters.<name>.consumers

Per-consumer exposure for this formatter (see lsps.<name>.consumers).

Type: submodule

Default:

{ }

Declared by:

devix.formatters.<name>.consumers.helix

Exposure toggle for the helix consumer.

Type: submodule

Default:

{ }

Declared by:

devix.formatters.<name>.consumers.helix.enable

Whether this is exposed to / configured for this consumer.

Type: boolean

Default:

true

Declared by:

devix.formatters.<name>.consumers.opencode

Exposure toggle for the opencode consumer.

Type: submodule

Default:

{ }

Declared by:

devix.formatters.<name>.consumers.opencode.enable

Whether this is exposed to / configured for this consumer.

Type: boolean

Default:

true

Declared by:

devix.formatters.<name>.consumers.zed

Exposure toggle for the zed consumer.

Type: submodule

Default:

{ }

Declared by:

devix.formatters.<name>.consumers.zed.enable

Whether this is exposed to / configured for this consumer.

Type: boolean

Default:

true

Declared by:

devix.lsps

Reusable language server registry.

Type: attribute set of (submodule)

Default:

{ }

Declared by:

devix.lsps.<name>.enable

Enable this language server.

Type: boolean

Default:

true

Declared by:

devix.lsps.<name>.package

Package providing this language server.

Type: null or package

Default:

null

Declared by:

devix.lsps.<name>.args

Arguments passed to this language server.

Type: list of string

Default:

[ ]

Declared by:

devix.lsps.<name>.command

Command used to start this language server. Derived from package, so pointing package at a different build (an unstable one, say) is normally all you need. Set this explicitly when the binary is not the package’s main program.

Type: string

Default:

lib.getExe package, or the registry key when there is no package

Declared by:

devix.lsps.<name>.config

Editor-specific configuration passed to this language server.

Type: attribute set of anything

Default:

{ }

Declared by:

devix.lsps.<name>.consumers

Per-consumer exposure for this language server. Each consumer defaults to enabled; set e.g. consumers.zed.enable = false to keep this server out of Zed while leaving it available to Helix/OpenCode.

Type: submodule

Default:

{ }

Declared by:

devix.lsps.<name>.consumers.helix

Exposure toggle for the helix consumer.

Type: submodule

Default:

{ }

Declared by:

devix.lsps.<name>.consumers.helix.enable

Whether this is exposed to / configured for this consumer.

Type: boolean

Default:

true

Declared by:

devix.lsps.<name>.consumers.opencode

Exposure toggle for the opencode consumer.

Type: submodule

Default:

{ }

Declared by:

devix.lsps.<name>.consumers.opencode.enable

Whether this is exposed to / configured for this consumer.

Type: boolean

Default:

true

Declared by:

devix.lsps.<name>.consumers.zed

Exposure toggle for the zed consumer.

Type: submodule

Default:

{ }

Declared by:

devix.lsps.<name>.consumers.zed.enable

Whether this is exposed to / configured for this consumer.

Type: boolean

Default:

true

Declared by:

devix.lsps.<name>.environment

Literal environment variables to set when launching this server. Consumers that support it wrap the command in a shell launcher.

Type: attribute set of string

Default:

{ }

Declared by:

devix.lsps.<name>.environmentScript

Shell snippet prepended to the server launcher (e.g. to read a secret into an env var). Used for AI servers; see lib/opencode.nix.

Type: strings concatenated with “\n”

Default:

""

Declared by:

devix.lsps.<name>.kind

Classification of this server, used by consumers to decide how to attach it (e.g. AI/grammar servers may be handled specially).

Type: one of “language”, “grammar”, “tool”, “ai”

Default:

"language"

Declared by: