mirror of
https://github.com/vim/vim
synced 2025-07-16 01:01:58 +00:00
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:
committed by
Bram Moolenaar
parent
fbf4f1ca15
commit
bd8168c770
15
runtime/autoload/dist/ft.vim
vendored
15
runtime/autoload/dist/ft.vim
vendored
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -750,6 +750,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
4238,
|
||||
/**/
|
||||
4237,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user