summaryrefslogtreecommitdiffstatshomepage
path: root/runtime/lua/vim/_meta/options.lua
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2025-09-27 09:09:03 +0800
committerzeertzjq <zeertzjq@outlook.com>2025-09-30 09:32:33 +0800
commit7b9c063d116064bb0765c76277fe210c7ac01d0c (patch)
tree11d0bee3aee16edcfe6c788fe0c7bb52d1a42397 /runtime/lua/vim/_meta/options.lua
parent4896178863dc912baaf68ddcddab28eecc8f00d7 (diff)
vim-patch:9.1.1797: completion: autocompletion can be improved
Problem: completion: autocompletion can be improved Solution: Add support for "longest" and "preinsert" in 'autocomplete'; add preinserted() (Girish Palya) * Add support for "longest" in 'completeopt' when 'autocomplete' is enabled. (Note: the cursor position does not change automatically when 'autocomplete' is enabled.) * Add support for "preinsert" when 'autocomplete' is enabled. Ensure "preinsert" works the same with and without 'autocomplete' * introduce the preinserted() Vim script function, useful for defining custom key mappings. fixes: vim/vim#18314 closes: vim/vim#18387 https://github.com/vim/vim/commit/c05335082adb21d99d96374779856444a3a0688f Co-authored-by: Girish Palya <girishji@gmail.com>
Diffstat (limited to 'runtime/lua/vim/_meta/options.lua')
-rw-r--r--runtime/lua/vim/_meta/options.lua42
1 files changed, 26 insertions, 16 deletions
diff --git a/runtime/lua/vim/_meta/options.lua b/runtime/lua/vim/_meta/options.lua
index 6323d11d4c..4adad760e9 100644
--- a/runtime/lua/vim/_meta/options.lua
+++ b/runtime/lua/vim/_meta/options.lua
@@ -1183,11 +1183,22 @@ vim.go.cia = vim.go.completeitemalign
--- to gather more alternatives for your candidate list,
--- see 'completefuzzycollect'.
---
---- longest Only insert the longest common text of the matches. If
---- the menu is displayed you can use CTRL-L to add more
---- characters. Whether case is ignored depends on the kind
---- of completion. For buffer text the 'ignorecase' option is
---- used.
+--- longest
+--- When 'autocomplete' is not active, only the longest
+--- common prefix of the matches is inserted. If the popup
+--- menu is displayed, you can use CTRL-L to add more
+--- characters. Whether case is ignored depends on the type
+--- of completion. For buffer text the 'ignorecase' option
+--- applies.
+---
+--- When 'autocomplete' is active and no completion item is
+--- selected, the longest common prefix of the matches is
+--- inserted after the cursor. The prefix is taken either
+--- from all displayed items or only from items in the current
+--- buffer. The inserted text is highlighted with
+--- `hl-PreInsert`, and the cursor position does not change
+--- (similar to `"preinsert"`). Press CTRL-Y to accept.
+--- See also `preinserted()`.
---
--- menu Use a popup menu to show the possible completions. The
--- menu is only shown when there is more than one match and
@@ -1220,22 +1231,21 @@ vim.go.cia = vim.go.completeitemalign
--- with "menu" or "menuone". Overrides "preview".
---
--- preinsert
---- When 'autocomplete' is not active, inserts the part of the
---- first candidate word beyond the current completion leader,
---- highlighted with `hl-PreInsert`. The cursor doesn't move.
---- Requires "fuzzy" unset and "menuone" in 'completeopt'.
----
---- When 'autocomplete' is active, inserts the longest common
---- prefix of matches (from all shown items or from the
---- current buffer items). This occurs only when no menu item
---- is selected. Press CTRL-Y to accept.
+--- Inserts the text of the first completion candidate
+--- beyond the current leader, highlighted with `hl-PreInsert`.
+--- The cursor does not move.
+--- Requires "fuzzy" to be unset, and either "menuone" in
+--- 'completeopt' or 'autocomplete' enabled. When
+--- 'autocomplete' is enabled, this does not work if
+--- 'ignorecase' is set without 'infercase'.
+--- See also `preinserted()`.
---
--- preview Show extra information about the currently selected
--- completion in the preview window. Only works in
--- combination with "menu" or "menuone".
---
---- Only "fuzzy", "popup", "preinsert" and "preview" have an effect when
---- 'autocomplete' is enabled.
+--- Only "fuzzy", "longest", "popup", "preinsert" and "preview" have an
+--- effect when 'autocomplete' is enabled.
---
--- This option does not apply to `cmdline-completion`. See 'wildoptions'
--- for that.