patch 8.2.4238: *.tf file could be fileytpe "tf" or "terraform"

Problem:    *.tf file could be fileytpe "tf" or "terraform".
Solution:   Detect the type from the file contents. (closes #9642)
This commit is contained in:
=?UTF-8?q?Dundar=20G=C3=B6c?=
2022-01-28 14:15:09 +00:00
committed by Bram Moolenaar
parent fbf4f1ca15
commit bd8168c770
4 changed files with 41 additions and 3 deletions

View File

@ -862,6 +862,21 @@ func dist#ft#FTfoam()
endwhile
endfunc
" Determine if a *.tf file is TF mud client or terraform
func dist#ft#FTtf()
let numberOfLines = line('$')
for i in range(1, numberOfLines)
let currentLine = trim(getline(i))
let firstCharacter = currentLine[0]
if firstCharacter !=? ";" && firstCharacter !=? "/" && firstCharacter !=? ""
setf terraform
return
endif
endfor
setf tf
endfunc
" Restore 'cpoptions'
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@ -1946,10 +1946,13 @@ au BufNewFile,BufRead texmf.cnf setf texmf
au BufNewFile,BufRead .tidyrc,tidyrc,tidy.conf setf tidy
" TF mud client
au BufNewFile,BufRead *.tf,.tfrc,tfrc setf tf
au BufNewFile,BufRead .tfrc,tfrc setf tf
" TF mud client or terraform
au BufNewFile,BufRead *.tf call dist#ft#FTtf()
" TLA+
au BufRead,BufNewFile *.tla setf tla
au BufNewFile,BufRead *.tla setf tla
" tmux configuration
au BufNewFile,BufRead {.,}tmux*.conf setf tmux
@ -1958,7 +1961,7 @@ au BufNewFile,BufRead {.,}tmux*.conf setf tmux
au BufNewFile,BufRead *.toml setf toml
" TPP - Text Presentation Program
au BufNewFile,BufReadPost *.tpp setf tpp
au BufNewFile,BufRead *.tpp setf tpp
" Treetop
au BufRead,BufNewFile *.treetop setf treetop

View File

@ -771,6 +771,24 @@ func Test_hook_file()
filetype off
endfunc
func Test_tf_file()
filetype on
call writefile([';;; TF MUD client is super duper cool'], 'Xfile.tf')
split Xfile.tf
call assert_equal('tf', &filetype)
bwipe!
call writefile(['provider "azurerm" {'], 'Xfile.tf')
split Xfile.tf
call assert_equal('terraform', &filetype)
bwipe!
call delete('Xfile.tf')
filetype off
endfunc
func Test_ts_file()
filetype on

View File

@ -750,6 +750,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
4238,
/**/
4237,
/**/