2023-02-20 11:42:13 +01:00
|
|
|
{
|
|
|
|
lib,
|
2024-02-09 14:21:22 +01:00
|
|
|
config,
|
|
|
|
helpers,
|
2023-02-20 11:42:13 +01:00
|
|
|
pkgs,
|
|
|
|
...
|
2024-02-09 14:21:22 +01:00
|
|
|
}:
|
|
|
|
with lib;
|
|
|
|
with helpers.vim-plugin;
|
|
|
|
mkVimPlugin config {
|
|
|
|
name = "emmet";
|
2024-02-13 23:25:13 +01:00
|
|
|
originalName = "emmet-vim";
|
2024-02-15 09:51:43 +01:00
|
|
|
defaultPackage = pkgs.vimPlugins.emmet-vim;
|
2024-02-09 14:21:22 +01:00
|
|
|
globalPrefix = "user_emmet_";
|
2024-03-01 18:12:06 +01:00
|
|
|
|
2024-03-04 09:35:28 +01:00
|
|
|
maintainers = [maintainers.GaetanLepage];
|
|
|
|
|
2024-03-01 18:12:06 +01:00
|
|
|
# TODO introduced 2024-03-01: remove 2024-05-01
|
2024-02-19 10:19:39 +01:00
|
|
|
deprecateExtraConfig = true;
|
2024-03-01 18:12:06 +01:00
|
|
|
optionsRenamedToSettings = [
|
|
|
|
"mode"
|
|
|
|
];
|
|
|
|
imports = [
|
|
|
|
(
|
|
|
|
mkRenamedOptionModule
|
|
|
|
["plugins" "emmet" "leader"]
|
|
|
|
["plugins" "emmet" "settings" "leader_key"]
|
|
|
|
)
|
|
|
|
];
|
2022-01-21 19:22:03 -04:00
|
|
|
|
2024-03-01 18:12:06 +01:00
|
|
|
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.
|
2022-01-21 19:22:03 -04:00
|
|
|
|
2024-03-01 18:12:06 +01:00
|
|
|
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
|
|
|
|
'';
|
|
|
|
};
|
2022-01-21 19:22:03 -04:00
|
|
|
|
2024-03-01 18:12:06 +01:00
|
|
|
settingsExample = {
|
|
|
|
mode = "inv";
|
|
|
|
leader = "<C-Z>";
|
|
|
|
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>
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
};
|
2023-02-20 11:42:13 +01:00
|
|
|
};
|
2024-02-09 14:21:22 +01:00
|
|
|
};
|
|
|
|
}
|