From bc709de85366178bd8d6f54a1952ebbb42a5f280 Mon Sep 17 00:00:00 2001 From: Ben Mayer Date: Mon, 17 Mar 2025 13:05:47 +0100 Subject: [PATCH] utility/trim-nvim: init --- configuration.nix | 1 + docs/release-notes/rl-0.8.md | 1 + modules/plugins/utility/default.nix | 1 + modules/plugins/utility/trim-nvim/config.nix | 21 ++++++++++++++++ modules/plugins/utility/trim-nvim/default.nix | 6 +++++ .../plugins/utility/trim-nvim/trim-nvim.nix | 24 +++++++++++++++++++ npins/sources.json | 12 ++++++++++ 7 files changed, 66 insertions(+) create mode 100644 modules/plugins/utility/trim-nvim/config.nix create mode 100644 modules/plugins/utility/trim-nvim/default.nix create mode 100644 modules/plugins/utility/trim-nvim/trim-nvim.nix diff --git a/configuration.nix b/configuration.nix index a243c970..b6a9d4bb 100644 --- a/configuration.nix +++ b/configuration.nix @@ -179,6 +179,7 @@ isMaximal: { surround.enable = isMaximal; leetcode-nvim.enable = isMaximal; multicursors.enable = isMaximal; + trim-nvim.enable = true; motion = { hop.enable = true; diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index 353eeac1..e197d1bb 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -211,6 +211,7 @@ - Add formatters for go: [gofmt](https://go.dev/blog/gofmt), [golines](https://github.com/segmentio/golines) and [gofumpt](https://github.com/mvdan/gofumpt). +- Add [trim-nvim](https://github.com/cappyzawa/trim.nvim) for removing trailing spaces and lines [UltraGhostie](https://github.com/UltraGhostie) diff --git a/modules/plugins/utility/default.nix b/modules/plugins/utility/default.nix index cbe776cc..e6275990 100644 --- a/modules/plugins/utility/default.nix +++ b/modules/plugins/utility/default.nix @@ -20,6 +20,7 @@ ./snacks-nvim ./surround ./telescope + ./trim-nvim ./wakatime ./yanky-nvim ./yazi-nvim diff --git a/modules/plugins/utility/trim-nvim/config.nix b/modules/plugins/utility/trim-nvim/config.nix new file mode 100644 index 00000000..557ec105 --- /dev/null +++ b/modules/plugins/utility/trim-nvim/config.nix @@ -0,0 +1,21 @@ +{ + config, + lib, + ... +}: let + inherit (lib.modules) mkIf; + inherit (lib.nvim.lua) toLuaObject; + inherit (lib.nvim.dag) entryAnywhere; + + cfg = config.vim.utility.trim-nvim; +in { + config = mkIf cfg.enable { + vim = { + startPlugins = ["trim-nvim"]; + + pluginRC.trim-nvim = entryAnywhere '' + require('trim').setup(${toLuaObject cfg.setupOpts}); + ''; + }; + }; +} diff --git a/modules/plugins/utility/trim-nvim/default.nix b/modules/plugins/utility/trim-nvim/default.nix new file mode 100644 index 00000000..a82c1348 --- /dev/null +++ b/modules/plugins/utility/trim-nvim/default.nix @@ -0,0 +1,6 @@ +{ + imports = [ + ./config.nix + ./trim-nvim.nix + ]; +} diff --git a/modules/plugins/utility/trim-nvim/trim-nvim.nix b/modules/plugins/utility/trim-nvim/trim-nvim.nix new file mode 100644 index 00000000..885a0690 --- /dev/null +++ b/modules/plugins/utility/trim-nvim/trim-nvim.nix @@ -0,0 +1,24 @@ +{lib, ...}: let + inherit (lib.options) mkOption mkEnableOption; + inherit (lib.types) listOf str bool; + inherit (lib.nvim.types) mkPluginSetupOption; +in { + options.vim.utility.trim-nvim = { + enable = mkEnableOption '' + automatic removal of trailing whitespaces and lines [trim-nvim] + ''; + + setupOpts = mkPluginSetupOption "trim-nvim" { + ft_blocklist = mkOption { + type = listOf str; + default = ["markdown"]; + description = "List of filetypes to not trim"; + }; + highlight = mkOption { + type = bool; + default = false; + description = "Enable highlighting trailing spaces"; + }; + }; + }; +} diff --git a/npins/sources.json b/npins/sources.json index 3e903dc3..5e321732 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -2087,6 +2087,18 @@ "url": "https://github.com/folke/tokyonight.nvim/archive/057ef5d260c1931f1dffd0f052c685dcd14100a3.tar.gz", "hash": "002rzmdxq45bdyd27i8k8lhdcwxn9l4v6x5cm6g7v1213m0n25np" }, + "trim-nvim": { + "type": "Git", + "repository": { + "type": "GitHub", + "owner": "cappyzawa", + "repo": "trim.nvim" + }, + "branch": "master", + "revision": "d0760a840ca2fe4958353dee567a90c2994e70a7", + "url": "https://github.com/cappyzawa/trim.nvim/archive/d0760a840ca2fe4958353dee567a90c2994e70a7.tar.gz", + "hash": "0xy21z4yxpdi1g9yl744582fkmz8q1pap9czknzp8w4ws5mhi709" + }, "trouble": { "type": "Git", "repository": {