Language service for JSON
npm install vscode-json-languageserviceJSON 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:
!image
- run VSCode out of sources setup as described here: https://github.com/Microsoft/vscode/wiki/How-to-Contribute
- use yarn link vscode-json-languageservice in vscode/extensions/json-language-features/server to run VSCode with the latest changes from vscode-json-languageservice
- run VSCode out of source (vscode/scripts/code.sh|bat) and open a .json file
- in VSCode window that is open on the vscode-json-languageservice sources, run command Debug: Attach to Node process and pick the code-oss process with the json-language-features path
!image
- set breakpoints, e.g. in jsonCompletion.ts
- in the instance run from sources, invoke code completion in the .json file