This layer adds support for JSON files with json-mode
- Syntax highlighting
- Auto-completion
- Get the path to a JSON value with json-snatcher
- Navigate JSON hierarchy with json-nagivator
- Formatting with web-beautify or prettier
To use this configuration layer, add it to your ~/.spacemacs
. You will need to
add json
to the existing dotspacemacs-configuration-layers
list in this file.
To define the default indentation set the variable js-indent-level
.
See web-beautify layer documentation.
See prettier layer documentation.
To choose a formatter, set the layer variable json-fmt-tool
:
(json :variables json-fmt-tool 'web-beautify)
Formatter can be chosen on a per project basis using directory local variables
(files named .dir-locals.el
at the root of a project), an example to use the
prettier
formatter:
;;; Directory Local Variables
;;; For more information see (info "(emacs) Directory Variables")
((json-mode (json-fmt-tool . prettier)))
Note: you can easily add a directory local variable with SPC f v d
.
SPC m =
will reformat the whole buffer or the active region. Use numerical
prefix argument to specify a different indentation than js-indent-level
.
Use the universal prefix argument to print decoded strings, for instance:
{"name":"foo\"bar","nick":"foo \u00e4 bar","description":"<pre>\nbaz\n</pre>","home":"/home/foobar"}
Will be reformatted:
{
"name": "foo\"bar",
"nick": "foo ä bar",
"description": "<pre>
baz
</pre>",
"home": "/home/foobar"
}
SPC m h h
displays the hierarchy for the whole JSON document or the active
region. Use the universal prefix argument SPC u SPC m h h
to create the
hierarchy for the JSON after the point.
Key binding | Description |
---|---|
SPC m = | DWIM Reformat JSON |
SPC m h p | Get the path of the value at point |
SPC m h h | DWIM navigate JSON hierarchy |
SPC m h H | Navigate JSON hierarchy of the whole buffer |
Key binding | Description |
---|---|
RET | Expand/Collapse node |
TAB | Select next node |
S-TAB | Select previous node |