diff --git a/runtime/doc/vimfn.txt b/runtime/doc/vimfn.txt index 02004c3548..4f3e69bfe3 100644 --- a/runtime/doc/vimfn.txt +++ b/runtime/doc/vimfn.txt @@ -1872,6 +1872,7 @@ executable({expr}) *executable()* then the name is also tried without adding an extension. On MS-Windows it only checks if the file exists and is not a directory, not if it's really executable. + On MS-Windows an executable in the same directory as the Vim executable is always found (it's added to $PATH at |startup|). *NoDefaultCurrentDirectoryInExePath* diff --git a/runtime/lua/vim/_meta/vimfn.lua b/runtime/lua/vim/_meta/vimfn.lua index 018453e5d2..f8c0ea337c 100644 --- a/runtime/lua/vim/_meta/vimfn.lua +++ b/runtime/lua/vim/_meta/vimfn.lua @@ -1647,6 +1647,7 @@ function vim.fn.eventhandler() end --- then the name is also tried without adding an extension. --- On MS-Windows it only checks if the file exists and is not a --- directory, not if it's really executable. +--- --- On MS-Windows an executable in the same directory as the Vim --- executable is always found (it's added to $PATH at |startup|). --- *NoDefaultCurrentDirectoryInExePath* diff --git a/src/nvim/drawscreen.c b/src/nvim/drawscreen.c index 543b97e31e..cf70ad8bdf 100644 --- a/src/nvim/drawscreen.c +++ b/src/nvim/drawscreen.c @@ -684,6 +684,8 @@ int update_screen(void) if (pum_drawn() && must_redraw_pum) { win_check_ns_hl(curwin); pum_redraw(); + } else if (State & MODE_CMDLINE) { + pum_check_clear(); } win_check_ns_hl(NULL); diff --git a/src/nvim/eval.lua b/src/nvim/eval.lua index 8a1ede1c87..310816d488 100644 --- a/src/nvim/eval.lua +++ b/src/nvim/eval.lua @@ -2158,6 +2158,7 @@ M.funcs = { then the name is also tried without adding an extension. On MS-Windows it only checks if the file exists and is not a directory, not if it's really executable. + On MS-Windows an executable in the same directory as the Vim executable is always found (it's added to $PATH at |startup|). *NoDefaultCurrentDirectoryInExePath* diff --git a/test/functional/legacy/cmdline_spec.lua b/test/functional/legacy/cmdline_spec.lua index a84642e9c5..cfaafa3695 100644 --- a/test/functional/legacy/cmdline_spec.lua +++ b/test/functional/legacy/cmdline_spec.lua @@ -579,11 +579,12 @@ describe('cmdline', function() -- pum is closed when no completion candidates are available feed('') - screen:expect([[ + local s3 = [[ | {1:~ }|*8 :TestCmd ax^ | - ]]) + ]] + screen:expect(s3) feed('') screen:expect(s1) @@ -598,6 +599,16 @@ describe('cmdline', function() {1:~ }|*8 | ]]) + + feed(':TestCmd a') + screen:expect(s1) + command('redraw') + screen:expect_unchanged() + feed('x') + screen:expect(s2) + -- outdated pum is closed by :redraw #36808 + command('redraw') + screen:expect(s3) end) -- oldtest: Test_long_line_noselect()