JSON language service extracted from VSCode to be reused, e.g in the Monaco editor.
Перейти к файлу
Martin Aeschlimann 159063b2e1 Use links for $ref 2020-11-03 22:11:33 +01: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 Use links for $ref 2020-11-03 22:11:33 +01: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 update dependencies 2020-09-16 10:15:49 +02:00
.travis.yml change travis to node 10 2020-04-27 21:40:24 +02:00
CHANGELOG.md Use links for $ref 2020-11-03 22:11:33 +01:00
LICENSE.md Initial commit 2016-06-24 15:35:04 +02:00
README.md README: Improve "Development" section 2020-10-24 20:08:50 +02:00
package-lock.json 3.9.1 2020-10-14 22:14:45 +02:00
package.json 3.9.1 2020-10-14 22:14:45 +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

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