summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMaxime Coste <mawww@kakoune.org>2020-07-04 13:48:10 +1000
committerMaxime Coste <mawww@kakoune.org>2020-07-04 13:48:27 +1000
commitf2cc7bc891922ad48c4372c0b69239ef74bce004 (patch)
tree1213ff8ab2655003f01a09f64bd48586de9cc464 /src
parente509a8e9cd626215b5d36b87f014a46a90a2c083 (diff)
Add User hook support
Diffstat (limited to 'src')
-rw-r--r--src/commands.cc15
-rw-r--r--src/hook_manager.hh6
2 files changed, 19 insertions, 2 deletions
diff --git a/src/commands.cc b/src/commands.cc
index c5cd5fdb..abf3a898 100644
--- a/src/commands.cc
+++ b/src/commands.cc
@@ -1093,6 +1093,20 @@ const CommandDesc remove_hook_cmd = {
}
};
+const CommandDesc trigger_user_hook_cmd = {
+ "trigger-user-hook",
+ nullptr,
+ "trigger-user-hook <param>: run 'User' hook with <param> as filter string",
+ single_param,
+ CommandFlags::None,
+ CommandHelper{},
+ CommandCompleter{},
+ [](const ParametersParser& parser, Context& context, const ShellContext&)
+ {
+ context.hooks().run_hook(Hook::User, parser[0], context);
+ }
+};
+
Vector<String> params_to_shell(const ParametersParser& parser)
{
Vector<String> vars;
@@ -2635,6 +2649,7 @@ void register_commands()
register_command(remove_highlighter_cmd);
register_command(add_hook_cmd);
register_command(remove_hook_cmd);
+ register_command(trigger_user_hook_cmd);
register_command(define_command_cmd);
register_command(alias_cmd);
register_command(unalias_cmd);
diff --git a/src/hook_manager.hh b/src/hook_manager.hh
index 8fc5f8d4..a6547fa0 100644
--- a/src/hook_manager.hh
+++ b/src/hook_manager.hh
@@ -54,7 +54,8 @@ enum class Hook
WinDisplay,
WinResize,
WinSetOption,
- ModuleLoaded
+ ModuleLoaded,
+ User
};
constexpr auto enum_desc(Meta::Type<Hook>)
@@ -97,7 +98,8 @@ constexpr auto enum_desc(Meta::Type<Hook>)
{Hook::WinDisplay, "WinDisplay"},
{Hook::WinResize, "WinResize"},
{Hook::WinSetOption, "WinSetOption"},
- {Hook::ModuleLoaded, "ModuleLoaded"}
+ {Hook::ModuleLoaded, "ModuleLoaded"},
+ {Hook::User, "User"}
});
}