You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
navigator.lua/README.md

2.4 KiB

Navigator

GUI for neovim lsp with a collection of most used LSP/treesitter functions. Easy code navigation. Based on LSP.

Features:

  • LSP easy setup. Support some of the most commonly used lsp client setup
  • GUI
  • fzy search
  • Better navigation for diagnostic errors, Navigate through files that contain errors/warnings
  • Group references/implementation/incomming/outgoing based on file names.

Why a new plugin

After installed a handful of lsp plugins, I still got ~500 loc for lsp and still increasing. Reason is that I need to tune the plugins to fit my requirements.

Similar projects / special mentions:

Install

You can remove your lspconfig setup and use this plugin. The plugin depends on guihua.lua, which provides gui and fzy support.

Plug 'ray-x/guihua.lua', {'do': 'cd lua/fzy && make' }
Plug 'ray-x/navigator.lua'

Packer


use {'ray-x/navigator.lua', requires = {'ray-x/guihua.lua', run = 'cd lua/fzy && make'}}

Setup

lua require'navigator'.setup()

Screenshots

Reference

reference

Diagnostic

diagnostic

Implementation

implementation

Fzy search in reference

fzy_reference

Code actions

code actions

Code preview with highlight

code preview

Call hierarchy (incomming/outgoing)

incomming

Todo

  • Early phase, bugs expected
  • Async (some of the requests is slow on large codebase and might be good to use co-rountine)
  • More clients. I use go, python, js/ts, java, c/cpp, lua most of the time. Do not test other languages (e.g rust, swift etc)