A customizable Lua plugin for modifying Neovim's UI components like the command-line, messages, and pop-up menu.
ui.nvim is a Lua plugin and template for customizing Neovim's built-in UI components, including the command-line, messages, and pop-up menus. It solves the frustration of working with Neovim's experimental UI APIs by providing a ready-to-use, configurable foundation that handles events and boilerplate automatically.
Neovim users and plugin developers who want to deeply customize the editor's interface beyond standard theming, especially those comfortable with Lua configuration.
It offers a structured, well-documented approach to UI customization that reduces manual effort, supports dynamic highlights for colorscheme compatibility, and includes practical utilities not easily available elsewhere.
A blueprint/template/guide to customize Neovim's UI using Lua.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides a full blueprint for managing Neovim's UI events, eliminating the need to write boilerplate code and handle errors manually, as highlighted in the README's goal to demystify experimental APIs.
Automatically generates highlight groups that work with most colorschemes, ensuring visual consistency without manual adjustment, as described in the utility functions for broad compatibility.
Offers detailed configuration for command-line, messages, and pop-up menus, including conditional styling, icons, and dynamic appearance based on state, allowing for highly personalized UI elements.
Includes unique helpers like converting virtual text to buffer text and managing statuscolumn content, which simplify advanced UI modifications not easily achievable elsewhere in the Neovim ecosystem.
Built on Neovim's still-evolving UI features, leading to known issues like incorrect pum menu positioning that can break other plugins such as mini.completion, as admitted in the README.
The setup function requires a large, nested configuration table with many options, which can be overwhelming for users not deeply familiar with Lua and Neovim's UI specifics, despite the wiki.
Due to its experimental nature, the plugin may encounter bugs or incompatibilities, such as redraw event issues in Neovim 0.11, affecting reliability in production environments.