mcauley-penney/tidy.nvim

github github
formatting
stars 103
issues 2
subscribers 1
forks 12
CREATED

2021-10-26

UPDATED

3 months ago


tidy.nvim 🧹

tidy.nvim removes trailing white space and empty lines at EOF.

tidy-demo

Features

  • Remove white space at the end of every line on save or manual activation
  • Remove empty lines at the end of the buffer on save or manual activation

Requirements

  • Neovim >= 0.9.0

It may (should) work on lower versions, but is tested and updated using nightly.

Installation

Using lazy.nvim:

{
    "mcauley-penney/tidy.nvim",
    config = true,
}

Configuration

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
}

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
}

Usage

tidy.nvim comes with the following functions:

Lua Description
require("tidy").toggle() Turn tidy.nvim off for the current buffer a plugin
require("tidy").run() Run the formatting functionality of tidy.nvim off without saving

About and Credits

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.