A Neovim plugin that provides YAML breadcrumb navigation, showing the hierarchical path to your current position in YAML files.
- 🍞 Visual breadcrumb display - Shows the current YAML path as virtual text
- 📍 Auto-update on cursor movement - Breadcrumb updates as you navigate through the file
- 🔢 Array index tracking - Handles YAML arrays with proper indexing ([0], [1], etc.)
- 🎯 Line number integration - Optional display of line numbers in breadcrumb
- ⌨️ Customizable keymaps - Default keybindings with full customization support
- 🎨 Configurable appearance - Custom separators, highlight groups, and formatting
- 🔧 Statusline integration - Export breadcrumb to your statusline
- 🩺 Health check support - Built-in health check command
| enabled | boolean | true | Enable or disable the plugin |
| show_on_cursor_move | boolean | true | Automatically update breadcrumb when cursor moves |
| virtual_text | boolean | true | Display breadcrumb as virtual text at end of line |
| separator | string | " -> " | String used to separate breadcrumb components |
| show_line_numbers | boolean | false | Include line numbers in breadcrumb display |
| highlight_group | string | "Comment" | Neovim highlight group for virtual text styling |
The plugin provides the following commands:
- :YamlBreadcrumb - Show breadcrumb for current line in a notification
- :YamlBreadcrumbToggle - Toggle the plugin on/off
- :YamlBreadcrumbHealth - Run health check to verify plugin status
| <leader>yb | Normal | Show YAML breadcrumb |
| <leader>yt | Normal | Toggle YAML breadcrumb |
You can set up your own keymaps:
For this YAML file:
When your cursor is on the port: 5432 line, the breadcrumb would show:
For this YAML file:
When your cursor is on email: [email protected], the breadcrumb would show:
With show_line_numbers = true, the same breadcrumb would show:
You can integrate the breadcrumb into your statusline:
Create custom highlight groups for better visual integration:
Enable only for specific file patterns:
Run the health check to diagnose issues:
- Breadcrumb not showing: Ensure you're in a YAML file (.yaml or .yml extension)
- Virtual text not appearing: Check that virtual_text = true in your configuration
- Incorrect indentation detection: The plugin uses space-based indentation detection
Enable debug notifications to see what the plugin detects:
- Fork the repository
- Create a feature branch (git checkout -b feature/amazing-feature)
- Make your changes
- Add tests if applicable
- Commit your changes (git commit -m 'Add amazing feature')
- Push to the branch (git push origin feature/amazing-feature)
- Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by IDE breadcrumb navigation features
- Built for the Neovim community
- Thanks to all contributors and testers
Note: This plugin requires Neovim 0.7+ for virtual text support and modern Lua APIs.
.png)


