diff options
| author | Maxime Coste <mawww@kakoune.org> | 2020-07-04 13:48:10 +1000 |
|---|---|---|
| committer | Maxime Coste <mawww@kakoune.org> | 2020-07-04 13:48:27 +1000 |
| commit | f2cc7bc891922ad48c4372c0b69239ef74bce004 (patch) | |
| tree | 1213ff8ab2655003f01a09f64bd48586de9cc464 /src | |
| parent | e509a8e9cd626215b5d36b87f014a46a90a2c083 (diff) | |
Add User hook support
Diffstat (limited to 'src')
| -rw-r--r-- | src/commands.cc | 15 | ||||
| -rw-r--r-- | src/hook_manager.hh | 6 |
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"} }); } |
