#+TITLE: Puppet layer

[[file:img/puppet.png]]

* Table of Contents                                         :TOC_4_gh:noexport:
 - [[#description][Description]]
 - [[#install][Install]]
 - [[#key-bindings][Key bindings]]

* Description
This layer aims at providing support for the Puppet DSL using [[https://github.com/lunaryorn/puppet-mode][puppet-mode]].

* 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.

* 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.
