LhKipp/nvim-nu

github github
syntax
stars 120
issues 4
subscribers 3
forks 9
CREATED

2021-05-03

UPDATED

last year


nvim-nu - Basic editor support for the nushell language

nu example


Info: This plugin was made for nu version ~0.45. As nushell evolves quickly, the plugin might not work perfectly for later versions. PR's are welcome


Table of contents


Requirements

  • Neovim version >= 0.5
  • A nu binary in your path
  • nvim-treesitter installed
  • Optionally null-ls.nvim to enable lsp features like hover (aka help) or command completion

Installation

You can install nvim-nu with your favorite package manager (or using the native package feature of vim, see :h packages).

E.g., if you are using vim-plug, put this in your init.vim file:

Plug 'LhKipp/nvim-nu', {'do': ':TSInstall nu'}

Don't forget to call setup :smirk:

require'nu'.setup{}

LSP Features

null-ls.nvim needs to be installed to have lsp features available. Currently only command name completion and hover (aka help) are supported.

Make sure to have a mapping set up for hover in nushell files! E.G. in your ftplugin/nu.lua

vim.keymap.set('n', 'K', vim.lsp.buf.hover, { buffer = true })

Configuration

(Default values are shown)

require'nu'.setup{
    use_lsp_features = true, -- requires https://github.com/jose-elias-alvarez/null-ls.nvim
    -- lsp_feature: all_cmd_names is the source for the cmd name completion.
    -- It can be
    --  * a string, which is interpreted as a shell command and the returned list is the source for completions (requires plenary.nvim)
    --  * a list, which is the direct source for completions (e.G. all_cmd_names = {"echo", "to csv", ...})
    --  * a function, returning a list of strings and the return value is used as the source for completions
    all_cmd_names = [[nu -c 'help commands | get name | str join "\n"']]
}

Known issues (PR's welcome)

  • Calling vim.lsp.buf.hover on a subcommand does not show the help for the subcommand