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 /src | |
| 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.
Diffstat (limited to 'src')
| -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': |
