summaryrefslogtreecommitdiff
path: root/src/hook_manager.cc
diff options
context:
space:
mode:
authorMaxime Coste <mawww@kakoune.org>2019-04-15 23:53:47 +1000
committerMaxime Coste <mawww@kakoune.org>2019-04-15 23:56:49 +1000
commit6b79c1e000ab3f244f0e7f0d576aba77819f2818 (patch)
treec161c0c15b525ff790a6fb8cdd5f7eaa6a936649 /src/hook_manager.cc
parentac73f7c27fc0eafc854ac1a3a17a231dee68eb52 (diff)
Support named captures in hooks
Fixes #2857
Diffstat (limited to 'src/hook_manager.cc')
-rw-r--r--src/hook_manager.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/hook_manager.cc b/src/hook_manager.cc
index 82f14512..d27bf731 100644
--- a/src/hook_manager.cc
+++ b/src/hook_manager.cc
@@ -117,6 +117,9 @@ void HookManager::run_hook(Hook hook, StringView param, Context& context)
for (size_t i = 0; i < to_run.captures.size(); ++i)
env_vars.insert({format("hook_param_capture_{}", i),
{to_run.captures[i].first, to_run.captures[i].second}});
+ for (auto& c : to_run.hook->filter.impl()->named_captures)
+ env_vars.insert({format("hook_param_capture_{}", c.name),
+ {to_run.captures[c.index].first, to_run.captures[c.index].second}});
CommandManager::instance().execute(to_run.hook->commands, context,
{ {}, std::move(env_vars) });