forked from Archives/navigator.lua
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.
de9b5f88c2 | 3 years ago | |
---|---|---|
lua | 3 years ago | |
plugin | 3 years ago | |
LICENSE | 3 years ago | |
README.md | 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
Diagnostic
Implementation
Fzy search in reference
Code actions
Code preview with highlight
Call hierarchy (incomming/outgoing)
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)