LazyVim/Q/What are Telescope, fzf-lua, and aerial.nvim for symbol search, and how do they compare with Trouble.nvim?
What are nvim/Plugin/telescope.nvim, nvim/Plugin/fzf-lua, and nvim/Plugin/aerial.nvim for symbol search, and how do they compare with nvim/Plugin/trouble.nvim?
- Short answer: nvim/Plugin/telescope.nvim and nvim/Plugin/fzf-lua are fuzzy-find pickers — type, filter, hit enter, the window closes. nvim/Plugin/aerial.nvim is a persistent outline sidebar that stays open while editing. nvim/Plugin/trouble.nvim is a persistent list/tree panel (closer to an IDE "Problems"/"Outline" panel) that can show symbols, diagnostics, references, and quickfix/loclist entries in one UI. All four drive "symbol search" through the same LSP
textDocument/documentSymbol and workspace/symbol requests; they differ in UI paradigm, not in the underlying data source. - nvim/Plugin/telescope.nvim (Answer/Official from nvim-telescope/telescope.nvim): a general-purpose fuzzy finder framework. Its LSP extension exposes
lsp_document_symbols (current buffer) and lsp_dynamic_workspace_symbols / lsp_workspace_symbols (project-wide). Selecting a result jumps to it and the floating picker closes. - nvim/Plugin/fzf-lua (Answer/Official from ibhagwan/fzf-lua): the same picker concept as telescope.nvim but wraps the actual
fzf binary for matching/rendering, so it's typically faster on very large result sets. It ships equivalent lsp_document_symbols and lsp_live_workspace_symbols pickers — functionally interchangeable with telescope.nvim for this use case. - nvim/Plugin/aerial.nvim (Answer/Official from stevearc/aerial.nvim): not a fuzzy finder. It renders a live, nested tree of the current buffer's symbols (functions, classes, etc.) in a sidebar that tracks the cursor and stays open — closer to a code outline/minimap than a search box. It ships its own optional fuzzy picker for jump-to-symbol, but its primary role is the always-visible outline.
- nvim/Plugin/trouble.nvim (Answer/Official from folke/trouble.nvim): a unified list/tree panel for LSP-sourced data — diagnostics, document/workspace symbols, references, definitions, and the quickfix/location list — with folding, filtering, and persistent context while moving between items. Its "symbols" mode is the closest analogue to aerial's outline, but rendered as a togglable panel rather than an always-visible sidebar, and shared with diagnostics/references rather than outline-only.
- In this garden's actual LazyVim config: none of the telescope.nvim, fzf-lua, or aerial.nvim extras are enabled (see the
My Note on LazyVim/Keyshort/Search and LazyVim/Keyshort/Code Action). General fuzzy pickers (files, grep, etc.) run on nvim/Plugin/snacks.nvim instead, and document symbol search is bound to <leader>cs (Document Symbols), which opens nvim/Plugin/trouble.nvim rather than a picker or an aerial sidebar — so cheat sheets written against the telescope.nvim/fzf-lua/aerial.nvim extras (e.g. describing a <leader>ss symbol picker) don't match the keys actually bound here.