#+TITLE: Puppet layer #+TAGS: layer|tool [[file:img/puppet.png]] * Table of Contents :TOC_5_gh:noexport: - [[#description][Description]] - [[#features][Features:]] - [[#install][Install]] - [[#key-bindings][Key bindings]] * Description This layer provides support for the Puppet DSL to Spacemacs. ** Features: - Syntax highlighting via [[https://github.com/voxpupuli/puppet-mode][puppet-mode]] - Syntax-checking via [[http://puppet-lint.com/][puppet-lint]] - Navigation commands to jump between blocks - Applying the content of the current manifest directly from emacs * Install To use this configuration layer, add it to your =~/.spacemacs=. You will need to add =puppet= to the existing =dotspacemacs-configuration-layers= list in this file. To get syntax checking to work you will also need to install =puppet-lint= by executing: #+BEGIN_SRC sh $ gem install puppet-lint #+END_SRC * Key bindings The following key bindings are available in Puppet Mode: | Key binding | Description | |-------------+---------------------------------------------------| | ~SPC m {~ | Move to the beginning of the current block | | ~SPC m }~ | Move to the end of the current block | | ~SPC m a~ | Align parameters in the current block | | ~SPC m '​~ | Toggle string quoting between single and double | | ~SPC m ;~ | Blank the string at point | | ~SPC m j~ | Jump to a =class=, =define=, variable or resource | | ~SPC m c~ | Apply the current manifest in dry-run mode | | ~SPC m v~ | Validate the syntax of the current manifest | | ~SPC m l~ | Check the current manifest for semantic issues | | ~SPC m $~ | Interpolate with ${} in double quoted strings | Use =M-x customize-group RET puppet= to customize Puppet Mode.