]> granicus.if.org Git - vim/commitdiff
patch 8.2.4238: *.tf file could be fileytpe "tf" or "terraform" v8.2.4238
author=?UTF-8?q?Dundar=20G=C3=B6c?= <gocdundar@gmail.com>
Fri, 28 Jan 2022 14:15:09 +0000 (14:15 +0000)
committerBram Moolenaar <Bram@vim.org>
Fri, 28 Jan 2022 14:15:09 +0000 (14:15 +0000)
Problem:    *.tf file could be fileytpe "tf" or "terraform".
Solution:   Detect the type from the file contents. (closes #9642)

runtime/autoload/dist/ft.vim
runtime/filetype.vim
src/testdir/test_filetype.vim
src/version.c

index 69712046a5445d7da4cbb89408de2606be53d34d..86c71fa52dba901bbe0b8e453b00e14be796bd89 100644 (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
index aa69c7947f44e643ec7923acaf0dfa32a87c10bf..9847c62c2c2eeabd792b81776616dabc4cb806ab 100644 (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
index 2490377ea25672a6551a6dc6b0a195ba794c527f..34c90205f8f3bf9e7238ad86ff3027c4877f121a 100644 (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
 
index 04afe9586cbbb71fe927da271c1b3dde3f56c2fd..fa2c41925955a17a8da340834291847b0e442bd6 100644 (file)
@@ -750,6 +750,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    4238,
 /**/
     4237,
 /**/