Standalone UI for nvim-lsp progress. Eye candy for the impatient.
The goals of this plugin are:
The language server protocol (LSP) defines an endpoint for servers to report their progress while performing work. This endpoint is supported by Neovim's builtin LSP client, but only a handful of plugins (that I'm aware of) make use of this feature. Those that do typically report progress in the status line, where space is at a premium and the layout is not well-suited to display the progress of concurrent tasks coming from multiple LSP servers. This approach also made status line configuration more complicated.
I wanted be able to see the progress reported by LSP servers without involving the status line. Who doesn't love a little bit of eye candy?
Having a working nvim-lsp setup is not technically necessary to setup the plugin, but it won't do anything without a source of progress notifications.
For an up-to-date list of LSP servers this plugin is known to work with, see this pinned issue.
Install this plugin using your favorite plugin manager. For example, using vim-plug:
Plug 'j-hui/fidget.nvim'
Make sure the plugin installed (e.g., run :PlugInstall
if using vim-plug).
After the plugin is loaded (e.g., after plug#end()
for vim-plug), call its
setup
function (in Lua):
require"fidget".setup{}
See the documentation for configuration options.
This plugin takes inspiration and borrows code from arkav/lualine-lsp-progress.
Fidget spinner designs were adapted from the npm package sindresorhus/cli-spinners.
nvim-lua/lsp-status.nvim also supports showing progress text, though it requires some configuration to integrate that into their status line.
neoclide/coc.nvim provides a nice LSP progress UI in the status line, which first inspired my desire to have this feature for nvim-lsp.