mirror of
https://github.com/oxalica/nil.git
synced 2024-11-23 12:03:30 +03:00
Yet another language server for Nix
lsp | ||
src | ||
syntax | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
flake.lock | ||
flake.nix | ||
LICENSE-APACHE | ||
LICENSE-MIT | ||
neovim-env.nix | ||
README.md | ||
rustfmt.toml |
nil: Language server for Nix Expression Language
🚧 This project is under development, but be happy to try it out!
Super fast incremental analysis! Scans all-packages.nix
in less then 0.1s and completes with no delay!
Features
- Goto definition.
textDocument/definition
- Find references.
textDocument/reference
- Local binding references.
- With expression references.
- Completion.
textDocument/completion
- Builtin names.
- Local bindings.
- Attrset fields.
- Cross-file analysis.
- Multi-threaded.
Installation
TODO: Beginner friendly instructions.
This repo is packaged via Nix flakes, the language server binary package is
available through the default flake output github:oxalica/nil#
with the path bin/nil
.
Flake output structure:
├───devShells
│ └───(...)
└───packages
├───x86_64-linux
│ ├───default: package 'nil-unstable-2022-08-04'
│ └───nil: package 'nil-unstable-2022-08-04'
└───(...)
For neovim nvim-lspconfig
user
Add the following vimscript to your configuration.
lua <<EOF
require('lspconfig').rnix.setup {
autostart = true,
-- Change it to the path to the `nil` binary you installed.
cmd = { "/run/current-system/sw/bin/nil" },
}
EOF
License
"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.