diff options
Diffstat (limited to 'autoload/terraform.vim')
-rw-r--r-- | autoload/terraform.vim | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/autoload/terraform.vim b/autoload/terraform.vim new file mode 100644 index 00000000..210ee59f --- /dev/null +++ b/autoload/terraform.vim @@ -0,0 +1,25 @@ +if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'terraform') != -1 + finish +endif + +" Adapted from vim-hclfmt: +" https://github.com/fatih/vim-hclfmt/blob/master/autoload/fmt.vim +function! terraform#fmt() + if !filereadable(expand('%:p')) + return + endif + let l:curw = winsaveview() + let l:tmpfile = tempname() . '.tf' + call writefile(getline(1, '$'), l:tmpfile) + let output = system('terraform fmt -write ' . l:tmpfile) + if v:shell_error == 0 + try | silent undojoin | catch | endtry + call rename(l:tmpfile, resolve(expand('%'))) + silent edit! + let &syntax = &syntax + else + echo output + call delete(l:tmpfile) + endif + call winrestview(l:curw) +endfunction |