Skip to content

Commit 9b74202

Browse files
authored
Mark all resolve calls as cancellable. (#1183)
1 parent e944e47 commit 9b74202

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

client/src/common/client.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ import {
3535
ImplementationRequest, SelectionRangeRequest, TypeDefinitionRequest, CallHierarchyPrepareRequest, SemanticTokensRegistrationType, LinkedEditingRangeRequest,
3636
TypeHierarchyPrepareRequest, InlineValueRequest, InlayHintRequest, WorkspaceSymbolRequest, TextDocumentRegistrationOptions, FileOperationRegistrationOptions,
3737
ConnectionOptions, PositionEncodingKind, DocumentDiagnosticRequest, NotebookDocumentSyncRegistrationType, NotebookDocumentSyncRegistrationOptions, ErrorCodes,
38-
MessageStrategy, DidOpenTextDocumentParams
38+
MessageStrategy, DidOpenTextDocumentParams, CodeLensResolveRequest, CompletionResolveRequest, CodeActionResolveRequest, InlayHintResolveRequest, DocumentLinkResolveRequest, WorkspaceSymbolResolveRequest
3939
} from 'vscode-languageserver-protocol';
4040

4141
import * as c2p from './codeConverter';
@@ -1896,6 +1896,15 @@ export abstract class BaseLanguageClient implements FeatureClient<Middleware, La
18961896
SemanticTokensRangeRequest.method,
18971897
SemanticTokensDeltaRequest.method
18981898
]);
1899+
private static CancellableResolveCalls: Set<string> = new Set([
1900+
CompletionResolveRequest.method,
1901+
CodeLensResolveRequest.method,
1902+
CodeActionResolveRequest.method,
1903+
InlayHintResolveRequest.method,
1904+
DocumentLinkResolveRequest.method,
1905+
WorkspaceSymbolResolveRequest.method
1906+
]);
1907+
18991908
public handleFailedRequest<T>(type: MessageSignature, token: CancellationToken | undefined, error: any, defaultValue: T, showNotification: boolean = true): T {
19001909
// If we get a request cancel or a content modified don't log anything.
19011910
if (error instanceof ResponseError) {
@@ -1915,7 +1924,7 @@ export abstract class BaseLanguageClient implements FeatureClient<Middleware, La
19151924
}
19161925
}
19171926
} else if (error.code === LSPErrorCodes.ContentModified) {
1918-
if (BaseLanguageClient.RequestsToCancelOnContentModified.has(type.method)) {
1927+
if (BaseLanguageClient.RequestsToCancelOnContentModified.has(type.method) || BaseLanguageClient.CancellableResolveCalls.has(type.method)) {
19191928
throw new CancellationError();
19201929
} else {
19211930
return defaultValue;

0 commit comments

Comments
 (0)