Highlight cursor jumps with smooth animations that help you track cursor movement across your code.
- Smart cursor tracking - Highlights only significant cursor jumps (customizable thresholds)
- Smooth fade animations - Simple, non-intrusive visual feedback
- Highly configurable - Adjust colors, animation speed, trigger thresholds, and more
- Performance optimized - Minimal overhead with automatic cleanup
- File-type aware - Automatically disables in file trees, terminals, and popups
lazy.nvim (recommended)
{
'stonelasley/flare.nvim',
event = "CursorMoved",
opts = {
-- your configuration here (optional)
}
}packer.nvim
use {
'stonelasley/flare.nvim',
config = function()
require('flare').setup()
end
}vim-plug
Plug 'stonelasley/flare.nvim'
" In your init.lua or after plugins load:
lua require('flare').setup()dein
call dein#add('stonelasley/flare.nvim')
" In your init.lua or after plugins load:
lua require('flare').setup()No configuration needed! Just install and flare.nvim will start highlighting cursor jumps with sensible defaults.
-- Optional: customize to your liking
require('flare').setup({
-- See configuration section for all options
})require('flare').setup({
enabled = true, -- Enable/disable the plugin
hl_group = "IncSearch", -- Highlight group for the cursor indicator
hl_group_ul = "FlareUnderline", -- Highlight group for underline mode
x_threshold = 10, -- Minimum horizontal jump distance to trigger
y_threshold = 5, -- Minimum vertical jump distance to trigger
expanse = 10, -- Width of the highlight area
file_ignore = { -- File types where flare is disabled
"NvimTree",
"fugitive",
"TelescopePrompt",
"TelescopeResult",
},
fade = true, -- Enable fade animation (false = flash effect)
fade_speed = 1.0, -- Animation speed (higher = faster)
underline = false, -- Use underline instead of background highlight
timeout = 150, -- Delay before showing highlight (ms)
})Subtle underline style
require('flare').setup({
underline = true,
hl_group_ul = "CursorLine", -- Or any highlight group you prefer
})Flash effect (no fade)
require('flare').setup({
fade = false,
timeout = 100,
})Only highlight large jumps
require('flare').setup({
x_threshold = 20, -- Only highlight jumps > 20 columns
y_threshold = 10, -- Only highlight jumps > 10 lines
})Custom highlight colors
-- Define your custom highlight group
vim.api.nvim_set_hl(0, 'MyFlareHighlight', {
bg = '#ff9e64', -- Orange background
fg = '#1a1b26', -- Dark foreground
bold = true
})
require('flare').setup({
hl_group = "MyFlareHighlight",
})| Command | Description | Example |
|---|---|---|
:FlareToggle |
Toggle flare on/off | :FlareToggle |
:FlareSetThreshold x [value] |
Set horizontal jump threshold | :FlareSetThreshold x 15 |
:FlareSetThreshold y [value] |
Set vertical jump threshold | :FlareSetThreshold y 3 |
:FlareSetFadeSpeed [value] |
Set fade animation speed | :FlareSetFadeSpeed 2.0 |
- Code navigation - Never lose track of your cursor when jumping between functions
- Large file editing - Essential for navigating files with thousands of lines
- Split window workflow - Easily see which window has focus after switching
- Pair programming - Help others follow your cursor movement during screen sharing
Contributions are welcome! Feel free to:
- Report bugs or request features via issues
- Submit pull requests with improvements
- Share your custom configurations
MIT
Inspired by:
- beacon.nvim - Similar cursor tracking plugin
Made with ❤️ for the Neovim community
