JSON language service extracted from VSCode to be reused, e.g in the Monaco editor.
Перейти к файлу
Martin Aeschlimann a6e0d0361d 4.1.2 2021-04-26 23:48:41 +02:00
.github add assignment.yml 2017-10-25 12:53:09 +02:00
.vscode support esm 2018-03-07 17:28:22 +01:00
build remove sourcemap refs 2019-06-12 16:22:07 +02:00
src problems loading refs with minus in URI schema name. Fixes microsoft/vscode#115419 2021-04-26 23:42:31 +02:00
.eslintrc.json update dependencies 2020-09-16 10:15:49 +02:00
.gitignore update dependencies & adopt eslint 2020-04-27 22:12:17 +02:00
.mocharc.json update dependencies 2020-09-16 10:15:49 +02:00
.npmignore Provide a usage example in the readme. Fixes #39 2020-11-12 10:49:38 +01:00
.travis.yml change travis to node 10 2020-04-27 21:40:24 +02:00
CHANGELOG.md update spec and changelog 2021-04-24 11:53:55 +02:00
LICENSE.md Initial commit 2016-06-24 15:35:04 +02:00
README.md run sample script 2020-11-12 11:06:15 +01:00
package-lock.json 4.1.2 2021-04-26 23:48:41 +02:00
package.json 4.1.2 2021-04-26 23:48:41 +02:00

README.md

vscode-json-languageservice

JSON language service extracted from VSCode to be reused, e.g in the Monaco editor.

npm Package NPM Downloads Build Status License: MIT

Why?

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

Installation

npm install --save vscode-json-languageservice

Sample usage

See sample.ts for an example on how to use the JSON language service.

To run the sample use yarn sample

Development

git clone https://github.com/microsoft/vscode-json-languageservice
cd vscode-json-languageservice
yarn

Use yarn test to compile and run tests

How can I run and debug the service?

  • 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

How can I run and debug the service inside an instance of VSCode?

  • 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