zioroboco / nu-ls.nvim

A null-ls source providing language server features for the nushell language in neovim
MIT License
15 stars 1 forks source link

Add docs: "why null-ls?" (see issue) #5

Open zioroboco opened 1 year ago

zioroboco commented 1 year ago

In lieu of actually writing this up in the readme, some quick thoughts:

There isn't currently a stand-alone nushell language server — the one in the vscode extension is more or less coupled to the implementation of that extension, and after poking around a bit, I concluded that there are probably better uses of time than trying to extract it (see also: https://github.com/nushell/vscode-nushell-lang/issues/117)

Maintaining a null-ls.nvim source in the meantime (i.e. this repo) means essentially maintaining another language server implementation (one which runs directly within the neovim process).

This is a small duplication of effort between neovim and vscode, but it seems like a fine way to bridge this gap for the moment. It's based on the same features of the nushell binary that the vscode extension is using, so most of the heavy lifting was already done. But this split focus obviously isn't ideal.

Since there's basically a reference implementation for the LSP methods in nushell/nushell already, I think writing a stand-alone language server in rust doesn't seem outrageously difficult, but I'll keep this repo going in the meantime.