JSON language service extracted from VSCode to be reused, e.g in the Monaco editor.
The vscode-json-languageservice contains the language smarts behind the JSON editing experience of Visual Studio Code and the Monaco editor.
- doValidation analyses an input string and returns syntax and lint errors.
- doComplete provides completion proposals for a given location.
- doResolve resolves a completion proposals.
- doHover provides a hover text for a given location.
- findDocumentSymbols provides all symbols in the given document.
- findDocumentColors provides all color symbols in the given document.
- getColorPresentations returns available color formats for a color symbol.
- format formats the code at the given range.
- getFoldingRanges gets folding ranges for the given document.
- getSelectionRanges gets selection ranges for a given location.
- getMatchingSchemas matches a document against its schema and returns all AST nodes along with the matching sub schemas.
- parseJSONDocument creates a JSON document from source code.
- newJSONDocument creates a JSON document from an AST.
For the complete API see jsonLanguageService.ts and jsonLanguageTypes.ts
npm install --save vscode-json-languageservice
See sample.ts for an example on how to use the JSON language service.
To run the sample use yarn sample
git clone https://github.com/microsoft/vscode-json-languageservice
cd vscode-json-languageservice
yarn
Use yarn test to compile and run tests
- open the folder in VSCode.
- set breakpoints, e.g. in
jsonCompletion.ts - run the Unit tests from the run viewlet and wait until a breakpoint is hit:

- run VSCode out of sources setup as described here: https://github.com/Microsoft/vscode/wiki/How-to-Contribute
- use
yarn link vscode-json-languageserviceinvscode/extensions/json-language-features/serverto run VSCode with the latest changes fromvscode-json-languageservice - run VSCode out of source (
vscode/scripts/code.sh|bat) and open a.jsonfile - in VSCode window that is open on the
vscode-json-languageservicesources, run commandDebug: Attach to Node processand pick thecode-ossprocess with thejson-language-featurespath
- set breakpoints, e.g. in
jsonCompletion.ts - in the instance run from sources, invoke code completion in the
.jsonfile