From ae4f9b5e823335a8b60383d42bf43c23a6c1898f Mon Sep 17 00:00:00 2001 From: McAuley Penney Date: Mon, 5 Jun 2023 16:26:00 -0700 Subject: [PATCH 1/2] refactor: make toggle functionality more concise vim.b.tidy_enabled appears to be redundant because of M.enabled. This commit removes it. --- lua/tidy/init.lua | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/lua/tidy/init.lua b/lua/tidy/init.lua index 234db6c..f2e8eef 100644 --- a/lua/tidy/init.lua +++ b/lua/tidy/init.lua @@ -3,16 +3,12 @@ local M = {} M.enabled = true function M.toggle() - if vim.b.tidy_enabled == false then - vim.b.tidy_enabled = nil - M.enabled = true + M.enabled = not M.enabled + + if not M.enabled then + vim.notify("Tidy disabled on save", vim.log.levels.WARN, { title = "Tidy" }) else - M.enabled = not M.enabled - end - if M.enabled then vim.notify("Tidy enabled on save", vim.log.levels.INFO, { title = "Tidy" }) - else - vim.notify("Tidy disabled on save", vim.log.levels.WARN, { title = "Tidy" }) end end @@ -61,10 +57,10 @@ function M.setup(opts) local tidy_grp = vim.api.nvim_create_augroup("tidy", { clear = true }) - vim.api.nvim_create_autocmd("BufWritePre", { + vim.api.nvim_create_autocmd("BufWritePre", { group = tidy_grp, callback = function() - if not M.enabled or vim.b.tidy_enabled == false or is_excluded_ft(opts) then + if not M.enabled or is_excluded_ft(opts) then return false end From 533e35418d1340e4e8478aa3ae90dd20617a4fda Mon Sep 17 00:00:00 2001 From: jmp <59481467+mcauley-penney@users.noreply.github.com> Date: Mon, 5 Jun 2023 17:52:24 -0700 Subject: [PATCH 2/2] Update README.md - add updated GIF - change configuration examples to `lazy.nvim` - condense `About` and `Credits`, as well as intro section --- README.md | 41 ++++++++++++++++++----------------------- 1 file changed, 18 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index f1e002e..64cf57b 100644 --- a/README.md +++ b/README.md @@ -1,43 +1,38 @@ # tidy.nvim 🧹 -An [autocommand](https://neovim.io/doc/user/autocmd.html) that removes all +An [autocommand](https://neovim.io/doc/user/autocmd.html) that removes all trailing white spaces and empty lines at the end of the buffer on every `BufWritePre`. - - trailing whitespace - - empty lines at the end of the buffer - -on every `BufWritePre`. - - -![tidy](https://user-images.githubusercontent.com/59481467/170846833-40ab4e8c-ebdf-42c4-b1f1-a4d874f27ea8.gif) - - -## About -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 `Credits` section below for sources. 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. +![tidy-demo](https://github.com/mcauley-penney/tidy.nvim/assets/59481467/f3807c69-2b36-4a14-b83a-dd0f2829e096) ## Installation -- [packer.nvim](https://github.com/wbthomason/packer.nvim) +- [lazy.nvim](https://github.com/folke/lazy.nvim) ```lua -use({ +{ "mcauley-penney/tidy.nvim", - config = function() - require("tidy").setup() - end -}) + config = true, +} ``` + ## Configuration -Tidy will work on all buffers using only the basic installation shown above. No configuration options are required. The options displayed below are simply examples. +Tidy will work on all buffers using only the basic installation shown above. No configuration options are required, but please see the documentation for configuration options. An example configuration for lazy.nvim is ```lua -require("tidy").setup({ - filetype_exclude = { "markdown", "diff" }, -}) +{ + "mcauley-penney/tidy.nvim", + config = { filetype_exclude = { "markdown", "diff" } }, + init = function() + vim.keymap.set('n', "te", require("tidy").toggle, {}) + end +} ``` -## Credits +## 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. + - [Vim Tips Wiki entry for removing unwanted spaces](https://vim.fandom.com/wiki/Remove_unwanted_spaces#Automatically_removing_all_trailing_whitespace) - `ib.`, the author of [this Stack Overflow answer](https://stackoverflow.com/a/7501902)