Add a RawKey hook for raw user input hooking

Fixes #1132
This commit is contained in:
Maxime Coste 2017-01-24 23:57:36 +00:00
parent 8a62ec12af
commit ebcfba12f6
3 changed files with 8 additions and 0 deletions

View File

@ -1442,6 +1442,8 @@ existing hooks are:
displayed. displayed.
* `InsertCompletionHide`: Triggered when the insert completion menu gets * `InsertCompletionHide`: Triggered when the insert completion menu gets
hidden. hidden.
* `RawKey`: Triggered whenever an key is pressed by the user, the key is
used for filtering.
When not specified, the filtering text is an empty string. When not specified, the filtering text is an empty string.

View File

@ -150,6 +150,10 @@ Default hooks
*InsertCompletionHide*:: *InsertCompletionHide*::
Triggered when the insert completion menu gets hidden Triggered when the insert completion menu gets hidden
*RawKey*::
Triggered whenever an key is pressed by the user, the key is
used for filtering.
When not specified, the filtering text is an empty string. Note that When not specified, the filtering text is an empty string. Note that
some hooks will not consider underlying scopes depending on what context some hooks will not consider underlying scopes depending on what context
they are bound to be run into, e.g. the `BufWritePost` hook is a buffer they are bound to be run into, e.g. the `BufWritePost` hook is a buffer

View File

@ -85,6 +85,8 @@ bool Client::process_pending_inputs()
} }
else else
m_input_handler.handle_key(key); m_input_handler.handle_key(key);
context().hooks().run_hook("RawKey", key_to_str(key), context());
} }
catch (Kakoune::runtime_error& error) catch (Kakoune::runtime_error& error)
{ {