A Neovim plugin that enhances completion menus with syntax highlighting and smart formatting for multiple language servers.
colorful-menu.nvim is a Neovim plugin that enhances the default completion menu by applying syntax highlighting and smart formatting to completion items. It reconstructs labels using treesitter queries to show more context and improve readability, supporting multiple language servers out of the box. The plugin solves the problem of bland, monochrome completion menus by making suggestions visually distinct and easier to scan.
Neovim users who rely on LSP-based completion and want a more visually appealing and informative menu, particularly developers working with languages like Rust, Go, TypeScript, and Python.
Developers choose colorful-menu.nvim because it provides rich, language-aware highlighting directly in the completion menu without requiring external tools. Its deep integration with treesitter and support for major language servers offers a significant upgrade over default completion formatting.
Bring enjoyment to your auto completion.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Built-in support for key language servers like rust-analyzer and gopls, with smart label reconstruction that adds context such as types, as shown in the screenshots where 'foo string' replaces 'foo' for Go fields.
Applies treesitter highlight queries to produce variable-size highlight ranges, making completion items more readable and visually distinct, as demonstrated in the before/after comparisons across languages.
Offers per-language configuration options for aligning types, adding colons, and customizing highlight groups, allowing fine-tuned control over menu appearance, such as setting align_type_to_right for gopls.
Designed to work seamlessly with nvim-cmp and blink.cmp, and can be combined with lspkind.nvim for enhanced menus without breaking existing setups, as detailed in the README examples.
The plugin's core functionality relies on treesitter parsers being available; if missing, it defaults to fallback highlighting, reducing its effectiveness for unsupported languages, as admitted in the setup where fallback mode is optional.
While it supports popular languages, developers working with less common LSPs will not benefit from advanced highlighting, as it falls back to generic item kind highlighting, limiting its utility in polyglot projects.
Setup requires manual Lua configuration and integration with completion engines, involving code snippets for nvim-cmp and blink.cmp, which can be daunting for users unfamiliar with Neovim's plugin ecosystem or Lua scripting.