blob: 09d64efc048aeba498b93fd46822c9a459f07f1f [file] [log] [blame]
import * as lc from "vscode-languageclient/node";
import * as vscode from "vscode";
export class RaLanguageClient extends lc.LanguageClient {
override handleFailedRequest<T>(
type: lc.MessageSignature,
token: vscode.CancellationToken | undefined,
error: any,
defaultValue: T,
showNotification?: boolean | undefined,
): T {
const showError = vscode.workspace
.getConfiguration("rust-analyzer")
.get("showRequestFailedErrorNotification");
if (
!showError &&
error instanceof lc.ResponseError &&
error.code === lc.ErrorCodes.InternalError
) {
// Don't show notification for internal errors, these are emitted by r-a when a request fails.
showNotification = false;
}
return super.handleFailedRequest(type, token, error, defaultValue, showNotification);
}
}