A Neovim plugin that displays your current code context in the statusline or winbar using LSP.
nvim-navic is a lightweight Neovim plugin that integrates with the Language Server Protocol (LSP) to display a breadcrumb trail of the current code location. It shows symbols like classes, methods, and variables directly in the statusline or winbar, helping developers understand their position within complex codebases. It provides IDE-like navigation context by leveraging Neovim's built-in LSP capabilities.
Neovim users who work with LSP-enabled languages and want enhanced code navigation context, particularly those using statusline plugins like lualine, feline, or galaxyline, or Neovim's native statusline/winbar.
Developers choose nvim-navic for its accurate, LSP-powered symbol detection, high customizability, and seamless integration with popular Neovim statusline plugins. Its focus on being a simple, unobtrusive component with performance optimizations for large files distinguishes it from more complex alternatives.
Simple winbar/statusline plugin that shows your current code context
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses LSP's documentSymbolProvider to detect symbols like classes and methods precisely, ensuring context matches the language server's understanding.
Supports custom icons, separators, highlighting, depth limits, and text formatting, with examples for Nerd Fonts and VSCode-like icons provided in the README.
Offers functions for easy integration with popular plugins like lualine, feline, and galaxyline, or Neovim's native statusline/winbar.
Includes lazy update options and buffer-specific tuning to handle large files efficiently, as noted in the setup for performance issues.
Exposes a get_data function for advanced users to process and customize raw context data, enabling creative use cases beyond basic display.
Requires explicit setup to attach to LSP servers, which can be complex and error-prone, with the README warning about attaching to non-supporting servers or multiple servers.
Only works with LSP-capable languages and servers; if documentSymbolProvider is unavailable or unreliable, breadcrumbs won't display.
Default updates on every CursorMoved event can impact performance in large files, necessitating configuration like lazy_update_context, which adds complexity.
Lacks an out-of-the-box UI; users must integrate with external statusline plugins or manually configure Neovim's native elements.