diff --git a/plugins/default.nix b/plugins/default.nix index 92187cc4..ca2bee08 100644 --- a/plugins/default.nix +++ b/plugins/default.nix @@ -174,6 +174,7 @@ ./utils/quickmath.nix ./utils/refactoring.nix ./utils/rest.nix + ./utils/sandwich.nix ./utils/sleuth.nix ./utils/smart-splits.nix ./utils/specs.nix diff --git a/plugins/utils/sandwich.nix b/plugins/utils/sandwich.nix new file mode 100644 index 00000000..23bbb052 --- /dev/null +++ b/plugins/utils/sandwich.nix @@ -0,0 +1,43 @@ +{ + lib, + config, + helpers, + pkgs, + ... +}: +with lib; + helpers.vim-plugin.mkVimPlugin config { + name = "sandwich"; + originalName = "vim-sandwich"; + defaultPackage = pkgs.vimPlugins.vim-sandwich; + globalPrefix = "sandwich_"; + + description = '' + The `settings` option will not let you define the options starting with `sandwich#`. + For those, you can directly use the `globals` option: + ```nix + globals."sandwich#magicchar#f#patterns" = [ + { + header.__raw = "[[\<\%(\h\k*\.\)*\h\k*]]"; + bra = "("; + ket = ")"; + footer = ""; + } + ]; + ``` + ''; + + maintainers = [maintainers.GaetanLepage]; + + settingsOptions = { + no_default_key_mappings = helpers.defaultNullOpts.mkBool false '' + Whether to disable the default mappings. + ''; + }; + + settingsExample = { + no_default_key_mappings = true; + no_tex_ftplugin = true; + no_vim_ftplugin = true; + }; + } diff --git a/tests/test-sources/plugins/utils/sandwich.nix b/tests/test-sources/plugins/utils/sandwich.nix new file mode 100644 index 00000000..5962e378 --- /dev/null +++ b/tests/test-sources/plugins/utils/sandwich.nix @@ -0,0 +1,26 @@ +{ + empty = { + plugins.sandwich.enable = true; + }; + + example = { + plugins.sandwich = { + enable = true; + + settings = { + no_default_key_mappings = true; + no_tex_ftplugin = true; + no_vim_ftplugin = true; + }; + }; + + globals."sandwich#magicchar#f#patterns" = [ + { + header.__raw = "[[\<\%(\h\k*\.\)*\h\k*]]"; + bra = "("; + ket = ")"; + footer = ""; + } + ]; + }; +} diff --git a/typos.toml b/typos.toml index 06e309ad..465ab6f0 100644 --- a/typos.toml +++ b/typos.toml @@ -7,3 +7,4 @@ Definitons = "Definitons" # TODO: ./plugins/languages/treesitter/treesitter-refa deffered = "deffered" # TODO: ./plugins/utils/vim-matchup.nix Highligt = "Highligt" # TODO: ./plugins/utils/neogen.nix Annote = "Annote" # TODO: ./plugins/lsp/fidget.nix +ket = "ket" # ./plugins/utils/sandwich.nix