Squashed 'vim/bundle/hashicorp-tools/' content from commit 76c076659
git-subtree-dir: vim/bundle/hashicorp-tools git-subtree-split: 76c076659f4c32b8b95e797fafe748daa7792d16main
						commit
						b1aadf6780
					
				@ -0,0 +1,11 @@
 | 
			
		||||
root = true
 | 
			
		||||
 | 
			
		||||
[*]
 | 
			
		||||
indent_style = space
 | 
			
		||||
indent_size = 2
 | 
			
		||||
charset = utf-8
 | 
			
		||||
trim_trailing_whitespace = true
 | 
			
		||||
insert_final_newline = true
 | 
			
		||||
 | 
			
		||||
[*.md]
 | 
			
		||||
trim_trailing_whitespace = false
 | 
			
		||||
@ -0,0 +1 @@
 | 
			
		||||
/doc/tags
 | 
			
		||||
@ -0,0 +1,45 @@
 | 
			
		||||
# Contributor Code of Conduct
 | 
			
		||||
 | 
			
		||||
As contributors and maintainers of this project, and in the interest of
 | 
			
		||||
fostering an open and welcoming community, we pledge to respect all people who
 | 
			
		||||
contribute through reporting issues, posting feature requests, updating
 | 
			
		||||
documentation, submitting pull requests or patches, and other activities.
 | 
			
		||||
 | 
			
		||||
We are committed to making participation in this project a harassment-free
 | 
			
		||||
experience for everyone, regardless of level of experience, gender, gender
 | 
			
		||||
identity and expression, sexual orientation, disability, personal appearance,
 | 
			
		||||
body size, race, ethnicity, age, religion, or nationality.
 | 
			
		||||
 | 
			
		||||
Examples of unacceptable behavior by participants include:
 | 
			
		||||
 | 
			
		||||
-   The use of sexualized language or imagery
 | 
			
		||||
 | 
			
		||||
-   Personal attacks
 | 
			
		||||
 | 
			
		||||
-   Trolling or insulting/derogatory comments
 | 
			
		||||
 | 
			
		||||
-   Public or private harassment
 | 
			
		||||
 | 
			
		||||
-   Publishing other's private information, such as physical or electronic
 | 
			
		||||
    addresses, without explicit permission
 | 
			
		||||
 | 
			
		||||
-   Other unethical or unprofessional conduct.
 | 
			
		||||
 | 
			
		||||
Project maintainers have the right and responsibility to remove, edit, or reject
 | 
			
		||||
comments, commits, code, wiki edits, issues, and other contributions that are
 | 
			
		||||
not aligned to this Code of Conduct. By adopting this Code of Conduct, project
 | 
			
		||||
maintainers commit themselves to fairly and consistently applying these
 | 
			
		||||
principles to every aspect of managing this project. Project maintainers who do
 | 
			
		||||
not follow or enforce the Code of Conduct may be permanently removed from the
 | 
			
		||||
project team.
 | 
			
		||||
 | 
			
		||||
This code of conduct applies both within project spaces and in public spaces
 | 
			
		||||
when an individual is representing the project or its community.
 | 
			
		||||
 | 
			
		||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
 | 
			
		||||
reported by opening an issue or contacting one or more of the project
 | 
			
		||||
maintainers.
 | 
			
		||||
 | 
			
		||||
This Code of Conduct is adapted from the [Contributor
 | 
			
		||||
Covenant](http://contributor-covenant.org), version 1.2.0, available at
 | 
			
		||||
<http://contributor-covenant.org/version/1/2/0/>
 | 
			
		||||
@ -0,0 +1,35 @@
 | 
			
		||||
# Contributing To My Vim Plugins
 | 
			
		||||
 | 
			
		||||
I'm not a Vim wizard by any means, nor am I too proud to accept
 | 
			
		||||
contributions that improve my code, so if you think you have a problem,
 | 
			
		||||
improvement, or other contribution towards the betterment of Vim-kind,
 | 
			
		||||
please file an issue or, where appropriate, a pull request.
 | 
			
		||||
 | 
			
		||||
Before filing an issue, please read this article by my friends and
 | 
			
		||||
former colleagues at Viget:
 | 
			
		||||
 | 
			
		||||
<https://viget.com/extend/tips-for-writing-better-bug-reports>
 | 
			
		||||
 | 
			
		||||
Keep in mind that I'm not paid to write Vim plugins, so I'm doing this
 | 
			
		||||
in my spare time, which means it might take me a while to respond. If
 | 
			
		||||
you're not satisfied with my response to your problem with my free (as
 | 
			
		||||
in beer and in speech) software, I will give you triple your $0.00 back.
 | 
			
		||||
 | 
			
		||||
When filing a pull request, please explain what you're changing and why.
 | 
			
		||||
Please limit your changes to the specific thing you're fixing; it's
 | 
			
		||||
probably easiest for both of us if you isolate your change in a topic
 | 
			
		||||
branch that I can merge without pulling in other stuff. Please do not
 | 
			
		||||
update CHANGELOG, versions, etc.; I'll take care of that. I'll also add
 | 
			
		||||
you to the Credits list with my thanks.
 | 
			
		||||
 | 
			
		||||
All of my Vim plugins use the ISC license. If you submit a pull request,
 | 
			
		||||
I'll assume you are OK with any code you add being placed under that
 | 
			
		||||
same ISC license. If this is not the case for any reason, please let me
 | 
			
		||||
