What is this repo?
Highlight-undo.nvim
before its rewrite. The classic way is less likely to cause conflicts with other plugins, and it's config is considerably less boilerplate. So let's maintain it here.
Highlight changed text after Undo / Redo operations. Purely lua / nvim api implementation, no external dependencies needed.
Using Lazy:
{
'tzachar/highlight-undo.nvim',
opts = {
...
},
},
You can manually setup highlight-undo
as follows:
require('highlight-undo').setup({
duration = 300,
undo = {
hlgroup = 'HighlightUndo',
mode = 'n',
lhs = 'u',
map = 'undo',
opts = {}
},
redo = {
hlgroup = 'HighlightRedo',
mode = 'n',
lhs = '<C-r>',
map = 'redo',
opts = {}
},
highlight_for_count = true,
})
Specify which keymaps should trigger the beginning and end of tracking changes
(see here). By default, the plugin starts tracking
changes before an undo
or a redo
.
Keymaps are specified in the same format as vim.keymap.set
accepts: mode, lhs,
rhs, opts. Maps are passed verbatim to vim.keymap.set
.
Specify the highlighting group to use.
By default, highlight-undo
will use HighlightUndo
for the undo action and
HighlightRedo
for the redo action. Both of these groups, are defined when the
plugin is loaded. If the groups are already defined elsewhere in your config
then they will not be overwritten. You can also use others groups, if desired.
The duration (in milliseconds) to highlight changes. Default is 300.
Enable support for highlighting when a <count>
is provided before the key.
If set to false
it will only highlight when the mapping is not prefixed with a
<count>
.
Default: true
highlight-undo
will remap the u
and <C-r>
keys (for undo and redo, by default) and
hijack the calls. By utilizing nvim_buf_attach
to get indications for changes in the
buffer, the plugin can achieve very low overhead.