jsonnet-mode
Provides Emacs font-lock, indentation, and some useful functions for the Jsonnet templating language.
Table of Contents
Dependencies
The jsonnet-eval
method depends on the jsonnet
binary, which should be
available on your exec-path
. Install this on OSX with Homebrew by running
brew install jsonnet
.
Features
Indentation
Default indentation is provided by jsonnet-calculate-indent
and
accommodates basic indentation. It isn't consistent with jsonnetfmt
and will be replaced by an SMIE based implementation in the near
future. If you prefer the newer implementation, you may enable it by
setting jsonnet-use-smie
to t
.
Formatting
Closely related to indentation is formatting. By running
jsonnet-reformat-buffer
(bound to C-c C-r
), the jsonnet fmt
utility will
reformat your buffer and make it pretty.
Rendering
To get a snapshot of what your Jsonnet file will render to, run jsonnet-eval
(bound to C-c C-e
). This will popup another window and show the result of
running jsonnet-command
on the current buffer.
Navigation
jsonnet-mode
also provides some methods to make navigation easier. In
particular, jsonnet-jump
(bound to C-c C-f
) allows you to jump to the
definition of a given identifier.
Configuration
There are three customizable parameters that you may configure in this mode:
jsonnet-command
allows you to indicate which Jsonnet binary should be used to render a JSON document.jsonnet-library-search-directories
specifies the sequence of Jsonnet library search directories use during evaluation.
Relative paths in this sequence must resolve from the directory of the buffer being evaluated.jsonnet-enable-debug-print
will cause methods in jsonnet-mode to write messages to the status bar if enabled.jsonnet-use-smie
enables SMIE-provided indentation.