mirror of
https://github.com/mawww/kakoune.git
synced 2024-12-20 18:11:36 +03:00
30 lines
598 B
C++
30 lines
598 B
C++
|
#include "hook_manager.hh"
|
||
|
|
||
|
namespace Kakoune
|
||
|
{
|
||
|
|
||
|
void HookManager::add_hook(const std::string& hook_name, HookFunc hook)
|
||
|
{
|
||
|
m_hook[hook_name].push_back(hook);
|
||
|
}
|
||
|
|
||
|
void HookManager::run_hook(const std::string& hook_name,
|
||
|
const std::string& param,
|
||
|
const Context& context) const
|
||
|
{
|
||
|
auto hook_list_it = m_hook.find(hook_name);
|
||
|
if (hook_list_it == m_hook.end())
|
||
|
return;
|
||
|
|
||
|
for (auto& hook : hook_list_it->second)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
hook(param, context);
|
||
|
}
|
||
|
catch (runtime_error&) {}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|