A Neovim sidebar plugin that visualizes and navigates code symbols in a tree hierarchy, powered by LSP and other providers.
outline.nvim is a Neovim plugin that displays a sidebar with a hierarchical tree of code symbols, such as functions, classes, and variables, extracted from LSP or other providers. It helps developers visualize code structure and navigate large codebases efficiently by providing a collapsible outline that updates in real-time as the cursor moves.
Neovim users, particularly developers working with large or complex codebases who need better code navigation and structure visualization. It's ideal for those using LSP-supported languages, Markdown, Norg, or other providers.
Developers choose outline.nvim for its extensive customization, multi-provider support, and smooth integration with Neovim's ecosystem. Its fork from symbols-outline.nvim brings numerous fixes and improvements, offering a more stable and feature-rich alternative with better performance and configurability.
Fancy code outline sidebar to visualize and navigate code symbols in a tree hierarchy
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports LSP, Markdown, Norg, and external providers like treesitter and ctags, allowing it to work with a wide range of file types beyond just LSP-supported languages.
Automatically updates the outline and highlights the current symbol as the cursor moves, making navigation seamless and reducing manual effort.
Offers per-filetype symbol filtering, custom icon functions, and adjustable window settings, enabling users to tailor the interface precisely to their workflow.
As a fork of symbols-outline.nvim, it incorporates numerous fixes and enhancements, such as better performance and added features like per-tabpage outlines.
The preview window can be slow when loading large buffers because it reads the entire file for syntax highlighting, impacting responsiveness in large codebases.
Does not support multiple outline windows in the same tabpage, which can be restrictive for users who want to compare outlines from different buffers side-by-side.
For full treesitter support beyond JSX and Norg, users must install separate external plugins, adding complexity to setup and maintenance.