]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
runtime(vim): Fix for :VimKeywordPrg when syntax does not match
authorMark Woods <mwoods.online.ie@gmail.com>
Tue, 3 Feb 2026 14:48:58 +0000 (14:48 +0000)
committerChristian Brabandt <cb@256bit.org>
Tue, 3 Feb 2026 14:48:58 +0000 (14:48 +0000)
When using vim9-syntax plugin, :VimKeywordPrg does not lookup functions
correctly, as it relies solely on syntax names to find the help topic.

The syntax keyword used for builtin function is vi9FuncNameBuiltin in
vim9-syntax plugin, not vimFuncName expected by :VimKeywordPrg, so the
fallback rules apply, and there is no fallback rule for function calls.

Fix by just checking if the first char after topic is '(', and if so
assume help topic is a function.

closes: #19320

Signed-off-by: Mark Woods <mwoods.online.ie@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
runtime/ftplugin/vim.vim

index 05aeac4ce73ad99023c7545b2fe69fc52f2ec0d2..72a87d1802fd991757c4793fe96529a645e45fde 100644 (file)
@@ -12,6 +12,7 @@
 " 2025 Aug 12 by Vim Project (improve vimgoto script #17970))
 " 2025 Aug 16 by Vim Project set com depending on Vim9 or legacy script
 " 2026 Jan 26 by Vim Project set path to common Vim directories #19219
+" 2026 Feb 03 by Vim Project update s:Help to improve detecting functions #19320
 
 " Only do this when not done yet for this buffer
 if exists("b:did_ftplugin")
@@ -89,7 +90,9 @@ if !exists("*" .. expand("<SID>") .. "Help")
       endif
     endif
 
-    if pre =~# '^\s*:\=$' || pre =~# '\%(\\\||\)\@<!|\s*:\=$'
+    if stridx(post, '(') == 0
+      return topic .. '()'
+    elseif pre =~# '^\s*:\=$' || pre =~# '\%(\\\||\)\@<!|\s*:\=$'
       return ':' .. topic
     elseif pre =~# '\<v:$'
       return 'v:' .. topic