Skip to content

Commit

Permalink
patch 8.2.4238: *.tf file could be fileytpe "tf" or "terraform"
Browse files Browse the repository at this point in the history
Problem:    *.tf file could be fileytpe "tf" or "terraform".
Solution:   Detect the type from the file contents. (closes #9642)
  • Loading branch information
dundargoc authored and brammool committed Jan 28, 2022
1 parent fbf4f1c commit bd8168c
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 3 deletions.
15 changes: 15 additions & 0 deletions runtime/autoload/dist/ft.vim
Original file line number Diff line number Diff line change
Expand Up @@ -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
9 changes: 6 additions & 3 deletions runtime/filetype.vim
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down
18 changes: 18 additions & 0 deletions src/testdir/test_filetype.vim
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
2 changes: 2 additions & 0 deletions src/version.c
Original file line number Diff line number Diff line change
Expand Up @@ -750,6 +750,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
/**/
4238,
/**/
4237,
/**/
Expand Down

0 comments on commit bd8168c

Please sign in to comment.