Salt-mode is a GNU Emacs major mode for editing SaltStack state files.
Salt is a Python-based configuration management and orchestration
system built on top of a high-speed remote execution engine.
Configuration management is most commonly managed by writing state files ending with .sls
;
this mode adds emacs support for these files.
Salt-mode requires a minimum emacs version of 24.4.
This uses mmm-mode and mmm-jinja2 to hook up Jinja2 templates into YAML (essentially what SaltStack files are).
- Syntax highlighting
- Indentation and alignment of expressions and statements
- Jinja Templating Support
- Spell checking of comments with flyspell
- Open documentation for state functions
- Navigation by state function
From MELPA or MELPA Stable with M-x package-install RET salt-mode.
Just visit Salt state files. The major mode is enabled automatically for Salt
states with the extension .sls
.
To enable flyspell for comments when using the mode:
(add-hook 'salt-mode-hook
(lambda ()
(flyspell-mode 1)))
Use salt-mode-browse-doc
to browse the documentation of the state module at point.
When run with a prefix argument, prompt for the state module to use.
If you have Python and the Salt Python modules installed, documentation may be viewed within Emacs via C-c C-d
(salt-mode-describe-state
) or ElDoc.
Use salt-mode-forward-state-function
and salt-mode-backward-state-function
, bound by default to C-M-b and C-M-f, to navigate by salt function.
Feel free to ask questions or make suggestions in the issue tracker on github.
This package was originally authored by Ben Hayden; the current maintainer is Glynn Forrest.
test/init.el
defines a minimal emacs configuration with the local salt-mode file loaded.
Run make dev
to load it in a new emacs.
You can also use the .sls files in test/
to test various mode functions.
Salt-mode is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
Salt-mode is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
See COPYING
for the complete license.