know why you can't tolerate the ISC license. I am 99.99% likely to
 | 
			
		||||
reject your change in that case, but I'll let you have your say.
 | 
			
		||||
 | 
			
		||||
This project is intended to be a safe, welcoming space for collaboration, and
 | 
			
		||||
contributors are expected to adhere to the [Contributor
 | 
			
		||||
Covenant](http://contributor-covenant.org) code of conduct.
 | 
			
		||||
 | 
			
		||||
Thanks for contributing!
 | 
			
		||||
@ -0,0 +1,13 @@
 | 
			
		||||
Copyright (c) 2013-2015 Mark Cornick <mark@markcornick.com>
 | 
			
		||||
 | 
			
		||||
Permission to use, copy, modify, and/or distribute this software for any purpose
 | 
			
		||||
with or without fee is hereby granted, provided that the above copyright notice
 | 
			
		||||
and this permission notice appear in all copies.
 | 
			
		||||
 | 
			
		||||
THE SOFTWARE IS PROVIDED 'AS IS' AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
 | 
			
		||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
 | 
			
		||||
FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
 | 
			
		||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
 | 
			
		||||
OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 | 
			
		||||
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
 | 
			
		||||
THIS SOFTWARE.
 | 
			
		||||
@ -0,0 +1,48 @@
 | 
			
		||||
# Call For Maintainers
 | 
			
		||||
 | 
			
		||||
This plugin, along with others like it, is now maintained by the
 | 
			
		||||
[HashiVim](http://hashivim.github.io/) organization, which is looking for
 | 
			
		||||
additional maintainers and contributors. See the HashiVim home page for
 | 
			
		||||
further information.
 | 
			
		||||
 | 
			
		||||
# vim-hashicorp-tools
 | 
			
		||||
 | 
			
		||||
This plugin combines all of my Vim plugins supporting the various
 | 
			
		||||
[Hashicorp](https://hashicorp.com) tools into one plugin, for people who
 | 
			
		||||
are likely to use more than one or two of them and want a one-stop shop.
 | 
			
		||||
The individual plugins are:
 | 
			
		||||
 | 
			
		||||
-   [vim-consul](https://github.com/hashivim/vim-consul)
 | 
			
		||||
-   [vim-nomadproject](https://github.com/hashivim/vim-nomadproject)
 | 
			
		||||
-   [vim-ottoproject](https://github.com/hashivim/vim-ottoproject)
 | 
			
		||||
-   [vim-packer](https://github.com/hashivim/vim-packer)
 | 
			
		||||
-   [vim-terraform](https://github.com/hashivim/vim-terraform)
 | 
			
		||||
-   [vim-vagrant](https://github.com/hashivim/vim-vagrant)
 | 
			
		||||
-   [vim-vaultproject](https://github.com/hashivim/vim-vaultproject)
 | 
			
		||||
 | 
			
		||||
Please see the individual repositories above for further information
 | 
			
		||||
on each one. This repository is created by brute-force combining the
 | 
			
		||||
others with the `assemble.sh` script, so please file any issues or pull
 | 
			
		||||
requests against the individual repos, not this one. Thanks.
 | 
			
		||||
 | 
			
		||||
## Installation
 | 
			
		||||
 | 
			
		||||
With [pathogen.vim](https://github.com/tpope/vim-pathogen) just do:
 | 
			
		||||
 | 
			
		||||
    cd ~/.vim/bundle
 | 
			
		||||
    git clone https://github.com/hashivim/vim-hashicorp-tools.git
 | 
			
		||||
 | 
			
		||||
If you prefer to use something besides pathogen, go ahead.
 | 
			
		||||
 | 
			
		||||
## Credits
 | 
			
		||||
 | 
			
		||||
See individual repositories for credits for the code contained within
 | 
			
		||||
them. The code to assemble them in this repo was written by Mark Cornick
 | 
			
		||||
<https://www.markcornick.com/>. Licensed under the ISC license.
 | 
			
		||||
 | 
			
		||||
Hashicorp is a trademark of Hashicorp. The capital of Djibouti is
 | 
			
		||||
Djibouti.
 | 
			
		||||
 | 
			
		||||
This project is intended to be a safe, welcoming space for collaboration, and
 | 
			
		||||
contributors are expected to adhere to the [Contributor
 | 
			
		||||
Covenant](http://contributor-covenant.org) code of conduct.
 | 
			
		||||
@ -0,0 +1,81 @@
 | 
			
		||||
if !exists('g:terraform_align')
 | 
			
		||||
  let g:terraform_align = 0
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
if !exists('g:terraform_remap_spacebar')
 | 
			
		||||
  let g:terraform_remap_spacebar = 0
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
if !exists('g:terraform_fold_sections')
 | 
			
		||||
  let g:terraform_fold_sections = 0
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
if g:terraform_align && exists(':Tabularize')
 | 
			
		||||
  inoremap <buffer> <silent> = =<Esc>:call <SID>terraformalign()<CR>a
 | 
			
		||||
  function! s:terraformalign()
 | 
			
		||||
    let p = '^.*=[^>]*$'
 | 
			
		||||
    if exists(':Tabularize') && getline('.') =~# '^.*=' && (getline(line('.')-1) =~# p || getline(line('.')+1) =~# p)
 | 
			
		||||
      let column = strlen(substitute(getline('.')[0:col('.')],'[^=]','','g'))
 | 
			
		||||
      let position = strlen(matchstr(getline('.')[0:col('.')],'.*=\s*\zs.*'))
 | 
			
		||||
      Tabularize/=/l1
 | 
			
		||||
      normal! 0
 | 
			
		||||
      call search(repeat('[^=]*=',column).'\s\{-\}'.repeat('.',position),'ce',line('.'))
 | 
			
		||||
    endif
 | 
			
		||||
  endfunction
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
if g:terraform_fold_sections
 | 
			
		||||
  function! TerraformFolds()
 | 
			
		||||
    let thisline = getline(v:lnum)
 | 
			
		||||
    if match(thisline, '^resource') >= 0
 | 
			
		||||
      return ">1"
 | 
			
		||||
    elseif match(thisline, '^provider') >= 0
 | 
			
		||||
      return ">1"
 | 
			
		||||
    elseif match(thisline, '^module') >= 0
 | 
			
		||||
      return ">1"
 | 
			
		||||
    elseif match(thisline, '^variable') >= 0
 | 
			
		||||
      return ">1"
 | 
			
		||||
    elseif match(thisline, '^output') >= 0
 | 
			
		||||
      return ">1"
 | 
			
		||||
    elseif match(thisline, '^data') >= 0
 | 
			
		||||
      return ">1"
 | 
			
		||||
    elseif match(thisline, '^terraform') >= 0
 | 
			
		||||
      return ">1"
 | 
			
		||||
    elseif match(thisline, '^locals') >= 0
 | 
			
		||||
      return ">1"
 | 
			
		||||
    else
 | 
			
		||||
      return "="
 | 
			
		||||
    endif
 | 
			
		||||
  endfunction
 | 
			
		||||
  setlocal foldmethod=expr
 | 
			
		||||
  setlocal foldexpr=TerraformFolds()
 | 
			
		||||
  setlocal foldlevel=1
 | 
			
		||||
 | 
			
		||||
  function! TerraformFoldText()
 | 
			
		||||
    let foldsize = (v:foldend-v:foldstart)
 | 
			
		||||
    return getline(v:foldstart).' ('.foldsize.' lines)'
 | 
			
		||||
  endfunction
 | 
			
		||||
  setlocal foldtext=TerraformFoldText()
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
" Re-map the space bar to fold and unfold
 | 
			
		||||
if get(g:, "terraform_remap_spacebar", 1)
 | 
			
		||||
  "inoremap <space> <C-O>za
 | 
			
		||||
  nnoremap <space> za
 | 
			
		||||
  onoremap <space> <C-C>za
 | 
			
		||||
  vnoremap <space> zf
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
" Match the identation put in place by Hashicorp and :TerraformFmt, https://github.com/hashivim/vim-terraform/issues/21
 | 
			
		||||
if get(g:, "terraform_align", 1)
 | 
			
		||||
  setlocal tabstop=2
 | 
			
		||||
  setlocal softtabstop=2
 | 
			
		||||
  setlocal shiftwidth=2
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
" Set the commentstring
 | 
			
		||||
if exists('g:terraform_commentstring')
 | 
			
		||||
    let &l:commentstring=g:terraform_commentstring
 | 
			
		||||
else
 | 
			
		||||
    setlocal commentstring=#%s
 | 
			
		||||
endif
 | 
			
		||||
@ -0,0 +1,41 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
# WHAT: This script assembles the vim-hashicorp-tools plugin from git checkouts
 | 
			
		||||
#       of the constituent plugins, which are assumed to exist in the same
 | 
			
		||||
#       directory as vim-hashicorp-tools.
 | 
			
		||||
 | 
			
		||||
BLD=$(tput bold)
 | 
			
		||||
RST=$(tput sgr0)
 | 
			
		||||
 | 
			
		||||
for REPO in consul nomadproject ottoproject packer terraform vagrant vaultproject; do
 | 
			
		||||
    # Clone all the repositories just incase we didn't have them
 | 
			
		||||
    if [ ! -d "../vim-${REPO}" ]; then
 | 
			
		||||
        echo "${BLD}INFO: Cloning vim-${REPO}${RST}"
 | 
			
		||||
        git clone git@github.com:hashivim/vim-${REPO} ../vim-${REPO}
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    # We only want to assemble off of master
 | 
			
		||||
    if [ $(cd ../vim-${REPO} && git rev-parse --abbrev-ref HEAD) != "master" ]; then
 | 
			
		||||
        echo "${BLD}WARN: Repository vim-${REPO} did not have the master branch checked out. To get that branchs changes back, run \`stash pop\`.${RST}"
 | 
			
		||||
        git stash
 | 
			
		||||
        git checkout master
 | 
			
		||||
        git pull
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    # Hashicorp tools ASSEMBLE!
 | 
			
		||||
    echo "${BLD}INFO: Assembling ../vim-${REPO} into this repository.${RST}"
 | 
			
		||||
    rsync --archive \
 | 
			
		||||
        --exclude=.git \
 | 
			
		||||
        --exclude=*.md \
 | 
			
		||||
        --exclude=LICENSE \
 | 
			
		||||
        --exclude=*.rb \
 | 
			
		||||
        --exclude=*.sh \
 | 
			
		||||
        --exclude=.travis.yml \
 | 
			
		||||
        --exclude=Makefile \
 | 
			
		||||
        --exclude=test/ \
 | 
			
		||||
        --exclude=vader.vim/ \
 | 
			
		||||
        --exclude=terraform-providers/ \
 | 
			
		||||
        ../vim-${REPO}/ .
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
echo "${BLD}INFO: Done!${RST}"
 | 
			
		||||
git status
 | 
			
		||||
@ -0,0 +1,14 @@
 | 
			
		||||
*consul.txt*  basic vim/consul integration
 | 
			
		||||
 | 
			
		||||
Author:  HashiVim <https://github.com/hashivim>
 | 
			
		||||
License: ISC license
 | 
			
		||||
Repo:    https://github.com/hashivim/vim-consul
 | 
			
		||||
 | 
			
		||||
COMMANDS                                        *consul*
 | 
			
		||||
 | 
			
		||||
This command is only available if consul is in your PATH.
 | 
			
		||||
 | 
			
		||||
                                                *consul-:consul*
 | 
			
		||||
:Consul [args]         Invoke an arbitrary consul command.
 | 
			
		||||
 | 
			
		||||
 vim:tw=78:et:ft=help:norl:
 | 
			
		||||
@ -0,0 +1,14 @@
 | 
			
		||||
*nomadproject.txt*  basic vim/nomad integration
 | 
			
		||||
 | 
			
		||||
Author:  HashiVim <https://github.com/hashivim>
 | 
			
		||||
License: ISC license
 | 
			
		||||
Repo:    https://github.com/hashivim/vim-nomadproject
 | 
			
		||||
 | 
			
		||||
COMMANDS                                        *nomadproject*
 | 
			
		||||
 | 
			
		||||
This command is only available if nomad is in your PATH.
 | 
			
		||||
 | 
			
		||||
                                                *nomadproject-:nomad
 | 
			
		||||
:Nomad [args]         Invoke an arbitrary nomad command.
 | 
			
		||||
 | 
			
		||||
 vim:tw=78:et:ft=help:norl:
 | 
			
		||||
@ -0,0 +1,14 @@
 | 
			
		||||
*ottoproject.txt*  basic vim/otto integration
 | 
			
		||||
 | 
			
		||||
Author:  HashiVim <https://github.com/hashivim>
 | 
			
		||||
License: ISC license
 | 
			
		||||
Repo:    https://github.com/hashivim/vim-ottoproject
 | 
			
		||||
 | 
			
		||||
COMMANDS                                        *ottoproject*
 | 
			
		||||
 | 
			
		||||
This command is only available if otto is in your PATH.
 | 
			
		||||
 | 
			
		||||
                                                *ottoproject-:otto
 | 
			
		||||
:Otto [args]         Invoke an arbitrary otto command.
 | 
			
		||||
 | 
			
		||||
 vim:tw=78:et:ft=help:norl:
 | 
			
		||||
@ -0,0 +1,14 @@
 | 
			
		||||
*packer.txt*  basic vim/packer integration
 | 
			
		||||
 | 
			
		||||
Author:  HashiVim <https://github.com/hashivim>
 | 
			
		||||
License: ISC license
 | 
			
		||||
Repo:    https://github.com/hashivim/vim-packer
 | 
			
		||||
 | 
			
		||||
COMMANDS                                        *packer*
 | 
			
		||||
 | 
			
		||||
This command is only available if packer is in your PATH.
 | 
			
		||||
 | 
			
		||||
                                                *packer-:packer*
 | 
			
		||||
:Packer [args]         Invoke an arbitrary packer command.
 | 
			
		||||
 | 
			
		||||
 vim:tw=78:et:ft=help:norl:
 | 
			
		||||
@ -0,0 +1,14 @@
 | 
			
		||||
*terraform.txt*  basic vim/terraform integration
 | 
			
		||||
 | 
			
		||||
Author:  HashiVim <https://github.com/hashivim>
 | 
			
		||||
License: ISC license
 | 
			
		||||
Repo:    https://github.com/hashivim/vim-terraform
 | 
			
		||||
 | 
			
		||||
COMMANDS                                        *terraform*
 | 
			
		||||
 | 
			
		||||
This command is only available if terraform is in your PATH.
 | 
			
		||||
 | 
			
		||||
                                                *terraform-:terraform*
 | 
			
		||||
:Terraform [args]         Invoke an arbitrary terraform command.
 | 
			
		||||
 | 
			
		||||
 vim:tw=78:et:ft=help:norl:
 | 
			
		||||
@ -0,0 +1,14 @@
 | 
			
		||||
*vagrant.txt*  basic vim/vagrant integration
 | 
			
		||||
 | 
			
		||||
Author:  HashiVim <https://github.com/hashivim>
 | 
			
		||||
License: ISC license
 | 
			
		||||
Repo:    https://github.com/hashivim/vim-vagrant
 | 
			
		||||
 | 
			
		||||
COMMANDS                                        *vagrant*
 | 
			
		||||
 | 
			
		||||
This command is only available if vagrant is in your PATH.
 | 
			
		||||
 | 
			
		||||
                                                *vagrant-:Vagrant*
 | 
			
		||||
:Vagrant [args]         Invoke an arbitrary vagrant command.
 | 
			
		||||
 | 
			
		||||
 vim:tw=78:et:ft=help:norl:
 | 
			
		||||
@ -0,0 +1,14 @@
 | 
			
		||||
*vaultproject.txt*  basic vim/vault integration
 | 
			
		||||
 | 
			
		||||
Author:  HashiVim <https://github.com/hashivim>
 | 
			
		||||
License: ISC license
 | 
			
		||||
Repo:    https://github.com/hashivim/vim-vaultproject
 | 
			
		||||
 | 
			
		||||
COMMANDS                                        *vaultproject*
 | 
			
		||||
 | 
			
		||||
This command is only available if vault is in your PATH.
 | 
			
		||||
 | 
			
		||||
                                                *vaultproject-:vault
 | 
			
		||||
:Vault [args]         Invoke an arbitrary vault command.
 | 
			
		||||
 | 
			
		||||
 vim:tw=78:et:ft=help:norl:
 | 
			
		||||
@ -0,0 +1,4 @@
 | 
			
		||||
au BufRead,BufNewFile *.tf setlocal filetype=terraform
 | 
			
		||||
au BufRead,BufNewFile *.tfvars setlocal filetype=terraform
 | 
			
		||||
au BufRead,BufNewFile *.tfstate setlocal filetype=json
 | 
			
		||||
au BufRead,BufNewFile *.tfstate.backup setlocal filetype=json
 | 
			
		||||
@ -0,0 +1 @@
 | 
			
		||||
au BufRead,BufNewFile Vagrantfile set filetype=ruby
 | 
			
		||||
@ -0,0 +1,69 @@
 | 
			
		||||
" terraform.vim - basic vim/terraform integration
 | 
			
		||||
" Maintainer: HashiVim <https://github.com/hashivim>
 | 
			
		||||
 | 
			
		||||
if exists("g:loaded_terraform") || v:version < 700 || &cp || !executable('terraform')
 | 
			
		||||
  finish
 | 
			
		||||
endif
 | 
			
		||||
let g:loaded_terraform = 1
 | 
			
		||||
 | 
			
		||||
if !exists("g:terraform_fmt_on_save")
 | 
			
		||||
  let g:terraform_fmt_on_save = 0
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
function! s:commands(A, L, P)
 | 
			
		||||
  return join([
 | 
			
		||||
  \ "apply",
 | 
			
		||||
  \ "console",
 | 
			
		||||
  \ "destroy",
 | 
			
		||||
  \ "env",
 | 
			
		||||
  \ "fmt",
 | 
			
		||||
  \ "get",
 | 
			
		||||
  \ "graph",
 | 
			
		||||
  \ "import",
 | 
			
		||||
  \ "init",
 | 
			
		||||
  \ "output",
 | 
			
		||||
  \ "plan",
 | 
			
		||||
  \ "providers",
 | 
			
		||||
  \ "push",
 | 
			
		||||
  \ "refresh",
 | 
			
		||||
  \ "show",
 | 
			
		||||
  \ "taint",
 | 
			
		||||
  \ "untaint",
 | 
			
		||||
  \ "validate",
 | 
			
		||||
  \ "version",
 | 
			
		||||
  \ "workspace",
 | 
			
		||||
  \ "debug",
 | 
			
		||||
  \ "force-unlock",
 | 
			
		||||
  \ "state"
 | 
			
		||||
  \ ], "\n")
 | 
			
		||||
endfunction
 | 
			
		||||
 | 
			
		||||
" Adapted from vim-hclfmt:
 | 
			
		||||
" https://github.com/fatih/vim-hclfmt/blob/master/autoload/fmt.vim
 | 
			
		||||
function! terraform#fmt()
 | 
			
		||||
  let l:curw = winsaveview()
 | 
			
		||||
  let l:tmpfile = tempname()
 | 
			
		||||
  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
 | 
			
		||||
 | 
			
		||||
augroup terraform
 | 
			
		||||
  autocmd!
 | 
			
		||||
  autocmd BufEnter *
 | 
			
		||||
        \ command! -nargs=+ -complete=custom,s:commands Terraform execute '!terraform '.<q-args>. ' -no-color'
 | 
			
		||||
  autocmd BufEnter * command! -nargs=0 TerraformFmt call terraform#fmt()
 | 
			
		||||
  if get(g:, "terraform_fmt_on_save", 1)
 | 
			
		||||
    autocmd BufWritePre *.tf call terraform#fmt()
 | 
			
		||||
    autocmd BufWritePre *.tfvars call terraform#fmt()
 | 
			
		||||
  endif
 | 
			
		||||
augroup END
 | 
			
		||||
@ -0,0 +1,45 @@
 | 
			
		||||
" Only load this file if no other indent file was loaded
 | 
			
		||||
if exists("b:did_indent")
 | 
			
		||||
  finish
 | 
			
		||||
endif
 | 
			
		||||
let b:did_indent = 1
 | 
			
		||||
 | 
			
		||||
setlocal nolisp
 | 
			
		||||
setlocal autoindent sw=2 ts=2
 | 
			
		||||
setlocal indentexpr=TerraformIndent(v:lnum)
 | 
			
		||||
setlocal indentkeys+=<:>,0=},0=)
 | 
			
		||||
 | 
			
		||||
if exists("*TerraformIndent")
 | 
			
		||||
  finish
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
function! TerraformIndent(lnum)
 | 
			
		||||
  " Beginning of the file should have no indent
 | 
			
		||||
  if a:lnum == 0
 | 
			
		||||
    return 0
 | 
			
		||||
  endif
 | 
			
		||||
 | 
			
		||||
  " Previous non-blank line should continue the indent level
 | 
			
		||||
  let prevlnum = prevnonblank(a:lnum-1)
 | 
			
		||||
 | 
			
		||||
  " Previous line without comments should continue the indent level
 | 
			
		||||
  let prevline = substitute(getline(prevlnum), '//.*$', '', '')
 | 
			
		||||
  let previndent = indent(prevlnum)
 | 
			
		||||
  let thisindent = previndent
 | 
			
		||||
 | 
			
		||||
  " Config block starting with [ { ( should increase the indent level
 | 
			
		||||
  if prevline =~ '[\[{\(]\s*$'
 | 
			
		||||
    let thisindent += &sw
 | 
			
		||||
  endif
 | 
			
		||||
 | 
			
		||||
  " Current line without comments should continue the indent level
 | 
			
		||||
  let thisline = substitute(getline(a:lnum), '//.*$', '', '')
 | 
			
		||||
 | 
			
		||||
  " Config block ending with ) } ] should get the indentation
 | 
			
		||||
  " level from the initial config block
 | 
			
		||||
  if thisline =~ '^\s*[\)}\]]'
 | 
			
		||||
    let thisindent -= &sw
 | 
			
		||||
  endif
 | 
			
		||||
 | 
			
		||||
  return thisindent
 | 
			
		||||
endfunction
 | 
			
		||||
@ -0,0 +1,45 @@
 | 
			
		||||
" consul.vim - basic vim/consul integration
 | 
			
		||||
" Maintainer: HashiVim <https://github.com/hashivim>
 | 
			
		||||
 | 
			
		||||
if exists("g:loaded_consul") || v:version < 700 || &cp || !executable('consul')
 | 
			
		||||
  finish
 | 
			
		||||
endif
 | 
			
		||||
let g:loaded_consul = 1
 | 
			
		||||
 | 
			
		||||
function! s:commands(A, L, P)
 | 
			
		||||
  return join([
 | 
			
		||||
  \ "agent",
 | 
			
		||||
  \ "catalog",
 | 
			
		||||
  \ "connect",
 | 
			
		||||
  \ "event",
 | 
			
		||||
  \ "exec",
 | 
			
		||||
  \ "force-leave",
 | 
			
		||||
  \ "info",
 | 
			
		||||
  \ "intention",
 | 
			
		||||
  \ "join",
 | 
			
		||||
  \ "keygen",
 | 
			
		||||
  \ "keyring",
 | 
			
		||||
  \ "kv",
 | 
			
		||||
  \ "leave",
 | 
			
		||||
  \ "lock",
 | 
			
		||||
  \ "maint",
 | 
			
		||||
  \ "members",
 | 
			
		||||
  \ "monitor",
 | 
			
		||||
  \ "operator",
 | 
			
		||||
  \ "reload",
 | 
			
		||||
  \ "rtt",
 | 
			
		||||
  \ "services",
 | 
			
		||||
  \ "snapshot",
 | 
			
		||||
  \ "validate",
 | 
			
		||||
  \ "version",
 | 
			
		||||
  \ "watch"
 | 
			
		||||
  \ ], "\n")
 | 
			
		||||
endfunction
 | 
			
		||||
 | 
			
		||||
augroup consul
 | 
			
		||||
  autocmd!
 | 
			
		||||
  autocmd VimEnter *
 | 
			
		||||
        \ command! -nargs=+ -complete=custom,s:commands Consul execute '!consul '.<q-args>
 | 
			
		||||
augroup END
 | 
			
		||||
 | 
			
		||||
" vim:set et sw=2:
 | 
			
		||||
@ -0,0 +1,38 @@
 | 
			
		||||
" nomadproject.vim - basic vim/nomad integration
 | 
			
		||||
" Maintainer: HashiVim <https://github.com/hashivim>
 | 
			
		||||
 | 
			
		||||
if exists("g:loaded_nomadproject") || v:version < 700 || &cp || !executable('nomad')
 | 
			
		||||
  finish
 | 
			
		||||
endif
 | 
			
		||||
let g:loaded_nomadproject = 1
 | 
			
		||||
 | 
			
		||||
function! s:commands(A, L, P)
 | 
			
		||||
  return join([
 | 
			
		||||
  \ "run",
 | 
			
		||||
  \ "stop",
 | 
			
		||||
  \ "status",
 | 
			
		||||
  \ "alloc",
 | 
			
		||||
  \ "job",
 | 
			
		||||
  \ "node",
 | 
			
		||||
  \ "agent",
 | 
			
		||||
  \ "acl",
 | 
			
		||||
  \ "agent-info",
 | 
			
		||||
  \ "deployment",
 | 
			
		||||
  \ "eval",
 | 
			
		||||
  \ "namespace",
 | 
			
		||||
  \ "operator",
 | 
			
		||||
  \ "quota",
 | 
			
		||||
  \ "sentinel",
 | 
			
		||||
  \ "server",
 | 
			
		||||
  \ "ui",
 | 
			
		||||
  \ "version"
 | 
			
		||||
  \ ], "\n")
 | 
			
		||||
endfunction
 | 
			
		||||
 | 
			
		||||
augroup nomadproject
 | 
			
		||||
  autocmd!
 | 
			
		||||
  autocmd VimEnter *
 | 
			
		||||
        \ command! -nargs=+ -complete=custom,s:commands Nomad execute '!nomad '.<q-args>
 | 
			
		||||
augroup END
 | 
			
		||||
 | 
			
		||||
" vim:set et sw=2:
 | 
			
		||||
@ -0,0 +1,27 @@
 | 
			
		||||
" ottoproject.vim - basic vim/otto integration
 | 
			
		||||
" Maintainer: HashiVim <https://github.com/hashivim>
 | 
			
		||||
 | 
			
		||||
if exists("g:loaded_ottoproject") || v:version < 700 || &cp || !executable('otto')
 | 
			
		||||
  finish
 | 
			
		||||
endif
 | 
			
		||||
let g:loaded_ottoproject = 1
 | 
			
		||||
 | 
			
		||||
function! s:commands(A, L, P)
 | 
			
		||||
  return join([
 | 
			
		||||
  \ "build",
 | 
			
		||||
  \ "compile",
 | 
			
		||||
  \ "deploy",
 | 
			
		||||
  \ "dev",
 | 
			
		||||
  \ "infra",
 | 
			
		||||
  \ "status",
 | 
			
		||||
  \ "version"
 | 
			
		||||
  \ ], "\n")
 | 
			
		||||
endfunction
 | 
			
		||||
 | 
			
		||||
augroup ottoproject
 | 
			
		||||
  autocmd!
 | 
			
		||||
  autocmd VimEnter *
 | 
			
		||||
        \ command! -nargs=+ -complete=custom,s:commands Otto execute '!otto '.<q-args>
 | 
			
		||||
augroup END
 | 
			
		||||
 | 
			
		||||
" vim:set et sw=2:
 | 
			
		||||
@ -0,0 +1,25 @@
 | 
			
		||||
" packer.vim - basic vim/packer integration
 | 
			
		||||
" Maintainer: HashiVim <https://github.com/hashivim>
 | 
			
		||||
 | 
			
		||||
if exists("g:loaded_packer") || v:version < 700 || &cp || !executable('packer')
 | 
			
		||||
  finish
 | 
			
		||||
endif
 | 
			
		||||
let g:loaded_packer = 1
 | 
			
		||||
 | 
			
		||||
function! s:commands(A, L, P)
 | 
			
		||||
  return join([
 | 
			
		||||
  \ "build",
 | 
			
		||||
  \ "fix",
 | 
			
		||||
  \ "inspect",
 | 
			
		||||
  \ "validate",
 | 
			
		||||
  \ "version"
 | 
			
		||||
  \ ], "\n")
 | 
			
		||||
endfunction
 | 
			
		||||
 | 
			
		||||
augroup packer
 | 
			
		||||
  autocmd!
 | 
			
		||||
  autocmd VimEnter *
 | 
			
		||||
        \ command! -nargs=+ -complete=custom,s:commands Packer execute '!packer '.<q-args>
 | 
			
		||||
augroup END
 | 
			
		||||
 | 
			
		||||
" vim:set et sw=2:
 | 
			
		||||
@ -0,0 +1,69 @@
 | 
			
		||||
" terraform.vim - basic vim/terraform integration
 | 
			
		||||
" Maintainer: HashiVim <https://github.com/hashivim>
 | 
			
		||||
 | 
			
		||||
if exists("g:loaded_terraform") || v:version < 700 || &cp || !executable('terraform')
 | 
			
		||||
  finish
 | 
			
		||||
endif
 | 
			
		||||
let g:loaded_terraform = 1
 | 
			
		||||
 | 
			
		||||
if !exists("g:terraform_fmt_on_save")
 | 
			
		||||
  let g:terraform_fmt_on_save = 0
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
function! s:commands(A, L, P)
 | 
			
		||||
  return join([
 | 
			
		||||
  \ "apply",
 | 
			
		||||
  \ "console",
 | 
			
		||||
  \ "destroy",
 | 
			
		||||
  \ "env",
 | 
			
		||||
  \ "fmt",
 | 
			
		||||
  \ "get",
 | 
			
		||||
  \ "graph",
 | 
			
		||||
  \ "import",
 | 
			
		||||
  \ "init",
 | 
			
		||||
  \ "output",
 | 
			
		||||
  \ "plan",
 | 
			
		||||
  \ "providers",
 | 
			
		||||
  \ "push",
 | 
			
		||||
  \ "refresh",
 | 
			
		||||
  \ "show",
 | 
			
		||||
  \ "taint",
 | 
			
		||||
  \ "untaint",
 | 
			
		||||
  \ "validate",
 | 
			
		||||
  \ "version",
 | 
			
		||||
  \ "workspace",
 | 
			
		||||
  \ "debug",
 | 
			
		||||
  \ "force-unlock",
 | 
			
		||||
  \ "state"
 | 
			
		||||
  \ ], "\n")
 | 
			
		||||
endfunction
 | 
			
		||||
 | 
			
		||||
" Adapted from vim-hclfmt:
 | 
			
		||||
" https://github.com/fatih/vim-hclfmt/blob/master/autoload/fmt.vim
 | 
			
		||||
function! terraform#fmt()
 | 
			
		||||
  let l:curw = winsaveview()
 | 
			
		||||
  let l:tmpfile = tempname()
 | 
			
		||||
  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
 | 
			
		||||
 | 
			
		||||
augroup terraform
 | 
			
		||||
  autocmd!
 | 
			
		||||
  autocmd VimEnter *
 | 
			
		||||
        \ command! -nargs=+ -complete=custom,s:commands Terraform execute '!terraform '.<q-args>. ' -no-color'
 | 
			
		||||
  autocmd VimEnter * command! -nargs=0 TerraformFmt call terraform#fmt()
 | 
			
		||||
  if get(g:, "terraform_fmt_on_save", 1)
 | 
			
		||||
    autocmd BufWritePre *.tf call terraform#fmt()
 | 
			
		||||
    autocmd BufWritePre *.tfvars call terraform#fmt()
 | 
			
		||||
  endif
 | 
			
		||||
augroup END
 | 
			
		||||
@ -0,0 +1,57 @@
 | 
			
		||||
" vagrant.vim - basic vim/vagrant integration
 | 
			
		||||
" Maintainer: HashiVim <https://github.com/hashivim>
 | 
			
		||||
 | 
			
		||||
if exists("g:loaded_vagrant") || v:version < 700 || &cp || !executable('vagrant')
 | 
			
		||||
  finish
 | 
			
		||||
endif
 | 
			
		||||
let g:loaded_vagrant = 1
 | 
			
		||||
 | 
			
		||||
function! s:commands(A, L, P)
 | 
			
		||||
  return join([
 | 
			
		||||
  \ "box",
 | 
			
		||||
  \ "cap",
 | 
			
		||||
  \ "cloud",
 | 
			
		||||
  \ "destroy",
 | 
			
		||||
  \ "docker-exec",
 | 
			
		||||
  \ "docker-logs",
 | 
			
		||||
  \ "docker-run",
 | 
			
		||||
  \ "global-status",
 | 
			
		||||
  \ "halt",
 | 
			
		||||
  \ "help",
 | 
			
		||||
  \ "hostmanager",
 | 
			
		||||
  \ "init",
 | 
			
		||||
  \ "list-commands",
 | 
			
		||||
  \ "login",
 | 
			
		||||
  \ "package",
 | 
			
		||||
  \ "plugin",
 | 
			
		||||
  \ "port",
 | 
			
		||||
  \ "powershell",
 | 
			
		||||
  \ "provider",
 | 
			
		||||
  \ "provision",
 | 
			
		||||
  \ "push",
 | 
			
		||||
  \ "rdp",
 | 
			
		||||
  \ "reload",
 | 
			
		||||
  \ "resume",
 | 
			
		||||
  \ "rsync",
 | 
			
		||||
  \ "rsync-auto",
 | 
			
		||||
  \ "snapshot",
 | 
			
		||||
  \ "ssh",
 | 
			
		||||
  \ "ssh-config",
 | 
			
		||||
  \ "status",
 | 
			
		||||
  \ "suspend",
 | 
			
		||||
  \ "up",
 | 
			
		||||
  \ "upload",
 | 
			
		||||
  \ "validate",
 | 
			
		||||
  \ "version",
 | 
			
		||||
  \ "winrm",
 | 
			
		||||
  \ "winrm-config"
 | 
			
		||||
  \ ], "\n")
 | 
			
		||||
endfunction
 | 
			
		||||
 | 
			
		||||
augroup vagrant
 | 
			
		||||
  autocmd!
 | 
			
		||||
  autocmd VimEnter *
 | 
			
		||||
        \ command! -nargs=+ -complete=custom,s:commands Vagrant execute '!vagrant '.<q-args>
 | 
			
		||||
augroup END
 | 
			
		||||
 | 
			
		||||
" vim:set et sw=2:
 | 
			
		||||
@ -0,0 +1,41 @@
 | 
			
		||||
" vaultproject.vim - basic vim/vault integration
 | 
			
		||||
" Maintainer: HashiVim <https://github.com/hashivim>
 | 
			
		||||
 | 
			
		||||
if exists("g:loaded_vaultproject") || v:version < 700 || &cp || !executable('vault')
 | 
			
		||||
  finish
 | 
			
		||||
endif
 | 
			
		||||
let g:loaded_vaultproject = 1
 | 
			
		||||
 | 
			
		||||
function! s:commands(A, L, P)
 | 
			
		||||
  return join([
 | 
			
		||||
  \ "read",
 | 
			
		||||
  \ "write",
 | 
			
		||||
  \ "delete",
 | 
			
		||||
  \ "list",
 | 
			
		||||
  \ "login",
 | 
			
		||||
  \ "agent",
 | 
			
		||||
  \ "server",
 | 
			
		||||
  \ "status",
 | 
			
		||||
  \ "unwrap",
 | 
			
		||||
  \ "audit",
 | 
			
		||||
  \ "auth",
 | 
			
		||||
  \ "kv",
 | 
			
		||||
  \ "lease",
 | 
			
		||||
  \ "namespace",
 | 
			
		||||
  \ "operator",
 | 
			
		||||
  \ "path-help",
 | 
			
		||||
  \ "plugin",
 | 
			
		||||
  \ "policy",
 | 
			
		||||
  \ "secrets",
 | 
			
		||||
  \ "ssh",
 | 
			
		||||
  \ "token"
 | 
			
		||||
  \ ], "\n")
 | 
			
		||||
endfunction
 | 
			
		||||
 | 
			
		||||
augroup vaultproject
 | 
			
		||||
  autocmd!
 | 
			
		||||
  autocmd VimEnter *
 | 
			
		||||
        \ command! -nargs=+ -complete=custom,s:commands Vault execute '!vault '.<q-args>
 | 
			
		||||
augroup END
 | 
			
		||||
 | 
			
		||||
" vim:set et sw=2:
 | 
			
		||||
											
												
													File diff suppressed because it is too large
													Load Diff
												
											
										
									
								
					Loading…
					
					
				
		Reference in New Issue