Provides Emacs font-lock, indentation, and some useful functions for the Jsonnet templating language.
Table of Contents
The jsonnet-eval-buffer
method depends on the jsonnet
binary,
which should be available on your exec-path
. For installation
details, see
here
for go-jsonnet
and
here for the C++
implementation.
Indentation is provided by a function implemented with
SMIE. To
use the old indentation function (not recommended), set
jsonnet-use-smie
to nil
.
jsonnet-reformat-buffer
(bound to C-c C-r by default)
uses the jsonnetfmt
utility to reformat your
buffer. jsonnet-mode
's indentation function should match its output
in most cases.
jsonnet-eval-buffer
runs jsonnet
to evaluate and render a
jsonnet-mode
buffer. It's bound to C-c C-c by default. If
any errors are encountered, they should be conveniently displayed in
compilation-mode
.
It will create a buffer called *jsonnet output*
. Default display
behaviour of these buffers can be customized using
display-buffer-alist
(see The Zen of Buffer
Display
for examples of how to do this).
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.
There are several 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-command-options
can be specified if additional options should be sent withjsonnet-command
.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.jsonnet-indent-level
changes the number of spaces used to indent Jsonnet code.
The potential buffers that the mode creates are:
*jsonnet output*
If you require special customization of their display, you can either
use display-buffer-alist
as described above or
investigate the options provided in your distribution of GNU Emacs.