3.4 KiB
JSON layer
Description
This layer adds support for JSON files with json-mode
Features:
- 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
Install
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.
Configuration
To define the default indentation set the variable js-indent-level
.
web-beautify
See web-beautify layer documentation.
prettier
See prettier layer documentation.
Choosing a formatter
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
.
Usage
Reformat
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"
}
Display navigable hierarchy
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 bindings
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 |
JSON hierarchy
Key binding | Description |
---|---|
RET |
Expand/Collapse node |
TAB |
Select next node |
S-TAB |
Select previous node |