summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author=?UTF-8?q?Dundar=20G=C3=B6c?= <gocdundar@gmail.com>2022-01-28 14:15:09 +0000
committerBram Moolenaar <Bram@vim.org>2022-01-28 14:15:09 +0000
commitbd8168c7705e315827642f2976ec59e26b7fe009 (patch)
tree804c303b3236ccf80ad03a3d891642cd76c8d5ee
parentfbf4f1ca159028382eaeb3bfc31bb6bb96dbb67a (diff)
downloadvim-git-bd8168c7705e315827642f2976ec59e26b7fe009.tar.gz
patch 8.2.4238: *.tf file could be fileytpe "tf" or "terraform"v8.2.4238
Problem: *.tf file could be fileytpe "tf" or "terraform". Solution: Detect the type from the file contents. (closes #9642)
-rw-r--r--runtime/autoload/dist/ft.vim15
-rw-r--r--runtime/filetype.vim9
-rw-r--r--src/testdir/test_filetype.vim18
-rw-r--r--src/version.c2
4 files changed, 41 insertions, 3 deletions
diff --git a/runtime/autoload/dist/ft.vim b/runtime/autoload/dist/ft.vim
index 69712046a..86c71fa52 100644
--- a/runtime/autoload/dist/ft.vim
+++ b/runtime/autoload/dist/ft.vim
@@ -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
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index aa69c7947..9847c62c2 100644
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -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
diff --git a/src/testdir/test_filetype.vim b/src/testdir/test_filetype.vim
index 2490377ea..34c90205f 100644
--- a/src/testdir/test_filetype.vim
+++ b/src/testdir/test_filetype.vim
@@ -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
diff --git a/src/version.c b/src/version.c
index 04afe9586..fa2c41925 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 4238,
+/**/
4237,
/**/
4236,