Default register is not handled by the Normal input mode.
Normal input mode will just pass 0 as the reg if it was not specified by the user, its yank/paste functions that should determine 0 means use '"' register.
This commit is contained in:
parent
3f493fa186
commit
baf0203b9d
|
@ -246,7 +246,7 @@ public:
|
||||||
get_face("Information"), InfoStyle::Prompt);
|
get_face("Information"), InfoStyle::Prompt);
|
||||||
it->func(context(), m_params);
|
it->func(context(), m_params);
|
||||||
}
|
}
|
||||||
m_params = { 0, '"' };
|
m_params = { 0, 0 };
|
||||||
}
|
}
|
||||||
|
|
||||||
context().hooks().run_hook("NormalKey", key_to_str(key), context());
|
context().hooks().run_hook("NormalKey", key_to_str(key), context());
|
||||||
|
@ -261,7 +261,7 @@ public:
|
||||||
atoms.push_back({ "; param=", Face(Color::Yellow) });
|
atoms.push_back({ "; param=", Face(Color::Yellow) });
|
||||||
atoms.push_back({ to_string(m_params.count), Face(Color::Green) });
|
atoms.push_back({ to_string(m_params.count), Face(Color::Green) });
|
||||||
}
|
}
|
||||||
if (m_params.reg != '"')
|
if (m_params.reg)
|
||||||
{
|
{
|
||||||
atoms.push_back({ "; reg=", Face(Color::Yellow) });
|
atoms.push_back({ "; reg=", Face(Color::Yellow) });
|
||||||
atoms.push_back({ StringView(m_params.reg).str(), Face(Color::Green) });
|
atoms.push_back({ StringView(m_params.reg).str(), Face(Color::Green) });
|
||||||
|
@ -272,7 +272,7 @@ public:
|
||||||
KeymapMode keymap_mode() const override { return KeymapMode::Normal; }
|
KeymapMode keymap_mode() const override { return KeymapMode::Normal; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
NormalParams m_params = { 0, '"' };
|
NormalParams m_params = { 0, 0 };
|
||||||
bool m_hooks_disabled = false;
|
bool m_hooks_disabled = false;
|
||||||
bool m_waiting_for_reg = false;
|
bool m_waiting_for_reg = false;
|
||||||
Timer m_idle_timer;
|
Timer m_idle_timer;
|
||||||
|
|
|
@ -460,15 +460,17 @@ void select_next_match(const Buffer& buffer, SelectionList& selections,
|
||||||
|
|
||||||
void yank(Context& context, NormalParams params)
|
void yank(Context& context, NormalParams params)
|
||||||
{
|
{
|
||||||
RegisterManager::instance()[params.reg] = context.selections_content();
|
const char reg = params.reg ? params.reg : '"';
|
||||||
|
RegisterManager::instance()[reg] = context.selections_content();
|
||||||
context.print_status({ format("yanked {} selections to register {}",
|
context.print_status({ format("yanked {} selections to register {}",
|
||||||
context.selections().size(), params.reg),
|
context.selections().size(), reg),
|
||||||
get_face("Information") });
|
get_face("Information") });
|
||||||
}
|
}
|
||||||
|
|
||||||
void erase_selections(Context& context, NormalParams params)
|
void erase_selections(Context& context, NormalParams params)
|
||||||
{
|
{
|
||||||
RegisterManager::instance()[params.reg] = context.selections_content();
|
const char reg = params.reg ? params.reg : '"';
|
||||||
|
RegisterManager::instance()[reg] = context.selections_content();
|
||||||
ScopedEdition edition(context);
|
ScopedEdition edition(context);
|
||||||
context.selections().erase();
|
context.selections().erase();
|
||||||
context.selections().avoid_eol();
|
context.selections().avoid_eol();
|
||||||
|
@ -476,7 +478,8 @@ void erase_selections(Context& context, NormalParams params)
|
||||||
|
|
||||||
void change(Context& context, NormalParams params)
|
void change(Context& context, NormalParams params)
|
||||||
{
|
{
|
||||||
RegisterManager::instance()[params.reg] = context.selections_content();
|
const char reg = params.reg ? params.reg : '"';
|
||||||
|
RegisterManager::instance()[reg] = context.selections_content();
|
||||||
enter_insert_mode<InsertMode::Replace>(context, params);
|
enter_insert_mode<InsertMode::Replace>(context, params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -493,7 +496,8 @@ constexpr InsertMode adapt_for_linewise(InsertMode mode)
|
||||||
template<InsertMode mode>
|
template<InsertMode mode>
|
||||||
void paste(Context& context, NormalParams params)
|
void paste(Context& context, NormalParams params)
|
||||||
{
|
{
|
||||||
auto strings = RegisterManager::instance()[params.reg].values(context);
|
const char reg = params.reg ? params.reg : '"';
|
||||||
|
auto strings = RegisterManager::instance()[reg].values(context);
|
||||||
InsertMode effective_mode = mode;
|
InsertMode effective_mode = mode;
|
||||||
for (auto& str : strings)
|
for (auto& str : strings)
|
||||||
{
|
{
|
||||||
|
@ -510,7 +514,8 @@ void paste(Context& context, NormalParams params)
|
||||||
template<InsertMode mode>
|
template<InsertMode mode>
|
||||||
void paste_all(Context& context, NormalParams params)
|
void paste_all(Context& context, NormalParams params)
|
||||||
{
|
{
|
||||||
auto strings = RegisterManager::instance()[params.reg].values(context);
|
const char reg = params.reg ? params.reg : '"';
|
||||||
|
auto strings = RegisterManager::instance()[reg].values(context);
|
||||||
InsertMode effective_mode = mode;
|
InsertMode effective_mode = mode;
|
||||||
String all;
|
String all;
|
||||||
Vector<ByteCount> offsets;
|
Vector<ByteCount> offsets;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user