nix-community.nixvim/plugins/utils/emmet.nix

98 lines
2.1 KiB
Nix
Raw Normal View History

{
lib,
config,
helpers,
pkgs,
...
}:
with lib;
with helpers.vim-plugin;
2024-05-05 19:39:35 +02:00
mkVimPlugin config {
name = "emmet";
originalName = "emmet-vim";
defaultPackage = pkgs.vimPlugins.emmet-vim;
globalPrefix = "user_emmet_";
2024-05-05 19:39:35 +02:00
maintainers = [ maintainers.GaetanLepage ];
2024-05-05 19:39:35 +02:00
# TODO introduced 2024-03-01: remove 2024-05-01
deprecateExtraConfig = true;
optionsRenamedToSettings = [ "mode" ];
imports = [
(mkRenamedOptionModule
[
"plugins"
"emmet"
"leader"
]
[
"plugins"
"emmet"
"settings"
"leader_key"
]
)
];
2024-05-05 19:39:35 +02: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.
2024-05-05 19:39:35 +02: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`
'';
2024-05-05 19:39:35 +02:00
leader_key = helpers.defaultNullOpts.mkStr "<C-y>" ''
Leading keys to run Emmet functions.
'';
2024-05-05 19:39:35 +02:00
settings = helpers.mkNullOrOption (with types; attrsOf anything) ''
Emmet settings.
2024-05-05 19:39:35 +02:00
Defaults: see https://github.com/mattn/emmet-vim/blob/master/autoload/emmet.vim
'';
};
2024-05-05 19:39:35 +02:00
settingsExample = {
mode = "inv";
leader = "<C-Z>";
settings = {
variables = {
lang = "ja";
};
html = {
default_attributes = {
option = {
value = null;
};
2024-05-05 19:39:35 +02:00
textarea = {
id = null;
name = null;
cols = 10;
rows = 10;
};
};
2024-05-05 19:39:35 +02:00
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>
'';
};
};
};
2024-05-05 19:39:35 +02:00
};
}