A Neovim plugin that dynamically applies window and global highlights based on mode changes, operators, and window focus.
reactive.nvim is a Neovim plugin that dynamically changes highlight colors based on editor state, such as mode changes, operator usage, and window focus. It solves the problem of static, unresponsive interfaces by providing visual feedback that helps users understand their current context without monitoring keystrokes.
Neovim users who want enhanced visual feedback during editing, and plugin developers (especially theme creators) looking to add dynamic highlighting to their extensions.
Developers choose reactive.nvim for its performance (using Neovim events instead of input monitoring), deep customizability for any mode or operator, and extensibility that allows seamless integration with other plugins.
Reactivity. Right in your neovim.
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 Neovim built-in events like ModeChanged and WinEnter instead of input monitoring, ensuring efficient operation without lag, as highlighted in the README's emphasis on performance.
Supports configuration for any Neovim mode, including specific ones like niI, and allows custom operators from other plugins, enabling precise visual feedback tailored to user needs.
Leverages Neovim's winhighlight option to apply highlights per window, enhancing focus management in multi-window setups, as demonstrated in the demos for active and inactive windows.
Offers a straightforward API for plugin developers to add presets, making it easy for themes and tools to integrate dynamic highlights, fostering ecosystem growth.
The README explicitly states the plugin is in early stages with potential field changes, risking instability and breaking updates for users who rely on long-term consistency.
Setting up presets requires deep knowledge of Neovim highlight groups and Lua, with concepts like specificity, propagation, and custom operators adding a steep learning curve.
Custom operator support is labeled experimental in the README, meaning it's not fully reliable and may change, limiting its use in stable or critical workflows.