Add ClientRenamed hook
This commit is contained in:
parent
2f7568485f
commit
5515383ae4
|
@ -141,6 +141,9 @@ name. Hooks with no description will always use an empty string.
|
||||||
executed when a client is closed, after it was removed from the client
|
executed when a client is closed, after it was removed from the client
|
||||||
list.
|
list.
|
||||||
|
|
||||||
|
*ClientRenamed* `<old name>:<new name>`::
|
||||||
|
executed when a client is renamed using the `rename-client` command
|
||||||
|
|
||||||
*RuntimeError* `error message`::
|
*RuntimeError* `error message`::
|
||||||
an error was encountered while executing a user command
|
an error was encountered while executing a user command
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
#include "client.hh"
|
#include "client.hh"
|
||||||
#include "face_registry.hh"
|
#include "face_registry.hh"
|
||||||
#include "buffer_manager.hh"
|
#include "buffer_manager.hh"
|
||||||
|
#include "hook_manager.hh"
|
||||||
#include "register_manager.hh"
|
#include "register_manager.hh"
|
||||||
#include "window.hh"
|
#include "window.hh"
|
||||||
|
|
||||||
|
@ -417,4 +418,8 @@ StringView Context::main_sel_register_value(StringView reg) const
|
||||||
return RegisterManager::instance()[reg].get_main(*this, index);
|
return RegisterManager::instance()[reg].get_main(*this, index);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Context::set_name(String name) {
|
||||||
|
String old_name = std::exchange(m_name, std::move(name));
|
||||||
|
hooks().run_hook(Hook::ClientRenamed, format("{}:{}", old_name, m_name), *this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -110,7 +110,7 @@ public:
|
||||||
StringView main_sel_register_value(StringView reg) const;
|
StringView main_sel_register_value(StringView reg) const;
|
||||||
|
|
||||||
const String& name() const { return m_name; }
|
const String& name() const { return m_name; }
|
||||||
void set_name(String name) { m_name = std::move(name); }
|
void set_name(String name);
|
||||||
|
|
||||||
bool is_editing() const { return m_edition_level!= 0; }
|
bool is_editing() const { return m_edition_level!= 0; }
|
||||||
void disable_undo_handling() { m_edition_level = -1; }
|
void disable_undo_handling() { m_edition_level = -1; }
|
||||||
|
|
|
@ -30,6 +30,7 @@ enum class Hook
|
||||||
BufSetOption,
|
BufSetOption,
|
||||||
ClientCreate,
|
ClientCreate,
|
||||||
ClientClose,
|
ClientClose,
|
||||||
|
ClientRenamed,
|
||||||
InsertChar,
|
InsertChar,
|
||||||
InsertDelete,
|
InsertDelete,
|
||||||
InsertIdle,
|
InsertIdle,
|
||||||
|
@ -75,6 +76,7 @@ constexpr auto enum_desc(Meta::Type<Hook>)
|
||||||
{Hook::BufSetOption, "BufSetOption"},
|
{Hook::BufSetOption, "BufSetOption"},
|
||||||
{Hook::ClientCreate, "ClientCreate"},
|
{Hook::ClientCreate, "ClientCreate"},
|
||||||
{Hook::ClientClose, "ClientClose"},
|
{Hook::ClientClose, "ClientClose"},
|
||||||
|
{Hook::ClientRenamed, "ClientRenamed"},
|
||||||
{Hook::InsertChar, "InsertChar"},
|
{Hook::InsertChar, "InsertChar"},
|
||||||
{Hook::InsertDelete, "InsertDelete"},
|
{Hook::InsertDelete, "InsertDelete"},
|
||||||
{Hook::InsertIdle, "InsertIdle"},
|
{Hook::InsertIdle, "InsertIdle"},
|
||||||
|
|
Loading…
Reference in New Issue
Block a user