plugins/todo-comments: Allow to pass keymap options (#599)

This re-uses the keymap options defined in the keymaps module to allow
to define the options of todo-comments key mappings.

Fixes #598
Co-authored-by: gaetan@glepage.com
This commit is contained in:
traxys 2023-11-06 15:53:26 +01:00 committed by GitHub
parent 229fe85d6b
commit e45be89f12
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 35 additions and 12 deletions

View file

@ -15,6 +15,13 @@ with lib; let
todoTelescope = "TodoTelescope";
};
in {
imports = [
(
mkRemovedOptionModule
["plugins" "todo-comments" "keymapsSilent"]
"Use `plugins.todo-comments.keymaps.<COMMAND>.options.silent`."
)
];
options = {
plugins.todo-comments =
helpers.extraOptionsOptions
@ -182,16 +189,11 @@ in {
'';
};
# Keyboard shortcuts for :Todo* commands
keymapsSilent = mkOption {
type = types.bool;
description = "Whether todo-comments keymaps should be silent.";
default = false;
};
keymaps = let
mkKeymapOption = optionName: funcName:
helpers.mkCompositeOption "Keymap settings for the `:${funcName}` function." {
helpers.mkCompositeOption
"Keymap settings for the `:${funcName}` function."
{
key = mkOption {
type = types.str;
description = "Key for the `${funcName}` function.";
@ -213,6 +215,8 @@ in {
default = null;
example = "TODO,FIX";
};
options = helpers.keymaps.mapConfigOptions;
};
in
mapAttrs mkKeymapOption commands;
@ -279,9 +283,12 @@ in {
(keymap != null)
{
mode = "n";
inherit (keymap) key;
inherit
(keymap)
key
options
;
action = ":${funcName}${cwd}${keywords}<CR>";
options.silent = cfg.keymapsSilent;
}
)
commands