From ddac6db152e5c86aa5af4ee0269e8e79333c1c54 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Sun, 24 Mar 2024 11:31:50 +0100 Subject: [PATCH] plugins/sleuth: init --- plugins/default.nix | 1 + plugins/utils/sleuth.nix | 40 +++++++++++++++++++++ tests/test-sources/plugins/utils/sleuth.nix | 17 +++++++++ 3 files changed, 58 insertions(+) create mode 100644 plugins/utils/sleuth.nix create mode 100644 tests/test-sources/plugins/utils/sleuth.nix diff --git a/plugins/default.nix b/plugins/default.nix index 6c685f0f..b954e310 100644 --- a/plugins/default.nix +++ b/plugins/default.nix @@ -174,6 +174,7 @@ ./utils/quickmath.nix ./utils/refactoring.nix ./utils/rest.nix + ./utils/sleuth.nix ./utils/smart-splits.nix ./utils/specs.nix ./utils/spider.nix diff --git a/plugins/utils/sleuth.nix b/plugins/utils/sleuth.nix new file mode 100644 index 00000000..48583c94 --- /dev/null +++ b/plugins/utils/sleuth.nix @@ -0,0 +1,40 @@ +{ + config, + lib, + helpers, + pkgs, + ... +}: +helpers.vim-plugin.mkVimPlugin config { + name = "sleuth"; + originalName = "vim-sleuth"; + defaultPackage = pkgs.vimPlugins.vim-sleuth; + globalPrefix = "sleuth_"; + + maintainers = [lib.maintainers.GaetanLepage]; + + settingsOptions = { + heuristics = helpers.defaultNullOpts.mkBool true '' + Whether to enable/disable heuristics by default. + + You can also disable heuristics for individual filetypes: + ```nix + settings = { + heuristics = true; + gitcommit_heuristics = false; + }; + ``` + ''; + + no_filetype_indent_on = helpers.defaultNullOpts.mkBool false '' + Sleuth forces `|:filetype-indent-on|` by default, which enables file-type specific indenting + algorithms and is highly recommended. + ''; + }; + + settingsExample = { + heuristics = true; + gitcommit_heuristics = false; + no_filetype_indent_on = true; + }; +} diff --git a/tests/test-sources/plugins/utils/sleuth.nix b/tests/test-sources/plugins/utils/sleuth.nix new file mode 100644 index 00000000..b261d34d --- /dev/null +++ b/tests/test-sources/plugins/utils/sleuth.nix @@ -0,0 +1,17 @@ +{ + empty = { + plugins.sleuth.enable = true; + }; + + example = { + plugins.sleuth = { + enable = true; + + settings = { + heuristics = true; + gitcommit_heuristics = false; + no_filetype_indent_on = true; + }; + }; + }; +}