Merge pull request #1662 from github/alexet/update-lsp

Update languageserver-client
This commit is contained in:
Andrew Eisenberg
2022-11-29 10:37:19 -08:00
committed by GitHub
12 changed files with 69 additions and 92 deletions

View File

@@ -2,6 +2,8 @@
## [UNRELEASED]
- Required version of VS Code increased to 1.67.0.
## 1.7.6 - 21 November 2022
- Warn users when their VS Code version is too old to support all features in the vscode-codeql extension. [#1674](https://github.com/github/vscode-codeql/pull/1674)

View File

@@ -45,8 +45,8 @@
"tree-kill": "~1.2.2",
"unzipper": "~0.10.5",
"vscode-extension-telemetry": "^0.1.6",
"vscode-jsonrpc": "^5.0.1",
"vscode-languageclient": "^6.1.3",
"vscode-jsonrpc": "^8.0.2",
"vscode-languageclient": "^8.0.2",
"vscode-test-adapter-api": "~1.7.0",
"vscode-test-adapter-util": "~0.7.0",
"zip-a-folder": "~1.1.3"
@@ -155,7 +155,7 @@
"engines": {
"node": "^16.13.0",
"npm": ">=7.20.6",
"vscode": "^1.59.0"
"vscode": "^1.67.0"
}
},
"node_modules/@achrinza/node-ipc": {
@@ -39589,46 +39589,39 @@
}
},
"node_modules/vscode-jsonrpc": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-5.0.1.tgz",
"integrity": "sha512-JvONPptw3GAQGXlVV2utDcHx0BiY34FupW/kI6mZ5x06ER5DdPG/tXWMVHjTNULF5uKPOUUD0SaXg5QaubJL0A==",
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.0.2.tgz",
"integrity": "sha512-RY7HwI/ydoC1Wwg4gJ3y6LpU9FJRZAUnTYMXthqhFXXu77ErDd/xkREpGuk4MyYkk4a+XDWAMqe0S3KkelYQEQ==",
"engines": {
"node": ">=8.0.0 || >=10.0.0"
"node": ">=14.0.0"
}
},
"node_modules/vscode-languageclient": {
"version": "6.1.3",
"resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-6.1.3.tgz",
"integrity": "sha512-YciJxk08iU5LmWu7j5dUt9/1OLjokKET6rME3cI4BRpiF6HZlusm2ZwPt0MYJ0lV5y43sZsQHhyon2xBg4ZJVA==",
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-8.0.2.tgz",
"integrity": "sha512-lHlthJtphG9gibGb/y72CKqQUxwPsMXijJVpHEC2bvbFqxmkj9LwQ3aGU9dwjBLqsX1S4KjShYppLvg1UJDF/Q==",
"dependencies": {
"semver": "^6.3.0",
"vscode-languageserver-protocol": "^3.15.3"
"minimatch": "^3.0.4",
"semver": "^7.3.5",
"vscode-languageserver-protocol": "3.17.2"
},
"engines": {
"vscode": "^1.41.0"
}
},
"node_modules/vscode-languageclient/node_modules/semver": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
"bin": {
"semver": "bin/semver.js"
"vscode": "^1.67.0"
}
},
"node_modules/vscode-languageserver-protocol": {
"version": "3.15.3",
"resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.15.3.tgz",
"integrity": "sha512-zrMuwHOAQRhjDSnflWdJG+O2ztMWss8GqUUB8dXLR/FPenwkiBNkMIJJYfSN6sgskvsF0rHAoBowNQfbyZnnvw==",
"version": "3.17.2",
"resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.2.tgz",
"integrity": "sha512-8kYisQ3z/SQ2kyjlNeQxbkkTNmVFoQCqkmGrzLH6A9ecPlgTbp3wDTnUNqaUxYr4vlAcloxx8zwy7G5WdguYNg==",
"dependencies": {
"vscode-jsonrpc": "^5.0.1",
"vscode-languageserver-types": "3.15.1"
"vscode-jsonrpc": "8.0.2",
"vscode-languageserver-types": "3.17.2"
}
},
"node_modules/vscode-languageserver-types": {
"version": "3.15.1",
"resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.15.1.tgz",
"integrity": "sha512-+a9MPUQrNGRrGU630OGbYVQ+11iOIovjCkqxajPa9w57Sd5ruK8WQNsslzpa0x/QJqC8kRc2DUxWjIFwoNm4ZQ=="
"version": "3.17.2",
"resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.2.tgz",
"integrity": "sha512-zHhCWatviizPIq9B7Vh9uvrH6x3sK8itC84HkamnBWoDFJtzBf7SWlpLCZUit72b3os45h6RWQNC9xHRDF8dRA=="
},
"node_modules/vscode-test-adapter-api": {
"version": "1.7.0",
@@ -71253,39 +71246,33 @@
}
},
"vscode-jsonrpc": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-5.0.1.tgz",
"integrity": "sha512-JvONPptw3GAQGXlVV2utDcHx0BiY34FupW/kI6mZ5x06ER5DdPG/tXWMVHjTNULF5uKPOUUD0SaXg5QaubJL0A=="
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.0.2.tgz",
"integrity": "sha512-RY7HwI/ydoC1Wwg4gJ3y6LpU9FJRZAUnTYMXthqhFXXu77ErDd/xkREpGuk4MyYkk4a+XDWAMqe0S3KkelYQEQ=="
},
"vscode-languageclient": {
"version": "6.1.3",
"resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-6.1.3.tgz",
"integrity": "sha512-YciJxk08iU5LmWu7j5dUt9/1OLjokKET6rME3cI4BRpiF6HZlusm2ZwPt0MYJ0lV5y43sZsQHhyon2xBg4ZJVA==",
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-8.0.2.tgz",
"integrity": "sha512-lHlthJtphG9gibGb/y72CKqQUxwPsMXijJVpHEC2bvbFqxmkj9LwQ3aGU9dwjBLqsX1S4KjShYppLvg1UJDF/Q==",
"requires": {
"semver": "^6.3.0",
"vscode-languageserver-protocol": "^3.15.3"
},
"dependencies": {
"semver": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
}
"minimatch": "^3.0.4",
"semver": "^7.3.5",
"vscode-languageserver-protocol": "3.17.2"
}
},
"vscode-languageserver-protocol": {
"version": "3.15.3",
"resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.15.3.tgz",
"integrity": "sha512-zrMuwHOAQRhjDSnflWdJG+O2ztMWss8GqUUB8dXLR/FPenwkiBNkMIJJYfSN6sgskvsF0rHAoBowNQfbyZnnvw==",
"version": "3.17.2",
"resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.2.tgz",
"integrity": "sha512-8kYisQ3z/SQ2kyjlNeQxbkkTNmVFoQCqkmGrzLH6A9ecPlgTbp3wDTnUNqaUxYr4vlAcloxx8zwy7G5WdguYNg==",
"requires": {
"vscode-jsonrpc": "^5.0.1",
"vscode-languageserver-types": "3.15.1"
"vscode-jsonrpc": "8.0.2",
"vscode-languageserver-types": "3.17.2"
}
},
"vscode-languageserver-types": {
"version": "3.15.1",
"resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.15.1.tgz",
"integrity": "sha512-+a9MPUQrNGRrGU630OGbYVQ+11iOIovjCkqxajPa9w57Sd5ruK8WQNsslzpa0x/QJqC8kRc2DUxWjIFwoNm4ZQ=="
"version": "3.17.2",
"resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.2.tgz",
"integrity": "sha512-zHhCWatviizPIq9B7Vh9uvrH6x3sK8itC84HkamnBWoDFJtzBf7SWlpLCZUit72b3os45h6RWQNC9xHRDF8dRA=="
},
"vscode-test-adapter-api": {
"version": "1.7.0",

View File

@@ -13,7 +13,7 @@
"url": "https://github.com/github/vscode-codeql"
},
"engines": {
"vscode": "^1.59.0",
"vscode": "^1.67.0",
"node": "^16.13.0",
"npm": ">=7.20.6"
},
@@ -1321,8 +1321,8 @@
"tree-kill": "~1.2.2",
"unzipper": "~0.10.5",
"vscode-extension-telemetry": "^0.1.6",
"vscode-jsonrpc": "^5.0.1",
"vscode-languageclient": "^6.1.3",
"vscode-jsonrpc": "^8.0.2",
"vscode-languageclient": "^8.0.2",
"vscode-test-adapter-api": "~1.7.0",
"vscode-test-adapter-util": "~0.7.0",
"zip-a-folder": "~1.1.3"

