diff options
| author | Maxime Coste <mawww@kakoune.org> | 2017-09-23 13:13:51 +0900 |
|---|---|---|
| committer | Maxime Coste <mawww@kakoune.org> | 2017-09-23 13:13:51 +0900 |
| commit | 002e77534f23890ccf7a2dfd31b76d4962f657ff (patch) | |
| tree | f903afb1e4d2a0315dc38145abafee476e11dd6a | |
| parent | 81070875107c9705e79e79c3b6e4225d92b70991 (diff) | |
| parent | a20ecf6b005350b42be60ce74d1c3d0354ee74ee (diff) | |
Merge remote-tracking branch 'occivink/quit-on-esc'
| -rw-r--r-- | src/input_handler.cc | 40 | ||||
| -rw-r--r-- | src/normal.cc | 20 |
2 files changed, 32 insertions, 28 deletions
diff --git a/src/input_handler.cc b/src/input_handler.cc index eae424da..65330487 100644 --- a/src/input_handler.cc +++ b/src/input_handler.cc @@ -260,15 +260,15 @@ public: { on_next_key_with_autoinfo(context(), KeymapMode::None, [this](Key key, Context& context) { - if (auto cp = key.codepoint()) - { - if (*cp <= 127) - m_params.reg = *cp; - else - context.print_status( - { format("invalid register '{}'", *cp), - get_face("Error") }); - } + auto cp = key.codepoint(); + if (not cp or key == Key::Escape) + return; + if (*cp <= 127) + m_params.reg = *cp; + else + context.print_status( + { format("invalid register '{}'", *cp), + get_face("Error") }); }, "enter target register", register_doc); } else @@ -755,14 +755,14 @@ public: { on_next_key_with_autoinfo(context(), KeymapMode::None, [this](Key key, Context&) { - if (auto cp = key.codepoint()) - { - StringView reg = context().main_sel_register_value(String{*cp}); - m_line_editor.insert(reg); - - display(); - m_line_changed = true; - } + auto cp = key.codepoint(); + if (not cp or key == Key::Escape) + return; + StringView reg = context().main_sel_register_value(String{*cp}); + m_line_editor.insert(reg); + + display(); + m_line_changed = true; }, "enter register name", register_doc); display(); return; @@ -1183,8 +1183,10 @@ public: { on_next_key_with_autoinfo(context(), KeymapMode::None, [this](Key key, Context&) { - if (auto cp = key.codepoint()) - insert(RegisterManager::instance()[*cp].get(context())); + auto cp = key.codepoint(); + if (not cp or key == Key::Escape) + return; + insert(RegisterManager::instance()[*cp].get(context())); }, "enter register name", register_doc); update_completions = false; } diff --git a/src/normal.cc b/src/normal.cc index df6e686f..c4ccf2da 100644 --- a/src/normal.cc +++ b/src/normal.cc @@ -185,7 +185,7 @@ void goto_commands(Context& context, NormalParams params) on_next_key_with_autoinfo(context, KeymapMode::Goto, [](Key key, Context& context) { auto cp = key.codepoint(); - if (not cp) + if (not cp or key == Key::Escape) return; auto& buffer = context.buffer(); switch (to_lower(*cp)) @@ -1122,7 +1122,7 @@ void select_object(Context& context, NormalParams params) on_next_key_with_autoinfo(context, KeymapMode::Object, [count](Key key, Context& context) { auto cp = key.codepoint().value_or((Codepoint)-1); - if (cp == -1) + if (cp == -1 or key == Key::Escape) return; static constexpr struct ObjectType @@ -1335,15 +1335,17 @@ void select_to_next_char(Context& context, NormalParams params) on_next_key_with_autoinfo(context, KeymapMode::None, [params](Key key, Context& context) { + auto cp = key.codepoint(); + if (not cp or key == Key::Escape) + return; constexpr auto new_flags = flags & SelectFlags::Extend ? SelectMode::Extend : SelectMode::Replace; - if (auto cp = key.codepoint()) - select_and_set_last<new_flags>( - context, - std::bind(flags & SelectFlags::Reverse ? select_to_reverse - : select_to, - _1, _2, *cp, params.count, - flags & SelectFlags::Inclusive)); + select_and_set_last<new_flags>( + context, + std::bind(flags & SelectFlags::Reverse ? select_to_reverse + : select_to, + _1, _2, *cp, params.count, + flags & SelectFlags::Inclusive)); }, get_title(),"enter char to select to"); } |
