diff options
| author | Maxime Coste <mawww@kakoune.org> | 2019-11-11 21:38:40 +1100 |
|---|---|---|
| committer | Maxime Coste <mawww@kakoune.org> | 2019-11-11 21:47:47 +1100 |
| commit | 5060a4733acbeb68396ee20ae7a6b8bb89020516 (patch) | |
| tree | 778d2929938fd290ddba8ca8e03da2e4b0bb1732 /src/input_handler.cc | |
| parent | 7438f23b9beddc42b6561fe8be3f953aff2f73b1 (diff) | |
Add mode information to next-key mode name
Currently expose an additional name, the format is up for
discussion.
Fixes #1855
Fixes #2569
Fixes #2672
Diffstat (limited to 'src/input_handler.cc')
| -rw-r--r-- | src/input_handler.cc | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/src/input_handler.cc b/src/input_handler.cc index 5cb780ee..f4029fcd 100644 --- a/src/input_handler.cc +++ b/src/input_handler.cc @@ -262,7 +262,7 @@ public: } else if (key == '"') { - on_next_key_with_autoinfo(context(), KeymapMode::None, + on_next_key_with_autoinfo(context(), "register", KeymapMode::None, [this](Key key, Context& context) { auto cp = key.codepoint(); if (not cp or key == Key::Escape) @@ -806,7 +806,7 @@ public: } else if (key == ctrl('r')) { - on_next_key_with_autoinfo(context(), KeymapMode::None, + on_next_key_with_autoinfo(context(), "register", KeymapMode::None, [this](Key key, Context&) { auto cp = key.codepoint(); if (not cp or key == Key::Escape) @@ -823,7 +823,7 @@ public: } else if (key == ctrl('v')) { - on_next_key_with_autoinfo(context(), KeymapMode::None, + on_next_key_with_autoinfo(context(), "raw-key", KeymapMode::None, [this](Key key, Context&) { if (auto cp = get_raw_codepoint(key)) { @@ -1100,8 +1100,8 @@ private: class NextKey : public InputMode { public: - NextKey(InputHandler& input_handler, KeymapMode keymap_mode, KeyCallback callback) - : InputMode(input_handler), m_callback(std::move(callback)), m_keymap_mode(keymap_mode) {} + NextKey(InputHandler& input_handler, String name, KeymapMode keymap_mode, KeyCallback callback) + : InputMode(input_handler), m_name{std::move(name)}, m_callback(std::move(callback)), m_keymap_mode(keymap_mode) {} void on_key(Key key) override { @@ -1119,9 +1119,10 @@ public: KeymapMode keymap_mode() const override { return m_keymap_mode; } - StringView name() const override { return "next-key"; } + StringView name() const override { return m_name; } private: + String m_name; KeyCallback m_callback; KeymapMode m_keymap_mode; }; @@ -1267,7 +1268,7 @@ public: insert(*cp); else if (key == ctrl('r')) { - on_next_key_with_autoinfo(context(), KeymapMode::None, + on_next_key_with_autoinfo(context(), "register", KeymapMode::None, [this](Key key, Context&) { auto cp = key.codepoint(); if (not cp or key == Key::Escape) @@ -1296,7 +1297,7 @@ public: } else if (key == ctrl('x')) { - on_next_key_with_autoinfo(context(), KeymapMode::None, + on_next_key_with_autoinfo(context(), "explicit-completion", KeymapMode::None, [this](Key key, Context&) { if (key.key == 'f') m_completer.explicit_file_complete(); @@ -1330,7 +1331,7 @@ public: } else if (key == ctrl('v')) { - on_next_key_with_autoinfo(context(), KeymapMode::None, + on_next_key_with_autoinfo(context(), "raw-insert", KeymapMode::None, [this, transient](Key key, Context&) { if (auto cp = get_raw_codepoint(key)) { @@ -1587,9 +1588,9 @@ void InputHandler::menu(Vector<DisplayLine> choices, MenuCallback callback) push_mode(new InputModes::Menu(*this, std::move(choices), std::move(callback))); } -void InputHandler::on_next_key(KeymapMode keymap_mode, KeyCallback callback) +void InputHandler::on_next_key(StringView mode_name, KeymapMode keymap_mode, KeyCallback callback) { - push_mode(new InputModes::NextKey(*this, keymap_mode, std::move(callback))); + push_mode(new InputModes::NextKey(*this, format("next-key[{}]", mode_name), keymap_mode, std::move(callback))); } InputHandler::ScopedForceNormal::ScopedForceNormal(InputHandler& handler, NormalParams params) |
