nvim-treesitter/after/ftdetect/foam.vim
2022-01-08 13:20:52 +01:00

26 lines
697 B
VimL

" Last Change: 2022 Jan 08
function! s:foamFile(path)
" 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)
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 FileType cpp call s:foamFile(expand("%"))
autocmd BufNewFile,BufRead *Dict,*Properties,fvSchemes,fvSolution,*/constant/g,*/0/* call s:foamFile(expand("%"))