diff runtime/autoload/dist/ft.vim @ 27070:b353bd9faec8 v8.2.4064

patch 8.2.4064: foam files are not detected Commit: https://github.com/vim/vim/commit/2284f6cca384e0ccc352bfec7277dc26386cac3d Author: Elwardi <elwardifadeli@gmail.com> Date: Tue Jan 11 18:14:23 2022 +0000 patch 8.2.4064: foam files are not detected Problem: Foam files are not detected. Solution: Detect the foam filetype by the path and file contents. (Mohammed Elwardi Fadeli, closes #9501)
author Bram Moolenaar <Bram@vim.org>
date Tue, 11 Jan 2022 19:15:04 +0100
parents f0d7cb510ce3
children b19230a8d40a
line wrap: on
line diff
--- a/runtime/autoload/dist/ft.vim
+++ b/runtime/autoload/dist/ft.vim
@@ -829,6 +829,23 @@ func dist#ft#Dep3patch()
   endfor
 endfunc
 
+" This function checks the first 15 lines for appearance of 'FoamFile'
+" and then 'object' in a following line.
+" In that case, it's probably an OpenFOAM file
+func dist#ft#FTfoam()
+    let ffile = 0
+    let lnum = 1
+    while lnum <= 15
+      if getline(lnum) =~# '^FoamFile'
+	let ffile = 1
+      elseif ffile == 1 && getline(lnum) =~# '^\s*object'
+	setf foam
+	return
+      endif
+      let lnum = lnum + 1
+    endwhile
+endfunc
+
 " Restore 'cpoptions'
 let &cpo = s:cpo_save
 unlet s:cpo_save