aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2025-03-30 07:12:01 +0800
committerGitHub <noreply@github.com>2025-03-30 07:12:01 +0800
commit99529577cc9f5229cbb3dac8ab4782bd43094102 (patch)
tree426e4281a3123b9ada2be680721e91ba82c621ab
parent5f9f5bc04d0bec0fbf100dd5a0de2b38daf882fb (diff)
downloadrneovim-99529577cc9f5229cbb3dac8ab4782bd43094102.tar.gz
rneovim-99529577cc9f5229cbb3dac8ab4782bd43094102.tar.bz2
rneovim-99529577cc9f5229cbb3dac8ab4782bd43094102.zip
fix(api): use E226 instead of E227 for duplicate abbreviation (#33159)
-rw-r--r--src/nvim/mapping.c4
-rw-r--r--test/functional/api/keymap_spec.lua6
2 files changed, 9 insertions, 1 deletions
diff --git a/src/nvim/mapping.c b/src/nvim/mapping.c
index 147985377e..3dc66f7dba 100644
--- a/src/nvim/mapping.c
+++ b/src/nvim/mapping.c
@@ -2804,7 +2804,9 @@ void modify_keymap(uint64_t channel_id, Buffer buffer, bool is_unmap, String mod
api_set_error(err, kErrorTypeException, e_nomap, 0);
goto fail_and_free;
case 5:
- api_set_error(err, kErrorTypeException, e_mapping_already_exists_for_str, lhs.data);
+ api_set_error(err, kErrorTypeException,
+ is_abbrev ? e_abbreviation_already_exists_for_str
+ : e_mapping_already_exists_for_str, lhs.data);
goto fail_and_free;
default:
assert(false && "Unrecognized return code!");
diff --git a/test/functional/api/keymap_spec.lua b/test/functional/api/keymap_spec.lua
index 73dae0dd60..acaccee4e5 100644
--- a/test/functional/api/keymap_spec.lua
+++ b/test/functional/api/keymap_spec.lua
@@ -814,6 +814,12 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
'E227: Mapping already exists for <tab>',
pcall_err(api.nvim_set_keymap, 'n', '<tab>', 'rhs', { unique = true })
)
+
+ api.nvim_set_keymap('ia', 'lhs', 'rhs', {})
+ eq(
+ 'E226: Abbreviation already exists for lhs',
+ pcall_err(api.nvim_set_keymap, 'ia', 'lhs', 'rhs', { unique = true })
+ )
end)
it('can set <expr> mappings whose RHS change dynamically', function()