rnix-lsp Crates.io

A syntax-checking language server using rnix.

This is beta-level quality at best - I didn't expect maintaining a language server when writing rnix, the goal was that others would flock around the parser and write a bunch of editor tooling :)

Breakages are expected. No semver compatibility before 1.x.y.

Turn on logging with RUST_LOG=trace, and redirect stderr to a file.

sh bash -c "env RUST_LOG=trace rnix-lsp 2> /tmp/rnix-lsp.log"

Integrate with your editor

These instructions are not fully tested - see issue #3. Please raise an issue and/or send a PR if a config below didn't work out of the box.

Vim/Neovim

LanguageClient-neovim

vim let g:LanguageClient_serverCommands = { \ 'nix': ['rnix-lsp'] \ }

vim-lsp

vim if executable('rnix-lsp') au User lsp_setup call lsp#register_server({ \ 'name': 'rnix-lsp', \ 'cmd': {server_info->[&shell, &shellcmdflag, 'rnix-lsp']}, \ 'whitelist': ['nix'], \ }) endif

Emacs

lsp-mode

elisp (add-to-list 'lsp-language-id-configuration '(nix-mode . "nix")) (lsp-register-client (make-lsp-client :new-connection (lsp-stdio-connection '("rnix-lsp")) :major-modes '(nix-mode) :server-id 'nix))