diff options
author | zeertzjq <zeertzjq@outlook.com> | 2025-03-02 06:40:52 +0800 |
---|---|---|
committer | zeertzjq <zeertzjq@outlook.com> | 2025-03-02 07:02:10 +0800 |
commit | 13513835798c732554de277229d4c6744df11502 (patch) | |
tree | d3e6bc7de1f3f81d0a70b40c4665002a9a46824c | |
parent | 26775183ff67968cef06d42666f451c0d1e5c4dc (diff) | |
download | rneovim-13513835798c732554de277229d4c6744df11502.tar.gz rneovim-13513835798c732554de277229d4c6744df11502.tar.bz2 rneovim-13513835798c732554de277229d4c6744df11502.zip |
vim-patch:9.1.1161: preinsert requires bot "menu" and "menuone" to be set
Problem: preinsert requires bot "menu" and "menuone" to be set,
but "menu" is redundant (after v9.1.1160)
Solution: preinsert only requires menuone (glepnir)
closes: vim/vim#16763
https://github.com/vim/vim/commit/94a045ed56d7616c0cd0080d3f308d6cf9fbe64c
Co-authored-by: glepnir <glephunter@gmail.com>
-rw-r--r-- | runtime/doc/options.txt | 5 | ||||
-rw-r--r-- | runtime/lua/vim/_meta/options.lua | 5 | ||||
-rw-r--r-- | src/nvim/insexpand.c | 9 | ||||
-rw-r--r-- | src/nvim/options.lua | 5 | ||||
-rw-r--r-- | test/old/testdir/test_ins_complete.vim | 5 |
5 files changed, 15 insertions, 14 deletions
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index 96bf1eb7bd..8ea05aba58 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -1574,9 +1574,8 @@ A jump table for the options with a short description can be found at |Q_op|. preinsert Preinsert the portion of the first candidate word that is not part of the current completion leader and using the - |hl-ComplMatchIns| highlight group. Does not work when - "fuzzy" is set. Requires both "menu" and "menuone" to be - set. + |hl-ComplMatchIns| highlight group. In order for it to + work, "fuzzy" must not bet set and "menuone" must be set. preview Show extra information about the currently selected completion in the preview window. Only works in diff --git a/runtime/lua/vim/_meta/options.lua b/runtime/lua/vim/_meta/options.lua index 4fce3e9af2..25cc3aae00 100644 --- a/runtime/lua/vim/_meta/options.lua +++ b/runtime/lua/vim/_meta/options.lua @@ -1101,9 +1101,8 @@ vim.go.cia = vim.go.completeitemalign --- preinsert --- Preinsert the portion of the first candidate word that is --- not part of the current completion leader and using the ---- `hl-ComplMatchIns` highlight group. Does not work when ---- "fuzzy" is set. Requires both "menu" and "menuone" to be ---- set. +--- `hl-ComplMatchIns` highlight group. In order for it to +--- work, "fuzzy" must not bet set and "menuone" must be set. --- --- preview Show extra information about the currently selected --- completion in the preview window. Only works in diff --git a/src/nvim/insexpand.c b/src/nvim/insexpand.c index 2664fc8045..d02a698f08 100644 --- a/src/nvim/insexpand.c +++ b/src/nvim/insexpand.c @@ -1808,13 +1808,12 @@ int ins_compl_len(void) return compl_length; } -/// Return TRUE when preinsert is set AND both 'menu' and 'menuone' flags -/// are also set, otherwise return FALSE. +/// Return true when the 'completeopt' "preinsert" flag is in effect, +/// otherwise return false. static bool ins_compl_has_preinsert(void) { - return (get_cot_flags() - & (kOptCotFlagFuzzy|kOptCotFlagPreinsert|kOptCotFlagMenu|kOptCotFlagMenuone)) - == (kOptCotFlagPreinsert|kOptCotFlagMenu|kOptCotFlagMenuone); + return (get_cot_flags() & (kOptCotFlagFuzzy|kOptCotFlagPreinsert|kOptCotFlagMenuone)) + == (kOptCotFlagPreinsert|kOptCotFlagMenuone); } /// Returns true if the pre-insert effect is valid and the cursor is within diff --git a/src/nvim/options.lua b/src/nvim/options.lua index 73605024db..ff919bb522 100644 --- a/src/nvim/options.lua +++ b/src/nvim/options.lua @@ -1543,9 +1543,8 @@ local options = { preinsert Preinsert the portion of the first candidate word that is not part of the current completion leader and using the - |hl-ComplMatchIns| highlight group. Does not work when - "fuzzy" is set. Requires both "menu" and "menuone" to be - set. + |hl-ComplMatchIns| highlight group. In order for it to + work, "fuzzy" must not bet set and "menuone" must be set. preview Show extra information about the currently selected completion in the preview window. Only works in diff --git a/test/old/testdir/test_ins_complete.vim b/test/old/testdir/test_ins_complete.vim index d1f9d77287..d339bbe4e1 100644 --- a/test/old/testdir/test_ins_complete.vim +++ b/test/old/testdir/test_ins_complete.vim @@ -3116,6 +3116,11 @@ function Test_completeopt_preinsert() call assert_equal("foo1bar", getline('.')) call assert_equal(7, col('.')) + set cot=preinsert,menuone + call feedkeys("Sfoo1 foo2\<CR>f\<C-X>\<C-N>", 'tx') + call assert_equal("foo1", getline('.')) + call assert_equal(1, col('.')) + bw! set cot& set omnifunc& |