2.0 KiB
Developer notes
Bulding and Running
This project consists of three pieces:
- a vscode-extension which is a language-server client implemented in TypeScript.
- commons-vscode: a local npm module with some utilities implemented in TypeScript.
- a language server implemented in Java.
To build all these pieces you normally only need to run:
npm install
However, the first time you build it might fail trying to
find the commons-vscode module on npm central. Once we publish a stable
version of that module on npm central that will no longer be a problem.
Until that time, you can work around this by doing a one time manual
run of the preinstall script prior to running npm install:
./scripts/preinstall.sh
npm install
Now you can open the client-app in vscode. From the root of this project.
code .
To launch the language server in a vscode runtime, press F5.
Debugging
Method 1: attach remote debugger to Language Server
To debug the language server, open lib/Main.ts and edit to set the
DEBUG option to true. When you launch the app next by pressing
F5 it will launch with debug options being passed to the server JVM.
You can then connect a 'Remote Java' debugger on port 8000.
Method 2: Launch a 'standalone' Language Server
To debug the language server, open lib/Main.ts and edit to set the
CONNECT_TO_LS option to true. When you launch the app next by pressing
F5... When it needs a language server it will not launch a process but instead
try to connect to an already running server on port 5007. It is up to you
to ensure a server is running on that port by launching it beforehand
with a commandline arguments: -Dstandalone-startup=true.
Packaging as a vscode extension
First make sure the stuff is all built locally:
./scripts/preinstall.sh # only needed if this is the first build.
npm install
Then package it:
npm run vsce-package
This produces a .vsix file which you can install directly into vscode.