aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorElwardi <elwardifadeli@gmail.com>2022-01-08 00:02:28 +0100
committerStephan Seitz <stephan.seitz@fau.de>2022-01-08 13:20:52 +0100
commit99d4d7e2d8c224089b30531592f9ae35a2313964 (patch)
tree130b125d6f7826d6c3bdabf06518a0cd44141ab3
parentfix(foam): Foam switched to C scanner (diff)
downloadnvim-treesitter-99d4d7e2d8c224089b30531592f9ae35a2313964.tar
nvim-treesitter-99d4d7e2d8c224089b30531592f9ae35a2313964.tar.gz
nvim-treesitter-99d4d7e2d8c224089b30531592f9ae35a2313964.tar.bz2
nvim-treesitter-99d4d7e2d8c224089b30531592f9ae35a2313964.tar.lz
nvim-treesitter-99d4d7e2d8c224089b30531592f9ae35a2313964.tar.xz
nvim-treesitter-99d4d7e2d8c224089b30531592f9ae35a2313964.tar.zst
nvim-treesitter-99d4d7e2d8c224089b30531592f9ae35a2313964.zip
Better ftdetect for OpenFOAM
-rw-r--r--after/ftdetect/foam.vim23
1 files changed, 18 insertions, 5 deletions
diff --git a/after/ftdetect/foam.vim b/after/ftdetect/foam.vim
index 56cf98263..7019834f7 100644
--- a/after/ftdetect/foam.vim
+++ b/after/ftdetect/foam.vim
@@ -1,13 +1,26 @@
-" Last Change: 2021 Dec 13
+" Last Change: 2022 Jan 08
function! s:foamFile(path)
- let l:lines = getline(1, 10)
+ " Return if file type already set
+ if (&filetype == 'foam')
+ return
+ endif
+
+ let l:lines = getline(1, 15)
+ let l:f = -1
+ let l:o = -1
for line in lines
- if match(line, 'FoamFile') >= 0
- set filetype=foam
+ if (match(line, 'FoamFile') >= 0)
+ let l:f = index(lines, line)
+ endif
+ if (match(line, 'object') >= 0)
+ let l:o = index(lines, line)
endif
endfor
+ if ((l:o >= 0) && (l:f) && (l:o > l:f))
+ set filetype=foam
+ endif
endfunction
-autocmd BufNewFile,BufRead *Dict,*Properties,fvSchemes,fvSolution,*/constant/g,*/0/* call s:foamFile(expand("%"))
autocmd FileType cpp call s:foamFile(expand("%"))
+autocmd BufNewFile,BufRead *Dict,*Properties,fvSchemes,fvSolution,*/constant/g,*/0/* call s:foamFile(expand("%"))