mirror of
https://github.com/neovim/neovim.git
synced 2026-01-05 21:07:44 +00:00
vim-patch:9.1.1638: completion: not possible to delay the autcompletion
Problem: completion: not possible to delay the autcompletion
Solution: add the 'autocompletedelay' option value (Girish Palya).
This patch introduces a new global option 'autocompletedelay'/'acl' that
specifies the delay, in milliseconds, before the autocomplete menu
appears after typing.
When set to a non-zero value, Vim waits for the specified time before
showing the completion popup, allowing users to reduce distraction from
rapid suggestion pop-ups or to fine-tune the responsiveness of
completion.
The default value is 0, which preserves the current immediate-popup
behavior.
closes: vim/vim#17960
a09b1604d4
N/A patch: vim-patch:9.1.1641: a few compiler warnings are output
Co-authored-by: Girish Palya <girishji@gmail.com>
This commit is contained in:
@@ -1409,4 +1409,98 @@ describe('completion', function()
|
||||
{5:-- INSERT --} 4,6 All |
|
||||
]])
|
||||
end)
|
||||
|
||||
-- oldtest: Test_autocompletedelay()
|
||||
it("'autocompletedelay' option", function()
|
||||
source([[
|
||||
call setline(1, ['foo', 'foobar', 'foobarbaz'])
|
||||
set autocomplete
|
||||
]])
|
||||
screen:try_resize(60, 10)
|
||||
|
||||
feed('Gof')
|
||||
screen:expect([[
|
||||
foo |
|
||||
foobar |
|
||||
foobarbaz |
|
||||
f^ |
|
||||
{4:foobarbaz }{1: }|
|
||||
{4:foobar }{1: }|
|
||||
{4:foo }{1: }|
|
||||
{1:~ }|*2
|
||||
{5:-- INSERT --} |
|
||||
]])
|
||||
|
||||
feed('<Esc>')
|
||||
command('set autocompletedelay=500')
|
||||
feed('Sf')
|
||||
screen:expect([[
|
||||
foo |
|
||||
foobar |
|
||||
foobarbaz |
|
||||
f^ |
|
||||
{1:~ }|*5
|
||||
{5:-- INSERT --} |
|
||||
]])
|
||||
feed('o')
|
||||
screen:expect([[
|
||||
foo |
|
||||
foobar |
|
||||
foobarbaz |
|
||||
fo^ |
|
||||
{1:~ }|*5
|
||||
{5:-- INSERT --} |
|
||||
]])
|
||||
vim.uv.sleep(500)
|
||||
screen:expect([[
|
||||
foo |
|
||||
foobar |
|
||||
foobarbaz |
|
||||
fo^ |
|
||||
{4:foobarbaz }{1: }|
|
||||
{4:foobar }{1: }|
|
||||
{4:foo }{1: }|
|
||||
{1:~ }|*2
|
||||
{5:-- INSERT --} |
|
||||
]])
|
||||
feed('<BS>')
|
||||
screen:expect([[
|
||||
foo |
|
||||
foobar |
|
||||
foobarbaz |
|
||||
f^ |
|
||||
{1:~ }|*5
|
||||
{5:-- INSERT --} |
|
||||
]])
|
||||
vim.uv.sleep(500)
|
||||
screen:expect([[
|
||||
foo |
|
||||
foobar |
|
||||
foobarbaz |
|
||||
f^ |
|
||||
{4:foobarbaz }{1: }|
|
||||
{4:foobar }{1: }|
|
||||
{4:foo }{1: }|
|
||||
{1:~ }|*2
|
||||
{5:-- INSERT --} |
|
||||
]])
|
||||
|
||||
-- During delay wait, user can open menu using CTRL_N completion
|
||||
feed('<Esc>')
|
||||
command('set completeopt=menuone,preinsert')
|
||||
feed('Sf<C-N>')
|
||||
screen:expect([[
|
||||
foo |
|
||||
foobar |
|
||||
foobarbaz |
|
||||
f^oo |
|
||||
{12:foo }{1: }|
|
||||
{4:foobar }{1: }|
|
||||
{4:foobarbaz }{1: }|
|
||||
{1:~ }|*2
|
||||
{5:-- Keyword completion (^N^P) }{6:match 1 of 3} |
|
||||
]])
|
||||
|
||||
feed('<esc>')
|
||||
end)
|
||||
end)
|
||||
|
||||
Reference in New Issue
Block a user