diff runtime/scripts.vim @ 17188:93cb37b45636 v8.1.1593

patch 8.1.1593: filetype not detected for C++ header files without extension commit https://github.com/vim/vim/commit/6a7af8e2dbcb768a768831d9e6355c855c215ebc Author: Bram Moolenaar <Bram@vim.org> Date: Tue Jun 25 21:34:26 2019 +0200 patch 8.1.1593: filetype not detected for C++ header files without extension Problem: Filetype not detected for C++ header files without extension. Solution: Recognize the file by the Emacs file mode. (Dmitry Ilyin, closes #4593)
author Bram Moolenaar <Bram@vim.org>
date Tue, 25 Jun 2019 21:45:05 +0200
parents acd7eaa13d2b
children 432714f5c0f7
line wrap: on
line diff
--- a/runtime/scripts.vim
+++ b/runtime/scripts.vim
@@ -195,7 +195,7 @@ else
   if s:line1 =~# '^:$'
     call dist#ft#SetFileTypeSH(s:line1)	" defined in filetype.vim
 
-    " Z shell scripts
+  " Z shell scripts
   elseif s:line1 =~# '^#compdef\>' || s:line1 =~# '^#autoload\>' ||
         \ "\n".s:line1."\n".s:line2."\n".s:line3."\n".s:line4."\n".s:line5 =~# '\n\s*emulate\s\+\%(-[LR]\s\+\)\=[ckz]\=sh\>'
     set ft=zsh
@@ -204,15 +204,20 @@ else
   elseif s:line1 =~# '^From \([a-zA-Z][a-zA-Z_0-9\.=-]*\(@[^ ]*\)\=\|-\) .* \(19\|20\)\d\d$'
     set ft=mail
 
-    " Mason
+  " Mason
   elseif s:line1 =~# '^<[%&].*>'
     set ft=mason
 
-    " Vim scripts (must have '" vim' as the first line to trigger this)
+  " Vim scripts (must have '" vim' as the first line to trigger this)
   elseif s:line1 =~# '^" *[vV]im$'
     set ft=vim
 
-    " MOO
+  " libcxx and libstdc++ standard library headers like "iostream" do not have
+  " an extension, recognize the Emacs file mode.
+  elseif s:line1 =~? '-\*-.*C++.*-\*-'
+    set ft=cpp
+
+  " MOO
   elseif s:line1 =~# '^\*\* LambdaMOO Database, Format Version \%([1-3]\>\)\@!\d\+ \*\*$'
     set ft=moo