summaryrefslogtreecommitdiff
path: root/src/input_handler.cc
diff options
context:
space:
mode:
authorMaxime Coste <mawww@kakoune.org>2018-01-15 10:25:58 +1100
committerMaxime Coste <mawww@kakoune.org>2018-01-15 10:25:58 +1100
commitb4f8497f8dc4cbbd703e94a205b7cea90927ce03 (patch)
treed78ac1133b0a5878f6c71780619f6aa8eea227ec /src/input_handler.cc
parente74b581b0a7c6a196d0d6efa1d92e309e48483d1 (diff)
Slight code refactor in InputHandler::handle_key
Diffstat (limited to 'src/input_handler.cc')
-rw-r--r--src/input_handler.cc63
1 files changed, 31 insertions, 32 deletions
diff --git a/src/input_handler.cc b/src/input_handler.cc
index 7c1c1d9f..93496a6c 100644
--- a/src/input_handler.cc
+++ b/src/input_handler.cc
@@ -1543,41 +1543,40 @@ static bool is_valid(Key key)
void InputHandler::handle_key(Key key)
{
- if (is_valid(key))
- {
- const bool was_recording = is_recording();
- ++m_handle_key_level;
- auto dec = on_scope_end([this]{ --m_handle_key_level; });
-
- auto process_key = [&](Key key) {
- if (m_last_insert.recording)
- m_last_insert.keys.push_back(key);
- current_mode().handle_key(key);
- };
+ if (not is_valid(key))
+ return;
- auto keymap_mode = current_mode().keymap_mode();
- KeymapManager& keymaps = m_context.keymaps();
- if (keymaps.is_mapped(key, keymap_mode) and
- not m_context.keymaps_disabled())
- {
- ScopedSetBool disable_history{context().history_disabled()};
- for (auto& k : keymaps.get_mapping(key, keymap_mode).keys)
- process_key(k);
- }
- else
- process_key(key);
+ const bool was_recording = is_recording();
+ ++m_handle_key_level;
+ auto dec = on_scope_end([this]{ --m_handle_key_level; });
- // do not record the key that made us enter or leave recording mode,
- // and the ones that are triggered recursively by previous keys.
- if (was_recording and is_recording() and m_handle_key_level == m_recording_level)
- m_recorded_keys += key_to_str(key);
+ auto process_key = [&](Key key) {
+ if (m_last_insert.recording)
+ m_last_insert.keys.push_back(key);
+ current_mode().handle_key(key);
+ };
- if (m_handle_key_level < m_recording_level)
- {
- write_to_debug_buffer("Macro recording started but not finished");
- m_recording_reg = 0;
- m_recording_level = -1;
- }
+ const auto keymap_mode = current_mode().keymap_mode();
+ KeymapManager& keymaps = m_context.keymaps();
+ if (keymaps.is_mapped(key, keymap_mode) and not m_context.keymaps_disabled())
+ {
+ ScopedSetBool disable_history{context().history_disabled()};
+ for (auto& k : keymaps.get_mapping(key, keymap_mode).keys)
+ process_key(k);
+ }
+ else
+ process_key(key);
+
+ // do not record the key that made us enter or leave recording mode,
+ // and the ones that are triggered recursively by previous keys.
+ if (was_recording and is_recording() and m_handle_key_level == m_recording_level)
+ m_recorded_keys += key_to_str(key);
+
+ if (m_handle_key_level < m_recording_level)
+ {
+ write_to_debug_buffer("Macro recording started but not finished");
+ m_recording_reg = 0;
+ m_recording_level = -1;
}
}