/vim-puppet

Puppet niceties for your Vim setup

Primary LanguageVim ScriptApache License 2.0Apache-2.0

vim-puppet

Build Status

Make vim more Puppet friendly!

Provides

  • Formatting based on the latest Puppetlabs Style Guide
  • Syntax highlighting compatible with puppet 4.x
    • by default, highlights errors: mixing spaces and tabs and bad names. If you don't want this highlighting, add let g:puppet_display_errors = 0 to your vimrc.
  • Automatic => alignment
    • If you don't like that, add let g:puppet_align_hashes = 0 to your vimrc.
  • Ctags support
    • gutentags integration
      • You can enable loading tags with gutentags by setting g:gutentags_dont_load = 1 in your vimrc
  • Doesn't require a bloated JRE
  • Doesn't take minutes to open

Additional useful plugins

  • vim-yardoc Syntax coloration for YARD tags and directives. It can also colorize the tags and directives in puppet files.
  • syntastic plugin for automatic syntax checking while in vim.
  • vim-snippets is a library of snippets for multiple languages, including Puppet. Works with both snipmate and ultisnips.
  • Tagbar plugin for Ctags support.

Installation

With Vim 8 packages:

git clone https://github.com/rodjek/vim-puppet.git ~/.vim/pack/plugins/start/vim-puppet

With Pathogen:

If you're using pathogen to manage your vim modules (and if you're not, why aren't you), you can simply add this as a submodule in your ~/.vim/bundle/ directory.

My entire home directory is a git repository, so for me it's simply a case of

git submodule add -f git://github.com/rodjek/vim-puppet.git .vim/bundle/puppet

If you're not using pathogen, you can just manually place the files in the appropriate places under ~/.vim/

With Plug

In your ~/.vimrc (or stdpath('config') . '/init.vim' for Neovim)

call plug#begin()
  rodjek/vim-puppet
call plug#end()

Testing

Testing is based on vader.vim testing framework, see: https://github.com/junegunn/vader.vim . To run full test suit use ./test/run-tests.sh, this will also download vader.vim plugin to project's folder.