plugins/emmet: switch to settings option

This commit is contained in:
Gaetan Lepage 2024-03-01 18:12:06 +01:00 committed by Gaétan Lepage
parent d8432ef9c1
commit d149f46b00
2 changed files with 94 additions and 39 deletions

View file

@ -12,23 +12,76 @@ with helpers.vim-plugin;
originalName = "emmet-vim"; originalName = "emmet-vim";
defaultPackage = pkgs.vimPlugins.emmet-vim; defaultPackage = pkgs.vimPlugins.emmet-vim;
globalPrefix = "user_emmet_"; globalPrefix = "user_emmet_";
# TODO introduced 2024-03-01: remove 2024-05-01
deprecateExtraConfig = true; deprecateExtraConfig = true;
optionsRenamedToSettings = [
"mode"
];
imports = [
(
mkRenamedOptionModule
["plugins" "emmet" "leader"]
["plugins" "emmet" "settings" "leader_key"]
)
];
options = { settingsOptions = {
mode = mkDefaultOpt { mode = helpers.defaultNullOpts.mkStr "a" ''
type = types.str; Choose modes, in which Emmet mappings will be created.
description = "Mode where emmet will enable"; Default value: 'a' - all modes.
- 'n' - normal mode.
- 'i' - insert mode.
- 'v' - visual mode.
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`
'';
leader_key = helpers.defaultNullOpts.mkStr "<C-y>" ''
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
'';
}; };
leader = mkDefaultOpt { settingsExample = {
type = types.str; mode = "inv";
global = "leader_key"; leader = "<C-Z>";
description = "Set leader key"; settings = {
variables = {
lang = "ja";
};
html = {
default_attributes = {
option = {value = null;};
textarea = {
id = null;
name = null;
cols = 10;
rows = 10;
};
};
snippets = {
"html:5" = ''
<!DOCTYPE html>
<html lang=\"$\{lang}\">
<head>
\t<meta charset=\"$\{charset}\">
\t<title></title>
\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">
</head>
<body>\n\t$\{child}|\n</body>
</html>
'';
};
}; };
settings = mkDefaultOpt {
type = with types; attrsOf anything;
description = "Emmet settings";
}; };
}; };
} }

View file

@ -7,6 +7,7 @@
plugins.emmet = { plugins.emmet = {
enable = true; enable = true;
settings = {
mode = "inv"; mode = "inv";
leader = "<C-Z>"; leader = "<C-Z>";
settings = { settings = {
@ -40,4 +41,5 @@
}; };
}; };
}; };
};
} }