Files
azuredatastudio/extensions/json-language-features/CONTRIBUTING.md
Charles Gagnon 2bc6a0cd01 VS Code merge to df8fe74bd55313de0dd2303bc47a4aab0ca56b0e (#17979)
* Merge from vscode 504f934659740e9d41501cad9f162b54d7745ad9

* delete unused folders

* distro

* Bump build node version

* update chokidar

* FIx hygiene errors

* distro

* Fix extension lint issues

* Remove strict-vscode

* Add copyright header exemptions

* Bump vscode-extension-telemetry to fix webpacking issue with zone.js

* distro

* Fix failing tests (revert marked.js back to current one until we decide to update)

* Skip searchmodel test

* Fix mac build

* temp debug script loading

* Try disabling coverage

* log error too

* Revert "log error too"

This reverts commit af0183e5d4ab458fdf44b88fbfab9908d090526f.

* Revert "temp debug script loading"

This reverts commit 3d687d541c76db2c5b55626c78ae448d3c25089c.

* Add comments explaining coverage disabling

* Fix ansi_up loading issue

* Merge latest from ads

* Use newer option

* Fix compile

* add debug logging warn

* Always log stack

* log more

* undo debug

* Update to use correct base path (+cleanup)

* distro

* fix compile errors

* Remove strict-vscode

* Fix sql editors not showing

* Show db dropdown input & fix styling

* Fix more info in gallery

* Fix gallery asset requests

* Delete unused workflow

* Fix tapable resolutions for smoke test compile error

* Fix smoke compile

* Disable crash reporting

* Disable interactive

Co-authored-by: ADS Merger <karlb@microsoft.com>
2022-01-06 09:06:56 -08:00

3.1 KiB

Setup

  • Clone microsoft/vscode
  • Run yarn at /, this will install
    • Dependencies for /extension/json-language-features/
    • Dependencies for /extension/json-language-features/server/
    • devDependencies such as gulp
  • Open /extensions/json-language-features/ as the workspace in VS Code
  • In /extensions/json-language-features/ run yarn compile(or yarn watch) to build the client and server
  • Run the Launch Extension debug target in the Debug View. This will:
    • Launch a new VS Code instance with the json-language-features extension loaded
  • Open a .json file to activate the extension. The extension will start the JSON language server process.
  • Add "json.trace.server": "verbose" to the settings to observe the communication between client and server in the JSON Language Server output.
  • Debug the extension and the language server client by setting breakpoints injson-language-features/client/
  • Debug the language server process by using Attach to Node Process command in the VS Code window opened on json-language-features.
    • Pick the process that contains jsonServerMain in the command line. Hover over code-insiders resp code processes to see the full process command line.
    • Set breakpoints in json-language-features/server/
  • Run Reload Window command in the launched instance to reload the extension

Contribute to vscode-json-languageservice

microsoft/vscode-json-languageservice is the library that implements the language smarts for JSON. The JSON language server forwards most the of requests to the service library. If you want to fix JSON issues or make improvements, you should make changes at microsoft/vscode-json-languageservice.

However, within this extension, you can run a development version of vscode-json-languageservice to debug code or test language features interactively:

Linking vscode-json-languageservice in json-language-features/server/

  • Clone microsoft/vscode-json-languageservice
  • Run npm install in vscode-json-languageservice
  • Run npm link in vscode-json-languageservice. This will compile and link vscode-json-languageservice
  • In json-language-features/server/, run yarn link vscode-json-languageservice

Testing the development version of vscode-json-languageservice

  • Open both vscode-json-languageservice and this extension in two windows or with a single window with themulti-root workspace feature.
  • Run yarn watch at json-languagefeatures/server/ to recompile this extension with the linked version of vscode-json-languageservice
  • Make some changes in vscode-json-languageservice
  • Now when you run Launch Extension debug target, the launched instance will use your development version of vscode-json-languageservice. You can interactively test the language features.