diff --git a/.vscode/launch.json b/.vscode/launch.json index 8e49319c8..edea01170 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -16,8 +16,9 @@ "${workspaceRoot}/extensions/ql-vscode/out/**/*.js", ], "env": { - // uncomment to allow debugging the language server Java process from a remote java debugger - // "DEBUG_LANGUAGE_SERVER": "true" + // change to 'true' debug the IDE or Query servers + "IDE_SERVER_JAVA_DEBUG": "false", + "QUERY_SERVER_JAVA_DEBUG": "false", } }, { diff --git a/extensions/ql-vscode/src/cli.ts b/extensions/ql-vscode/src/cli.ts index 153574384..25c3fa606 100644 --- a/extensions/ql-vscode/src/cli.ts +++ b/extensions/ql-vscode/src/cli.ts @@ -907,3 +907,16 @@ async function logStream(stream: Readable, logger: Logger): Promise { logger.log(line); } } + + +export function shouldDebugIdeServer() { + return 'IDE_SERVER_JAVA_DEBUG' in process.env + && process.env.IDE_SERVER_JAVA_DEBUG !== '0' + && process.env.IDE_SERVER_JAVA_DEBUG?.toLocaleLowerCase() !== 'false'; +} + +export function shouldDebugQueryServer() { + return 'QUERY_SERVER_JAVA_DEBUG' in process.env + && process.env.QUERY_SERVER_JAVA_DEBUG !== '0' + && process.env.QUERY_SERVER_JAVA_DEBUG?.toLocaleLowerCase() !== 'false'; +} diff --git a/extensions/ql-vscode/src/ide-server.ts b/extensions/ql-vscode/src/ide-server.ts index 2f8ba2808..c148e6f7e 100644 --- a/extensions/ql-vscode/src/ide-server.ts +++ b/extensions/ql-vscode/src/ide-server.ts @@ -12,7 +12,7 @@ import { ideServerLogger } from './logging'; export async function spawnIdeServer(config: QueryServerConfig): Promise { return window.withProgress({ title: 'CodeQL language server', location: ProgressLocation.Window }, async (progressReporter, _) => { const args = ['--check-errors', 'ON_CHANGE']; - if (shouldDebug()) { + if (cli.shouldDebugIdeServer()) { args.push('-J=-agentlib:jdwp=transport=dt_socket,address=localhost:9009,server=y,suspend=n,quiet=y'); } const child = cli.spawnServer( @@ -28,9 +28,3 @@ export async function spawnIdeServer(config: QueryServerConfig): Promise