An animated on-save sweep for Neovim that expands a smooth circle from the cursor.
Example spec format for vim.pack:
{
src = "https://github.com/you/ripple-on-save.nvim",
name = "ripple-on-save",
}require("ripple-on-save").setup({
steps_ms = 10,
highlight = "Visual",
only_modified = true,
include_special_buffers = false,
ignore_filetypes = { help = true, qf = true },
enabled = true,
})steps_ms: delay between radius steps.highlight: highlight group used for the sweep.only_modified: only flash if the buffer was modified before saving.include_special_buffers: include non-file buffers (buftypenot empty).ignore_filetypes: table of filetypes to skip.enabled: master switch for the sweep.
require("ripple-on-save").flash(opts)to trigger manually.require("ripple-on-save").toggle()to enable/disable at runtime.require("ripple-on-save").enable()/disable()helpers.
vim.keymap.set("n", "<leader>ur", function()
require("ripple-on-save").toggle()
end, { desc = "Toggle ripple on save" })vim.api.nvim_create_user_command("RippleToggle", function()
local enabled = require("ripple-on-save").toggle()
vim.notify("Ripple on save: " .. (enabled and "on" or "off"))
end, { desc = "Toggle ripple on save" })