zig
Getting Started
Section titled “Getting Started”Use the version attribute to select the Zig compiler from zig-overlay
and the matching ZLS (Zig Language Server) release:
languages.zig = { enable = true; version = "0.15.1";};This will automatically:
- Use the specified Zig version from zig-overlay
- Install the corresponding ZLS version (e.g., version “0.15.1” uses ZLS 0.15.0)
Add the required inputs before starting the environment. For the example above:
devenv inputs add zig-overlay github:mitchellh/zig-overlay --follows nixpkgsdevenv inputs add zls github:zigtools/zls/0.15.0 --follows nixpkgs --follows zig-overlayFor Zig 0.16.0, use version = "0.16.0" and add ZLS with
devenv inputs add zls github:zigtools/zls/0.16.0 --follows nixpkgs.
ZLS 0.16 uses its own zig-flake input instead of zig-overlay.
Setting languages.zig.lsp.enable = false disables ZLS and removes the need for the zls input.
Alternatively, you can manually specify packages:
languages.zig = { enable = true; package = pkgs.zig; lsp.package = pkgs.zls;};Options
Section titled “Options”languages.zig.enable
Section titled “languages.zig.enable”Whether to enable tools for Zig development.
Type: boolean
Default:
falseExample:
trueDeclared by:
languages.zig.package
Section titled “languages.zig.package”Which package of Zig to use.
Type: package
Default:
pkgs.zigDeclared by:
languages.zig.lsp.enable
Section titled “languages.zig.lsp.enable”Whether to enable Zig Language Server.
Type: boolean
Default:
trueExample:
trueDeclared by:
languages.zig.lsp.package
Section titled “languages.zig.lsp.package”The Zig language server package to use.
Type: package
Default:
pkgs.zlsDeclared by:
languages.zig.version
Section titled “languages.zig.version”The Zig version to use.
This sets languages.zig.package using zig-overlay
and languages.zig.lsp.package using the matching ZLS release.
Type: null or string
Default:
nullExample:
"0.15.1"Declared by:

