π§ This project is under development, but be happy to try it out!
Super fast incremental analysis! Scans all-packages.nix
in less than 0.1s and completes with no delay!
See release notes for change log between tagged unstable versions.
See doc/features.md
for an incomplete list of notable features currently
implemented or planned.
This program is already included in NixOS/nixpkgs under attribute nil
,
and are regularly updated.
- If you use
nix-env
, runnix-env -iA nixpkgs.nil
- If you use
nix profile
, runnix profile install nixpkgs#nil
This repo is also packaged via Nix flakes, the language server binary package is
available through the default flake output github:oxalica/nil#
with the path bin/nil
.
You can enable flakes support in your nix configuration, and then
run nix profile install github:oxalica/nil
to get nil
installed.
You can also use this repository as a flake input and add its output to your own flake-managed
systemwide or home configuration.
Flake output structure:
ββββdevShells
β ββββ(...)
ββββpackages
ββββx86_64-linux
β ββββdefault: package 'nil-unstable-2022-08-04'
β ββββnil: package 'nil-unstable-2022-08-04'
ββββ(...)
Neovim native LSP and nvim-lspconfig
We are officially supported by nvim-lspconfig
, see upstream docs.
See also the example config for testing.
Vim/Neovim via coc.nvim
Merge this setting into your coc-settings.json
, which can be opened by :CocConfig
.
{
"languageserver": {
"nix": {
"command": "nil",
"filetypes": ["nix"],
"rootPatterns": ["flake.nix"]
}
}
}
See also the example config for testing.
Emacs eglot
Add the following elisp code to your configuration. (using use-package
)
(use-package nix-mode)
(use-package eglot
:config
;; Ensure `nil` is in your PATH.
(add-to-list 'eglot-server-programs '(nix-mode . ("nil")))
:hook
(nix-mode . eglot-ensure))
Modify the extension's settings in your settings.json
{
// ...
"nix.serverPath": "nil"
}
"nil" is primarily distributed under the terms of both the MIT license and the Apache License (Version 2.0).
See LICENSE-APACHE and LICENSE-MIT for details.