plugins/wrapping: Add more options

This commit is contained in:
Zain Kergaye 2024-09-30 12:22:35 -06:00
parent 846e1a321a
commit 0ca98d0210
2 changed files with 67 additions and 6 deletions

View file

@ -1,8 +1,4 @@
{ { lib, ... }:
pkgs,
lib,
...
}:
let let
inherit (lib.nixvim) defaultNullOpts; inherit (lib.nixvim) defaultNullOpts;
in in
@ -18,9 +14,69 @@ lib.nixvim.neovim-plugin.mkNeovimPlugin {
By default, wrapping.nvim will output a message to the By default, wrapping.nvim will output a message to the
command line when the hard or soft mode is set. command line when the hard or soft mode is set.
''; '';
create_commands = defaultNullOpts.mkBool true ''
If true, the plugin will create the following
commands to set/override a wrapping mode in case
it is not autodetected correctly:
* 'HardWrapMode'
* 'SoftWrapMode'
* 'ToggleWrapMode'
'';
create_keymaps = defaultNullOpts.mkBool true ''
If true, it will create the following normal-mode keymappings:
* '[ow' (soft wrap mode)
* ']ow' (hard wrap mode)
* 'yow' (toggle wrap mode)
'';
auto_set_mode_filetype_allowlist = defaultNullOpts.mkListOf lib.types.str [
"asciidoc"
"gitcommit"
"help"
"latex"
"mail"
"markdown"
"rst"
"tex"
"text"
"typst"
] "Filetypes for automatic heuristic mode triggers.";
auto_set_mode_filetype_denylist =
defaultNullOpts.mkListOf lib.types.str [ ]
"Auto set mode filetype deny list";
auto_set_mode_heuristically = defaultNullOpts.mkBool true ''
If true, the plugin will set the hard or soft mode automatically when any file loads.
For a specific set of file types, use `plugins.wrapping.settings.auto_set_mode_filetype_allowlist`.
It uses the `BufWinEnter` event in an autocmd with a variety of undocumented heuristics.
Refer to the [plugin documentation] for more details on this evolving behavior.
[plugin documentation] https://github.com/andrewferrier/wrapping.nvim?tab=readme-ov-file#automatic-heuristic-mode'';
set_nvim_opt_default = defaultNullOpts.mkBool true ''
If true, wrapping.nvim will tweak some NeoVim defaults
(linebreak and wrap) to make it operate more smoothly.
'';
}; };
settingsExample = { settingsExample = {
notify_on_switch = false; notify_on_switch = false;
create_commands = false;
create_keymaps = false;
auto_set_mode_filetype_allowlist = [
"file"
"filetwo"
];
}; };
} }

View file

@ -6,7 +6,12 @@
defaults = { defaults = {
plugins.wrapping = { plugins.wrapping = {
enable = true; enable = true;
settings.notify_on_switch = true; settings = {
notify_on_switch = true;
create_commands = true;
create_keymaps = false;
set_nvim_opt_default = true;
};
}; };
}; };
} }