From 63558cff590cd9fee6054c54b6adf816a004fa6e Mon Sep 17 00:00:00 2001 From: Alison Jenkins <1176328+alisonjenkins@users.noreply.github.com> Date: Tue, 27 Feb 2024 12:47:25 +0000 Subject: [PATCH] plugins/indent-o-matic: init (#1144) --- plugins/default.nix | 1 + plugins/utils/indent-o-matic.nix | 25 +++++++++++++++++++ .../plugins/utils/indent-o-matic.nix | 17 +++++++++++++ 3 files changed, 43 insertions(+) create mode 100644 plugins/utils/indent-o-matic.nix create mode 100644 tests/test-sources/plugins/utils/indent-o-matic.nix diff --git a/plugins/default.nix b/plugins/default.nix index f6452539..ee9a4c1e 100644 --- a/plugins/default.nix +++ b/plugins/default.nix @@ -131,6 +131,7 @@ ./utils/harpoon.nix ./utils/illuminate.nix ./utils/indent-blankline.nix + ./utils/indent-o-matic.nix ./utils/instant.nix ./utils/intellitab.nix ./utils/lastplace.nix diff --git a/plugins/utils/indent-o-matic.nix b/plugins/utils/indent-o-matic.nix new file mode 100644 index 00000000..e5b2b220 --- /dev/null +++ b/plugins/utils/indent-o-matic.nix @@ -0,0 +1,25 @@ +{ + lib, + helpers, + pkgs, + config, + ... +}: +with lib; + helpers.neovim-plugin.mkNeovimPlugin config + { + name = "indent-o-matic"; + defaultPackage = pkgs.vimPlugins.indent-o-matic; + maintainers = [helpers.maintainers.alisonjenkins]; + settingsOptions = { + max_lines = helpers.defaultNullOpts.mkInt 2048 "Number of lines without indentation before giving up (use -1 for infinite)"; + skip_multiline = helpers.defaultNullOpts.mkBool false "Skip multi-line comments and strings (more accurate detection but less performant)"; + standard_widths = helpers.defaultNullOpts.mkListOf types.ints.unsigned ''[2 4 8]'' "Space indentations that should be detected"; + }; + + settingsExample = { + max_lines = 2048; + skip_multiline = false; + standard_widths = [2 4 8]; + }; + } diff --git a/tests/test-sources/plugins/utils/indent-o-matic.nix b/tests/test-sources/plugins/utils/indent-o-matic.nix new file mode 100644 index 00000000..fdb43da4 --- /dev/null +++ b/tests/test-sources/plugins/utils/indent-o-matic.nix @@ -0,0 +1,17 @@ +{ + empty = { + plugins.indent-o-matic.enable = true; + }; + + example = { + plugins.indent-o-matic = { + enable = true; + + settings = { + max_lines = 2048; + skip_multiline = false; + standard_widths = [2 4 8]; + }; + }; + }; +}