A Neovim plugin that integrates fzf fuzzy search with the built-in LSP for navigating symbols, definitions, and diagnostics.
fzf-lsp.nvim is a Neovim plugin that integrates the fuzzy-finding capabilities of fzf with Neovim's built-in Language Server Protocol (LSP) client. It provides an intuitive interface for searching and navigating through code symbols, definitions, references, diagnostics, and more directly within Neovim, enhancing code exploration and productivity.
Neovim users (version 0.5+) who utilize the built-in LSP client and want to improve their code navigation and discovery workflows with fuzzy search. It is particularly suited for developers who are already familiar with fzf and seek a more efficient way to interact with LSP-provided data.
Developers choose fzf-lsp.nvim because it combines the speed and flexibility of fzf's fuzzy search with the rich code intelligence of Neovim's LSP, offering a seamless and customizable navigation experience. Its support for both synchronous commands and asynchronous LSP handlers provides flexibility for different workflow preferences.
Enable the power of fzf fuzzy search for the neovim built in lsp
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Integrates fzf for fast, intuitive fuzzy searching across all LSP-provided data like symbols and references, as demonstrated in the example GIF and features list.
Supports a wide array of LSP commands including definitions, diagnostics, code actions, and call hierarchies, covering most code exploration needs directly from Neovim.
Offers extensive configuration options for fzf layout, colors, and previews, with settings that can inherit from fzf.vim or be overridden with plugin-specific equivalents.
Provides both synchronous command wrappers and asynchronous LSP handlers, allowing users to choose between immediate feedback or non-blocking calls, as detailed in the handlers section.
Requires manual installation of fzf and bat for full functionality, adding setup steps beyond the plugin itself and potentially complicating cross-system compatibility.
As noted in the README, some LSP methods like textDocument/declaration are often not implemented by language servers, making commands like :Declarations unreliable across different languages.
Settings like g:fzf_lsp_pretty must use specific vimscript values (v:true or v:false) instead of standard booleans, which can be confusing and error-prone for users.