View File

@@ -19,7 +19,7 @@ import {
ProviderResult,
version as vscodeVersion,
} from "vscode";
import { LanguageClient } from "vscode-languageclient";
import { LanguageClient } from "vscode-languageclient/node";
import * as os from "os";
import * as fs from "fs-extra";
import * as path from "path";
@@ -1422,8 +1422,12 @@ async function activateWithInstalledDistribution(
ctx.subscriptions.push(new SummaryLanguageSupport());
void logger.log("Starting language server.");
ctx.subscriptions.push(client.start());
await client.start();
ctx.subscriptions.push({
dispose: () => {
void client.stop();
},
});
// Jump-to-definition and find-references
void logger.log("Registering jump-to-definition handlers.");

View File

@@ -1,5 +1,5 @@
import { ProgressLocation, window } from "vscode";
import { StreamInfo } from "vscode-languageclient";
import { StreamInfo } from "vscode-languageclient/node";
import * as cli from "./cli";
import { QueryServerConfig } from "./config";
import { ideServerLogger } from "./logging";

View File

@@ -3,7 +3,7 @@ import * as fs from "fs-extra";
import { DisposableObject } from "../pure/disposable-object";
import { CancellationToken, commands } from "vscode";
import { createMessageConnection, RequestType } from "vscode-jsonrpc";
import { createMessageConnection, RequestType } from "vscode-jsonrpc/node";
import * as cli from "../cli";
import { QueryServerConfig } from "../config";
import { Logger, ProgressReporter } from "../logging";
@@ -237,8 +237,8 @@ export class QueryServerClient extends DisposableObject {
return this.serverProcess!.child.pid || 0;
}
async sendRequest<P, R, E, RO>(
type: RequestType<WithProgressId<P>, R, E, RO>,
async sendRequest<P, R, E>(
type: RequestType<WithProgressId<P>, R, E>,
parameter: P,
token?: CancellationToken,
progress?: (res: ProgressMessage) => void,

View File

@@ -3,7 +3,7 @@ import * as fs from "fs-extra";
import * as tmp from "tmp-promise";
import * as path from "path";
import { CancellationToken, Uri } from "vscode";
import { ErrorCodes, ResponseError } from "vscode-languageclient";
import { LSPErrorCodes, ResponseError } from "vscode-languageclient";
import * as cli from "../cli";
import { DatabaseItem } from "../databases";
@@ -480,7 +480,10 @@ export async function compileAndRunQueryAgainstDatabase(
try {
errors = await query.compile(qs, qlProgram, progress, token);
} catch (e) {
if (e instanceof ResponseError && e.code == ErrorCodes.RequestCancelled) {
if (
e instanceof ResponseError &&
e.code == LSPErrorCodes.RequestCancelled
) {
return createSyntheticResult(query, "Query cancelled");
} else {
throw e;

View File

@@ -973,7 +973,6 @@ export type ProgressMessage = shared.ProgressMessage;
export const checkQuery = new rpc.RequestType<
WithProgressId<CheckQueryParams>,
CheckQueryResult,
void,
void
>("compilation/checkQuery");
/**
@@ -982,7 +981,6 @@ export const checkQuery = new rpc.RequestType<
export const compileQuery = new rpc.RequestType<
WithProgressId<CompileQueryParams>,
CheckQueryResult,
void,
void
>("compilation/compileQuery");
/**
@@ -991,7 +989,6 @@ export const compileQuery = new rpc.RequestType<
export const compileDilQuery = new rpc.RequestType<
WithProgressId<CompileDilParams>,
CheckQueryResult,
void,
void
>("compilation/compileDilQuery");
@@ -1001,7 +998,6 @@ export const compileDilQuery = new rpc.RequestType<
export const checkUpgrade = new rpc.RequestType<
WithProgressId<UpgradeParams>,
CheckUpgradeResult,
void,
void
>("compilation/checkUpgrade");
/**
@@ -1010,7 +1006,6 @@ export const checkUpgrade = new rpc.RequestType<
export const compileUpgrade = new rpc.RequestType<
WithProgressId<CompileUpgradeParams>,
CompileUpgradeResult,
void,
void
>("compilation/compileUpgrade");
/**
@@ -1019,7 +1014,6 @@ export const compileUpgrade = new rpc.RequestType<
export const compileUpgradeSequence = new rpc.RequestType<
WithProgressId<CompileUpgradeSequenceParams>,
CompileUpgradeSequenceResult,
void,
void
>("compilation/compileUpgradeSequence");
@@ -1029,7 +1023,6 @@ export const compileUpgradeSequence = new rpc.RequestType<
export const startLog = new rpc.RequestType<
WithProgressId<StartLogParams>,
StartLogResult,
void,
void
>("evaluation/startLog");
@@ -1039,7 +1032,6 @@ export const startLog = new rpc.RequestType<
export const endLog = new rpc.RequestType<
WithProgressId<EndLogParams>,
EndLogResult,
void,
void
>("evaluation/endLog");
@@ -1049,7 +1041,6 @@ export const endLog = new rpc.RequestType<
export const clearCache = new rpc.RequestType<
WithProgressId<ClearCacheParams>,
ClearCacheResult,
void,
void
>("evaluation/clearCache");
/**
@@ -1058,7 +1049,6 @@ export const clearCache = new rpc.RequestType<
export const trimCache = new rpc.RequestType<
WithProgressId<TrimCacheParams>,
ClearCacheResult,
void,
void
>("evaluation/trimCache");
@@ -1068,7 +1058,6 @@ export const trimCache = new rpc.RequestType<
export const runQueries = new rpc.RequestType<
WithProgressId<EvaluateQueriesParams>,
EvaluationComplete,
void,
void
>("evaluation/runQueries");
@@ -1078,21 +1067,18 @@ export const runQueries = new rpc.RequestType<
export const runUpgrade = new rpc.RequestType<
WithProgressId<RunUpgradeParams>,
RunUpgradeResult,
void,
void
>("evaluation/runUpgrade");
export const registerDatabases = new rpc.RequestType<
WithProgressId<RegisterDatabasesParams>,
RegisterDatabasesResult,
void,
void
>("evaluation/registerDatabases");
export const deregisterDatabases = new rpc.RequestType<
WithProgressId<DeregisterDatabasesParams>,
DeregisterDatabasesResult,
void,
void
>("evaluation/deregisterDatabases");
@@ -1103,7 +1089,6 @@ export const deregisterDatabases = new rpc.RequestType<
export const completeQuery = new rpc.RequestType<
EvaluationResult,
Record<string, any>,
void,
void
>("evaluation/queryCompleted");

View File

@@ -106,6 +106,6 @@ export interface ProgressMessage {
/**
* A notification that the progress has been changed.
*/
export const progress = new rpc.NotificationType<ProgressMessage, void>(
export const progress = new rpc.NotificationType<ProgressMessage>(
"ql/progressUpdated",
);

View File

@@ -167,7 +167,6 @@ export type ProgressMessage = shared.ProgressMessage;
export const clearCache = new rpc.RequestType<
WithProgressId<ClearCacheParams>,
ClearCacheResult,
void,
void
>("evaluation/clearCache");
/**
@@ -176,7 +175,6 @@ export const clearCache = new rpc.RequestType<
export const trimCache = new rpc.RequestType<
WithProgressId<TrimCacheParams>,
ClearCacheResult,
void,
void
>("evaluation/trimCache");
@@ -186,7 +184,6 @@ export const trimCache = new rpc.RequestType<
export const clearPackCache = new rpc.RequestType<
WithProgressId<ClearPackCacheParams>,
ClearPackCacheResult,
void,
void
>("evaluation/clearPackCache");
@@ -196,28 +193,24 @@ export const clearPackCache = new rpc.RequestType<
export const runQuery = new rpc.RequestType<
WithProgressId<RunQueryParams>,
RunQueryResult,
void,
void
>("evaluation/runQuery");
export const registerDatabases = new rpc.RequestType<
WithProgressId<RegisterDatabasesParams>,
RegisterDatabasesResult,
void,
void
>("evaluation/registerDatabases");
export const deregisterDatabases = new rpc.RequestType<
WithProgressId<DeregisterDatabasesParams>,
DeregisterDatabasesResult,
void,
void
>("evaluation/deregisterDatabases");
export const upgradeDatabase = new rpc.RequestType<
WithProgressId<UpgradeParams>,
UpgradeResult,
void,
void
>("evaluation/runUpgrade");

View File

@@ -3,7 +3,7 @@ import * as fs from "fs-extra";
import { DisposableObject } from "../pure/disposable-object";
import { CancellationToken, commands } from "vscode";
import { createMessageConnection, RequestType } from "vscode-jsonrpc";
import { createMessageConnection, RequestType } from "vscode-jsonrpc/node";
import * as cli from "../cli";
import { QueryServerConfig } from "../config";
import { Logger, ProgressReporter } from "../logging";
@@ -201,8 +201,8 @@ export class QueryServerClient extends DisposableObject {
return this.serverProcess!.child.pid || 0;
}
async sendRequest<P, R, E, RO>(
type: RequestType<WithProgressId<P>, R, E, RO>,
async sendRequest<P, R, E>(
type: RequestType<WithProgressId<P>, R, E>,
parameter: P,
token?: CancellationToken,
progress?: (res: ProgressMessage) => void,

View File

@@ -8,7 +8,7 @@ import {
workspace,
Uri,
} from "vscode";
import { ErrorCodes, ResponseError } from "vscode-languageclient";
import { LSPErrorCodes, ResponseError } from "vscode-languageclient";
import { CodeQLCliServer } from "./cli";
import { DatabaseUI } from "./databases-ui";
import {
@@ -148,7 +148,10 @@ export async function displayQuickQuery(
await Window.showTextDocument(await workspace.openTextDocument(qlFile));
} catch (e) {
if (e instanceof ResponseError && e.code == ErrorCodes.RequestCancelled) {
if (
e instanceof ResponseError &&
e.code == LSPErrorCodes.RequestCancelled
) {
throw new UserCancellationException(getErrorMessage(e));
} else {
throw e;