Skip to content
forked from elkowar/rnix-lsp

WIP Language Server for Nix! [maintainer=@jD91mZM2]

License

Notifications You must be signed in to change notification settings

kaii-zen/rnix-lsp

 
 

Repository files navigation

rnix-lsp Crates.io

A syntax-checking language server using rnix.

  • Syntax-checking diagnostics
  • Basic completion
  • Basic renaming
  • Basic goto definition
  • Expand selection proposal
  • Formatting using nixpkgs-fmt

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.

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

Install

$ nix-env -i -f https://github.com/elkowar/rnix-lsp/archive/master.tar.gz

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

{
  "languageserver": {
    "nix": {
      "command": "rnix-lsp",
      "filetypes": [
        "nix"
      ]
    }
  }
}
let g:LanguageClient_serverCommands = {
    \ 'nix': ['rnix-lsp']
\ }
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

(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))
(add-to-list 'eglot-server-programs '(nix-mode . ("rnix-lsp")))

Kakoune

[language.nix]
filetypes = ["nix"]
command = "rnix-lsp"

VSCode

{
    "nix.enableLanguageServer": true
}

RIP jd91mzm2

Sadly, the original author of this project, @jD91mZM2 has passed away. His online presence was anonymous and what we have left is his code. This is but one of his many repos that he contributed to.

About

WIP Language Server for Nix! [maintainer=@jD91mZM2]

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 95.1%
  • Nix 4.5%
  • Vim Script 0.4%