tidy.nvim removes trailing white space and empty lines at EOF on save.
- Neovim >= 0.9.0
It may work on lower versions, but is tested and updated using nightly.
Most basic configuration using lazy.nvim:
{
"mcauley-penney/tidy.nvim",
config = true,
}
A more full example configuration for lazy.nvim would be:
{
"mcauley-penney/tidy.nvim",
opts = {
enabled_on_save = false
filetype_exclude = { "markdown", "diff" }
},
init = function()
vim.keymap.set('n', "<leader>tt", require("tidy").toggle, {})
vim.keymap.set('n', "<leader>tr", require("tidy").run, {})
end
}
tidy.nvim comes with the following options and their default settings:
{
enabled_on_save = true
filetype_exclude = {} -- Tidy will not be enabled for any filetype, e.g. "markdown", in this table
}
tidy.nvim also comes with the following functions, which may be mapped:
Lua | Description |
---|---|
require("tidy").toggle() |
Turn tidy.nvim off for the current buffer |
require("tidy").run() |
Run the formatting functionality of tidy.nvim off without saving |
init = function()
vim.keymap.set('n', "<leader>tt", require("tidy").toggle, {})
vim.keymap.set('n', "<leader>tr", require("tidy").run, {})
end
I originally wrote this as a wrapper around a couple of vim regex commands used for formatting files before I began using formatters. These commands are not mine, please see the sources below. Even with real formatters in my setup now, I still like and use this because I like these specific formats to be applied to every buffer and don't want to have a formatting tool installed for them.
-
ib.
, the author of this Stack Overflow answer -
This line in gpanders/editorconfig.nvim for exposing me to the
keepjumps
andkeeppatterns
modifiers