]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 9.1.1186: filetype: help files in git repos are not detected v9.1.1186
authorDavid Mandelberg <david@mandelberg.org>
Sat, 8 Mar 2025 16:21:16 +0000 (17:21 +0100)
committerChristian Brabandt <cb@256bit.org>
Sat, 8 Mar 2025 16:21:16 +0000 (17:21 +0100)
Problem:  filetype: help files in git repos are not detected
Solution: detect */doc/*.txt files as help if they end with a help
          modeline, even if 'modeline' is off

Here's how I checked that this would still detect vim's own help files
correctly:

$ find . -type f -path '*/doc/*.txt' \
> -exec awk '{ } ENDFILE { print FILENAME ":" $0; }' '{}' + |
> grep -v 'vim:.*\<\(ft\|filetype\)=help\>'
./src/libvterm/doc/seqs.txt: 23    DECSM 42         = DECNRCM, national/multinational character

closes: #16817

Signed-off-by: David Mandelberg <david@mandelberg.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
runtime/doc/todo.txt
runtime/filetype.vim
src/testdir/test_filetype.vim
src/version.c

index 9bdcfe0e3ed1e76ba370360efe68262dcb8086ac..cf9a82ac45761297507b59db535a74dab5828a42 100644 (file)
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 9.1.  Last change: 2025 Feb 21
+*todo.txt*      For Vim version 9.1.  Last change: 2025 Mar 08
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -6276,5 +6276,4 @@ Far future and "big" extensions:
     are reflected in each Vim immediately.  Could work with local files but
     also over the internet.  See http://www.codingmonkeys.de/subethaedit/.
 
-vim:tw=78:sw=4:sts=4:ts=8:noet:ft=help:norl:
-vim: set fo+=n :
+vim:tw=78:sw=4:sts=4:ts=8:noet:ft=help:norl:fo+=n:
index 8b4091ae7911a5c79cf66a70a7552c08dd339968..0ee875ca73eb7b640d09be4c4d623469d0a4b0fb 100644 (file)
@@ -1,7 +1,7 @@
 " Vim support file to detect file types
 "
 " Maintainer:  The Vim Project <https://github.com/vim/vim>
-" Last Change: 2025 Mar 06
+" Last Change: 2025 Mar 08
 " Former Maintainer:   Bram Moolenaar <Bram@vim.org>
 
 " Listen very carefully, I will say this only once
@@ -51,8 +51,11 @@ func s:StarSetf(ft)
   endif
 endfunc
 
-" Vim help file
-au BufNewFile,BufRead $VIMRUNTIME/doc/*.txt    setf help
+" Vim help file, set ft explicitly, because 'modeline' might be off
+au BufNewFile,BufRead */doc/*.txt
+       \  if getline('$') =~ 'vim:.*\<\(ft\|filetype\)=help\>'
+       \|   setf help
+       \| endif
 
 " Abaqus or Trasys
 au BufNewFile,BufRead *.inp                    call dist#ft#Check_inp()
index b6beb3f5d39de74ed0007cd209775d0dd2d037c8..521c0f60daac93afeb490962ccb3021b745801c3 100644 (file)
@@ -919,8 +919,6 @@ def s:GetFilenameChecks(): dict<list<string>>
           '.zcompdump', '.zlogin', '.zlogout', '.zshenv', '.zshrc', '.zsh_history',
           '.zcompdump-file', '.zlog', '.zlog-file', '.zsh', '.zsh-file',
           'any/etc/zprofile', 'zlog', 'zlog-file', 'zsh', 'zsh-file'],
-
-    help: [$VIMRUNTIME .. '/doc/help.txt'],
     }
 enddef
 
@@ -1626,6 +1624,23 @@ func Test_haredoc_file()
   filetype off
 endfunc
 
+func Test_help_file()
+  filetype on
+  call assert_true(mkdir('doc', 'pR'))
+
+  call writefile(['some text', 'vim:ft=help:'], 'doc/help.txt', 'D')
+  split doc/help.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!
+
+  filetype off
+endfunc
+
 func Test_hook_file()
   filetype on
 
index 1bfcbcbd0b4153da1d7841b26760917e114b335d..5536a9b48a63443a80916f96054cb757ff81f08d 100644 (file)
@@ -704,6 +704,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1186,
 /**/
     1185,
 /**/