diff options
| author | Maxime Coste <mawww@kakoune.org> | 2022-01-23 21:00:45 +1100 |
|---|---|---|
| committer | Maxime Coste <mawww@kakoune.org> | 2022-01-23 21:00:45 +1100 |
| commit | f4ff59f8b2e010813b3cb09dc757a882e7a7b73c (patch) | |
| tree | 0a37ff63d38089ddd345b068efd6c5a8b51c6a32 | |
| parent | 9acd4e62dc485aa7e44a601a0300697f8825a98c (diff) | |
Restore goto case insensitiveness, refuse to map upper case
After a while it seems clear changing this is much more ergonomic
and restoring it with pure config is impractical as we need to map
all lower case keys.
| -rw-r--r-- | src/commands.cc | 5 | ||||
| -rw-r--r-- | src/normal.cc | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/src/commands.cc b/src/commands.cc index b7e2195e..fbedc529 100644 --- a/src/commands.cc +++ b/src/commands.cc @@ -1815,6 +1815,11 @@ const CommandDesc map_key_cmd = { if (key.size() != 1) throw runtime_error("only a single key can be mapped"); + KeymapMode lower_case_only_modes[] = {KeymapMode::Goto}; + if (key[0].codepoint().map(iswupper).value_or(true) and + contains(lower_case_only_modes, keymap_mode)) + throw runtime_error("mode only supports lower case mappings"); + KeyList mapping = parse_keys(parser[3]); keymaps.map_key(key[0], keymap_mode, std::move(mapping), trim_indent(parser.get_switch("docstring").value_or(""))); diff --git a/src/normal.cc b/src/normal.cc index 40efc32d..4e94fe57 100644 --- a/src/normal.cc +++ b/src/normal.cc @@ -228,7 +228,7 @@ void goto_commands(Context& context, NormalParams params) if (not cp or key == Key::Escape) return; auto& buffer = context.buffer(); - switch (*cp) + switch (to_lower(*cp)) { case 'g': case 'k': |
