/coc-format-json

Format JSON strings on the fly

Primary LanguageTypeScriptMIT LicenseMIT

coc-format-json

NPM License Downloads

Format JSON strings on top of coc.nvim, the JavaScript way.

formatJson

Installation

First, make sure coc.nvim is started.

Then install with the Vim command:

:CocInstall coc-format-json

Usage

Make sure the text to be serialized is valid JSON or text that can be parsed by JSON5.

Format the whole file

:CocCommand formatJson [options]

See options section for more details.

Format selected text

First make a selection with v. Then execute command:

:CocCommand formatJson.selected [options]

See options section for more details.

Options

--indent

--indent=<number>

Set indentation as <number> spaces. When <number> is zero, the JSON object will be serialized in compact mode, i.e. no extra white spaces will be kept.

--quote

--quote='

Set the quote character to use, either ' or ". In typical JSON only " is allowed, however in JavaScript it is common to use ' everywhere.

--quote-as-needed

--quote-as-needed or --quote-as-needed=<true|false>

While enabled, all quotes will be ommitted if possible, if only the serialized text is valid in JavaScript.

--trailing

--trailing or --trailing=<true|false>

While enabled, an dangling comma will be added to the last entry in each array and object. This is useful in JavaScript so that you don't have to modify the last line before appending a new line.

--template

--template or --template=<true|false>

While enabled, multiline strings will be serialized as template literals quoted with `, instead of using escaped characters like \n.

--sort-keys

--sort-keys or --sort-keys=<true|false>

While enabled, keys of an object will be sorted alphabetically.

Presets

Some presets are available to set a group of options:

  • --preset-js

    useful to use in JavaScript code, equivalent to --quote=' --quote-as-needed --trailing --template.

  • --preset-json

    useful to use in JSON file, equivalent to --quote=" --quote-as-needed=false --trailing=false --template=false.