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.
 
 
 
 
 
 
Go to file
ray-x de9b5f88c2 update plugins 3 years ago
lua init commit 3 years ago
plugin init commit 3 years ago
LICENSE Initial commit 3 years ago
README.md update plugins 3 years ago

README.md

Navigator

GUI for Neovim (nightly) built-in LSP with a collection of most used LSP/treesitter functions. Easy code navigation.

Features:

  • LSP easy setup. Support some of the most commonly used lsp client setup
  • GUI with floating windows
  • 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()

Usage

Please refer to lua/navigator/lspclient/mapping.lua on key mappings. Should be able to work out-of-box Use or :q! to kill the floating window, <up/down> to move and to open location or apply changes

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)