From e6fbcd2d253f249b41d30f67b08ab9704c5199e4 Mon Sep 17 00:00:00 2001 From: McAuley Penney Date: Sat, 17 Jun 2023 08:43:00 -0700 Subject: [PATCH] ci: add vimdoc workflow Tidy doesn't have any vim documentation. This commit adds a workflow that automatically creates a vimdoc from our readme, then commits it back to the repo. --- .github/workflows/ci.yml | 27 ++++++++++++++++++++++++++ README.md | 41 ++++++++++++++++++++++++++++++++++------ doc/tidy.nvim.txt | 0 3 files changed, 62 insertions(+), 6 deletions(-) create mode 100644 .github/workflows/ci.yml create mode 100644 doc/tidy.nvim.txt diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..827c09d --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,27 @@ +name: CI +on: + push: + paths: + - "README.md" + pull_request: + paths: + - "README.md" + +jobs: + docs: + runs-on: ubuntu-latest + if: ${{ github.ref == 'refs/heads/main' }} + name: pandoc markdown to vimdoc + steps: + - uses: actions/checkout@v3 + - name: panvimdoc + uses: kdheepak/panvimdoc@main + with: + vimdoc: tidy.nvim + version: "Neovim >= 0.9.0" + demojify: true + treesitter: true + - name: Push changes + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: "chore(build): auto-generate vimdoc" diff --git a/README.md b/README.md index 64cf57b..4abc94a 100644 --- a/README.md +++ b/README.md @@ -1,35 +1,64 @@ # tidy.nvim 🧹 -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`. +**tidy.nvim** removes trailing white space and empty lines on BufWritePre. ![tidy-demo](https://github.com/mcauley-penney/tidy.nvim/assets/59481467/f3807c69-2b36-4a14-b83a-dd0f2829e096) +## Features +- Remove white space at the end of every line on save +- Remove empty lines at the end of the buffer on save + + +## Requirements +- Neovim >= 0.9.0 + +It may (should) work on lower versions, but is tested and updated using nightly. + ## Installation -- [lazy.nvim](https://github.com/folke/lazy.nvim) +Your installation configuration will depend on your plugin manager. Below is the basic installation (using default options) for lazy.nvim. ```lua { "mcauley-penney/tidy.nvim", config = true, -} +} ``` ## Configuration -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 +tidy.nvim comes with the following options and their default settings: + +```lua + { + 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: ```lua { "mcauley-penney/tidy.nvim", - config = { filetype_exclude = { "markdown", "diff" } }, + config = { + filetype_exclude = { "markdown", "diff" } + }, init = function() vim.keymap.set('n', "te", require("tidy").toggle, {}) end -} +} ``` +## Usage +tidy.nvim comes with the following functions: + +| Lua | Description | +| -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | +| `require("tidy").toggle()` | Turn tidy.nvim off for the current buffer a plugin | + + ## 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. diff --git a/doc/tidy.nvim.txt b/doc/tidy.nvim.txt new file mode 100644 index 0000000..e69de29