vim-patch:9.1.1194: filetype: false positive help filetype detection

Problem:  filetype: false positive help filetype detection
Solution: Only detect a file as help if modeline appears either at start
          of line or is preceded by whitespace (zeertzjq).

closes: vim/vim#16845

6763b0ee95
This commit is contained in:
zeertzjq
2025-03-11 06:23:12 +08:00
parent 4281a514e9
commit 4533c40786
2 changed files with 12 additions and 1 deletions

View File

@@ -2417,7 +2417,7 @@ local pattern = {
['^%.?gtkrc'] = starsetf('gtkrc'),
['/doc/.*%.txt$'] = function(_, bufnr)
local line = M._getline(bufnr, -1)
local ml = line:find('vim:')
local ml = line:find('^vim:') or line:find('%svim:')
if ml and M._matchregex(line:sub(ml), [[\<\(ft\|filetype\)=help\>]]) then
return 'help'
end

View File

@@ -1628,11 +1628,22 @@ func Test_help_file()
call assert_equal('help', &filetype)
bwipe!
call writefile(['some text', 'Copyright: |manual-copyright| vim:ft=help:'],
\ 'doc/help1.txt', 'D')
split doc/help1.txt
call assert_equal('help', &filetype)
bwipe!
call writefile(['some text'], 'doc/nothelp.txt', 'D')
split doc/nothelp.txt
call assert_notequal('help', &filetype)
bwipe!
call writefile(['some text', '`vim:ft=help`'], 'doc/nothelp1.txt', 'D')
split doc/nothelp1.txt
call assert_notequal('help', &filetype)
bwipe!
filetype off
set modeline&
endfunc