From d149f46b00dde90b6824a368a259439ab5a6815c Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Fri, 1 Mar 2024 18:12:06 +0100 Subject: [PATCH] plugins/emmet: switch to settings option --- plugins/utils/emmet.nix | 79 ++++++++++++++++++---- tests/test-sources/plugins/utils/emmet.nix | 54 ++++++++------- 2 files changed, 94 insertions(+), 39 deletions(-) diff --git a/plugins/utils/emmet.nix b/plugins/utils/emmet.nix index e59a6c48..2f028df3 100644 --- a/plugins/utils/emmet.nix +++ b/plugins/utils/emmet.nix @@ -12,23 +12,76 @@ with helpers.vim-plugin; originalName = "emmet-vim"; defaultPackage = pkgs.vimPlugins.emmet-vim; globalPrefix = "user_emmet_"; + + # TODO introduced 2024-03-01: remove 2024-05-01 deprecateExtraConfig = true; + optionsRenamedToSettings = [ + "mode" + ]; + imports = [ + ( + mkRenamedOptionModule + ["plugins" "emmet" "leader"] + ["plugins" "emmet" "settings" "leader_key"] + ) + ]; - options = { - mode = mkDefaultOpt { - type = types.str; - description = "Mode where emmet will enable"; - }; + settingsOptions = { + mode = helpers.defaultNullOpts.mkStr "a" '' + Choose modes, in which Emmet mappings will be created. + Default value: 'a' - all modes. + - 'n' - normal mode. + - 'i' - insert mode. + - 'v' - visual mode. - leader = mkDefaultOpt { - type = types.str; - global = "leader_key"; - description = "Set leader key"; - }; + Examples: + - create Emmet mappings only for normal mode: `n` + - create Emmet mappings for insert, normal and visual modes: `inv` + - create Emmet mappings for all modes: `a` + ''; - settings = mkDefaultOpt { - type = with types; attrsOf anything; - description = "Emmet settings"; + leader_key = helpers.defaultNullOpts.mkStr "" '' + Leading keys to run Emmet functions. + ''; + + settings = helpers.mkNullOrOption (with types; attrsOf anything) '' + Emmet settings. + + Defaults: see https://github.com/mattn/emmet-vim/blob/master/autoload/emmet.vim + ''; + }; + + settingsExample = { + mode = "inv"; + leader = ""; + settings = { + variables = { + lang = "ja"; + }; + html = { + default_attributes = { + option = {value = null;}; + textarea = { + id = null; + name = null; + cols = 10; + rows = 10; + }; + }; + snippets = { + "html:5" = '' + + + + \t + \t + \t + + \n\t$\{child}|\n + + ''; + }; + }; }; }; } diff --git a/tests/test-sources/plugins/utils/emmet.nix b/tests/test-sources/plugins/utils/emmet.nix index 75df60b6..23939d4a 100644 --- a/tests/test-sources/plugins/utils/emmet.nix +++ b/tests/test-sources/plugins/utils/emmet.nix @@ -7,34 +7,36 @@ plugins.emmet = { enable = true; - mode = "inv"; - leader = ""; settings = { - variables = { - lang = "ja"; - }; - html = { - default_attributes = { - option = {value = null;}; - textarea = { - id = null; - name = null; - cols = 10; - rows = 10; - }; + mode = "inv"; + leader = ""; + settings = { + variables = { + lang = "ja"; }; - snippets = { - "html:5" = '' - - - - \t - \t - \t - - \n\t$\{child}|\n - - ''; + html = { + default_attributes = { + option = {value = null;}; + textarea = { + id = null; + name = null; + cols = 10; + rows = 10; + }; + }; + snippets = { + "html:5" = '' + + + + \t + \t + \t + + \n\t$\{child}|\n + + ''; + }; }; }; };