From c6132deb51a9a40aa6ae2f5a5968d93486c65fea Mon Sep 17 00:00:00 2001 From: Christian Schneider Date: Tue, 23 Jan 2024 21:33:42 +0100 Subject: [PATCH] introduced 'utils/cancellation.ts' doing only "export * from 'vscode-jsonrpc/lib/common/cancellation.js';"; updated related imports aims at providing cancellation related types and symbols with smallest possible overhead while avoiding code clones --- packages/langium/src/lsp/call-hierarchy-provider.ts | 3 ++- packages/langium/src/lsp/code-action.ts | 3 ++- packages/langium/src/lsp/code-lens-provider.ts | 3 ++- packages/langium/src/lsp/completion/completion-provider.ts | 3 ++- packages/langium/src/lsp/declaration-provider.ts | 3 ++- packages/langium/src/lsp/definition-provider.ts | 3 ++- packages/langium/src/lsp/document-highlight-provider.ts | 3 ++- packages/langium/src/lsp/document-link-provider.ts | 3 ++- packages/langium/src/lsp/document-symbol-provider.ts | 3 ++- packages/langium/src/lsp/execute-command-handler.ts | 2 +- packages/langium/src/lsp/folding-range-provider.ts | 3 ++- packages/langium/src/lsp/formatter.ts | 3 ++- packages/langium/src/lsp/hover-provider.ts | 3 ++- packages/langium/src/lsp/implementation-provider.ts | 2 +- packages/langium/src/lsp/inlay-hint-provider.ts | 2 +- packages/langium/src/lsp/references-provider.ts | 3 ++- packages/langium/src/lsp/rename-provider.ts | 3 ++- packages/langium/src/lsp/semantic-token-provider.ts | 3 ++- packages/langium/src/lsp/signature-help-provider.ts | 2 +- packages/langium/src/lsp/type-provider.ts | 2 +- packages/langium/src/lsp/workspace-symbol-provider.ts | 2 +- packages/langium/src/parser/async-parser.ts | 2 +- packages/langium/src/references/linker.ts | 2 +- packages/langium/src/references/scope-computation.ts | 2 +- packages/langium/src/utils/cancellation.ts | 7 +++++++ packages/langium/src/utils/index.ts | 3 ++- packages/langium/src/utils/promise-utils.ts | 3 +-- packages/langium/src/validation/document-validator.ts | 3 ++- packages/langium/src/validation/validation-registry.ts | 3 ++- packages/langium/src/workspace/ast-descriptions.ts | 2 +- packages/langium/src/workspace/document-builder.ts | 3 ++- packages/langium/src/workspace/documents.ts | 2 +- packages/langium/src/workspace/index-manager.ts | 2 +- packages/langium/src/workspace/workspace-lock.ts | 5 ++--- packages/langium/src/workspace/workspace-manager.ts | 2 +- 35 files changed, 61 insertions(+), 37 deletions(-) create mode 100644 packages/langium/src/utils/cancellation.ts diff --git a/packages/langium/src/lsp/call-hierarchy-provider.ts b/packages/langium/src/lsp/call-hierarchy-provider.ts index fa9e1835d..3c509ee43 100644 --- a/packages/langium/src/lsp/call-hierarchy-provider.ts +++ b/packages/langium/src/lsp/call-hierarchy-provider.ts @@ -4,7 +4,8 @@ * terms of the MIT License, which is available in the project root. ******************************************************************************/ -import type { CallHierarchyIncomingCall, CallHierarchyIncomingCallsParams, CallHierarchyItem, CallHierarchyOutgoingCall, CallHierarchyOutgoingCallsParams, CallHierarchyPrepareParams, CancellationToken } from 'vscode-languageserver'; +import type { CallHierarchyIncomingCall, CallHierarchyIncomingCallsParams, CallHierarchyItem, CallHierarchyOutgoingCall, CallHierarchyOutgoingCallsParams, CallHierarchyPrepareParams, } from 'vscode-languageserver'; +import type { CancellationToken } from '../utils/cancellation.js'; import type { GrammarConfig } from '../languages/grammar-config.js'; import type { NameProvider } from '../references/name-provider.js'; import type { References } from '../references/references.js'; diff --git a/packages/langium/src/lsp/code-action.ts b/packages/langium/src/lsp/code-action.ts index 536307b79..0ac16f903 100644 --- a/packages/langium/src/lsp/code-action.ts +++ b/packages/langium/src/lsp/code-action.ts @@ -4,7 +4,8 @@ * terms of the MIT License, which is available in the project root. ******************************************************************************/ -import type { CancellationToken, CodeAction, CodeActionParams, Command } from 'vscode-languageserver'; +import type { CodeAction, CodeActionParams, Command } from 'vscode-languageserver'; +import type { CancellationToken } from '../utils/cancellation.js'; import type { MaybePromise } from '../utils/promise-utils.js'; import type { LangiumDocument } from '../workspace/documents.js'; diff --git a/packages/langium/src/lsp/code-lens-provider.ts b/packages/langium/src/lsp/code-lens-provider.ts index 9b0e99351..b3bb359c2 100644 --- a/packages/langium/src/lsp/code-lens-provider.ts +++ b/packages/langium/src/lsp/code-lens-provider.ts @@ -4,7 +4,8 @@ * terms of the MIT License, which is available in the project root. ******************************************************************************/ -import type { CancellationToken, CodeLens, CodeLensParams } from 'vscode-languageserver'; +import type { CodeLens, CodeLensParams } from 'vscode-languageserver'; +import type { CancellationToken } from '../utils/cancellation.js'; import type { MaybePromise } from '../utils/promise-utils.js'; import type { LangiumDocument } from '../workspace/documents.js'; diff --git a/packages/langium/src/lsp/completion/completion-provider.ts b/packages/langium/src/lsp/completion/completion-provider.ts index 46b2f8695..3d24c677f 100644 --- a/packages/langium/src/lsp/completion/completion-provider.ts +++ b/packages/langium/src/lsp/completion/completion-provider.ts @@ -4,12 +4,13 @@ * terms of the MIT License, which is available in the project root. ******************************************************************************/ -import type { CancellationToken, CompletionItem, CompletionParams } from 'vscode-languageserver'; +import type { CompletionItem, CompletionParams } from 'vscode-languageserver'; import type { LangiumCompletionParser } from '../../parser/langium-parser.js'; import type { NameProvider } from '../../references/name-provider.js'; import type { ScopeProvider } from '../../references/scope-provider.js'; import type { LangiumServices } from '../lsp-services.js'; import type { AstNode, AstNodeDescription, AstReflection, CstNode, ReferenceInfo } from '../../syntax-tree.js'; +import type { CancellationToken } from '../../utils/cancellation.js'; import type { MaybePromise } from '../../utils/promise-utils.js'; import type { LangiumDocument, TextDocument, TextEdit } from '../../workspace/documents.js'; import type { NextFeature } from './follow-element-computation.js'; diff --git a/packages/langium/src/lsp/declaration-provider.ts b/packages/langium/src/lsp/declaration-provider.ts index a92e905b0..7c1e6f0b2 100644 --- a/packages/langium/src/lsp/declaration-provider.ts +++ b/packages/langium/src/lsp/declaration-provider.ts @@ -4,7 +4,8 @@ * terms of the MIT License, which is available in the project root. ******************************************************************************/ -import type { CancellationToken, DeclarationParams, LocationLink } from 'vscode-languageserver'; +import type { DeclarationParams, LocationLink } from 'vscode-languageserver'; +import type { CancellationToken } from '../utils/cancellation.js'; import type { MaybePromise } from '../utils/promise-utils.js'; import type { LangiumDocument } from '../workspace/documents.js'; diff --git a/packages/langium/src/lsp/definition-provider.ts b/packages/langium/src/lsp/definition-provider.ts index ebe0213f4..a9edab761 100644 --- a/packages/langium/src/lsp/definition-provider.ts +++ b/packages/langium/src/lsp/definition-provider.ts @@ -4,7 +4,8 @@ * terms of the MIT License, which is available in the project root. ******************************************************************************/ -import type { CancellationToken, DefinitionParams } from 'vscode-languageserver'; +import type { DefinitionParams } from 'vscode-languageserver'; +import type { CancellationToken } from '../utils/cancellation.js'; import type { GrammarConfig } from '../languages/grammar-config.js'; import type { NameProvider } from '../references/name-provider.js'; import type { References } from '../references/references.js'; diff --git a/packages/langium/src/lsp/document-highlight-provider.ts b/packages/langium/src/lsp/document-highlight-provider.ts index 41fc28d6d..13859cd33 100644 --- a/packages/langium/src/lsp/document-highlight-provider.ts +++ b/packages/langium/src/lsp/document-highlight-provider.ts @@ -4,7 +4,8 @@ * terms of the MIT License, which is available in the project root. ******************************************************************************/ -import type { CancellationToken, DocumentHighlightParams } from 'vscode-languageserver'; +import type { DocumentHighlightParams } from 'vscode-languageserver'; +import type { CancellationToken } from '../utils/cancellation.js'; import type { GrammarConfig } from '../languages/grammar-config.js'; import type { NameProvider } from '../references/name-provider.js'; import type { FindReferencesOptions, References } from '../references/references.js'; diff --git a/packages/langium/src/lsp/document-link-provider.ts b/packages/langium/src/lsp/document-link-provider.ts index a15455045..619b4b9eb 100644 --- a/packages/langium/src/lsp/document-link-provider.ts +++ b/packages/langium/src/lsp/document-link-provider.ts @@ -4,7 +4,8 @@ * terms of the MIT License, which is available in the project root. ******************************************************************************/ -import type { CancellationToken, DocumentLink, DocumentLinkParams } from 'vscode-languageserver'; +import type { DocumentLink, DocumentLinkParams } from 'vscode-languageserver'; +import type { CancellationToken } from '../utils/cancellation.js'; import type { MaybePromise } from '../utils/promise-utils.js'; import type { LangiumDocument } from '../workspace/documents.js'; diff --git a/packages/langium/src/lsp/document-symbol-provider.ts b/packages/langium/src/lsp/document-symbol-provider.ts index 82e5919d5..6cd9f08fb 100644 --- a/packages/langium/src/lsp/document-symbol-provider.ts +++ b/packages/langium/src/lsp/document-symbol-provider.ts @@ -4,7 +4,8 @@ * terms of the MIT License, which is available in the project root. ******************************************************************************/ -import type { CancellationToken, DocumentSymbol, DocumentSymbolParams} from 'vscode-languageserver'; +import type { DocumentSymbol, DocumentSymbolParams } from 'vscode-languageserver'; +import type { CancellationToken } from '../utils/cancellation.js'; import type { NameProvider } from '../references/name-provider.js'; import type { LangiumServices } from './lsp-services.js'; import type { AstNode } from '../syntax-tree.js'; diff --git a/packages/langium/src/lsp/execute-command-handler.ts b/packages/langium/src/lsp/execute-command-handler.ts index 183f7b820..b15cfef2a 100644 --- a/packages/langium/src/lsp/execute-command-handler.ts +++ b/packages/langium/src/lsp/execute-command-handler.ts @@ -7,7 +7,7 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import type { MaybePromise } from '../utils/promise-utils.js'; -import { CancellationToken } from 'vscode-languageserver'; +import { CancellationToken } from '../utils/cancellation.js'; export interface ExecuteCommandHandler { get commands(): string[] diff --git a/packages/langium/src/lsp/folding-range-provider.ts b/packages/langium/src/lsp/folding-range-provider.ts index 19cb78ee6..139bb46d3 100644 --- a/packages/langium/src/lsp/folding-range-provider.ts +++ b/packages/langium/src/lsp/folding-range-provider.ts @@ -4,7 +4,8 @@ * terms of the MIT License, which is available in the project root. ******************************************************************************/ -import type { CancellationToken, FoldingRangeParams } from 'vscode-languageserver'; +import type { FoldingRangeParams } from 'vscode-languageserver'; +import type { CancellationToken } from '../utils/cancellation.js'; import type { LangiumServices } from './lsp-services.js'; import type { AstNode, CstNode } from '../syntax-tree.js'; import type { MaybePromise } from '../utils/promise-utils.js'; diff --git a/packages/langium/src/lsp/formatter.ts b/packages/langium/src/lsp/formatter.ts index 5006298a3..bd489aef2 100644 --- a/packages/langium/src/lsp/formatter.ts +++ b/packages/langium/src/lsp/formatter.ts @@ -4,7 +4,8 @@ * terms of the MIT License, which is available in the project root. ******************************************************************************/ -import type { CancellationToken, DocumentFormattingParams, DocumentOnTypeFormattingOptions, DocumentOnTypeFormattingParams, DocumentRangeFormattingParams, FormattingOptions, Range, TextEdit } from 'vscode-languageserver-protocol'; +import type { DocumentFormattingParams, DocumentOnTypeFormattingOptions, DocumentOnTypeFormattingParams, DocumentRangeFormattingParams, FormattingOptions, Range, TextEdit } from 'vscode-languageserver-protocol'; +import type { CancellationToken } from '../utils/cancellation.js'; import type { AstNode, CstNode, Properties } from '../syntax-tree.js'; import type { MaybePromise } from '../utils/promise-utils.js'; import type { Stream } from '../utils/stream.js'; diff --git a/packages/langium/src/lsp/hover-provider.ts b/packages/langium/src/lsp/hover-provider.ts index 2db183230..e557d5efb 100644 --- a/packages/langium/src/lsp/hover-provider.ts +++ b/packages/langium/src/lsp/hover-provider.ts @@ -4,7 +4,8 @@ * terms of the MIT License, which is available in the project root. ******************************************************************************/ -import type { CancellationToken, Hover, HoverParams } from 'vscode-languageserver'; +import type { Hover, HoverParams } from 'vscode-languageserver'; +import type { CancellationToken } from '../utils/cancellation.js'; import type { GrammarConfig } from '../languages/grammar-config.js'; import type { References } from '../references/references.js'; import type { LangiumServices } from './lsp-services.js'; diff --git a/packages/langium/src/lsp/implementation-provider.ts b/packages/langium/src/lsp/implementation-provider.ts index bdfed7c7c..442bffdcd 100644 --- a/packages/langium/src/lsp/implementation-provider.ts +++ b/packages/langium/src/lsp/implementation-provider.ts @@ -11,7 +11,7 @@ import type { LangiumServices } from './lsp-services.js'; import type { AstNode } from '../syntax-tree.js'; import type { MaybePromise } from '../utils/promise-utils.js'; import type { LangiumDocument } from '../workspace/documents.js'; -import { CancellationToken } from 'vscode-languageserver'; +import { CancellationToken } from '../utils/cancellation.js'; import { findDeclarationNodeAtOffset } from '../utils/cst-utils.js'; /** diff --git a/packages/langium/src/lsp/inlay-hint-provider.ts b/packages/langium/src/lsp/inlay-hint-provider.ts index 0f6a0be09..9078abbec 100644 --- a/packages/langium/src/lsp/inlay-hint-provider.ts +++ b/packages/langium/src/lsp/inlay-hint-provider.ts @@ -6,7 +6,7 @@ import type { InlayHint, InlayHintParams } from 'vscode-languageserver'; import type { AstNode } from '../syntax-tree.js'; -import { CancellationToken } from 'vscode-languageserver'; +import { CancellationToken } from '../utils/cancellation.js'; import type { MaybePromise } from '../utils/promise-utils.js'; import type { LangiumDocument } from '../workspace/documents.js'; import { streamAst } from '../utils/ast-utils.js'; diff --git a/packages/langium/src/lsp/references-provider.ts b/packages/langium/src/lsp/references-provider.ts index 27604b576..0e4ca3eef 100644 --- a/packages/langium/src/lsp/references-provider.ts +++ b/packages/langium/src/lsp/references-provider.ts @@ -4,7 +4,8 @@ * terms of the MIT License, which is available in the project root. ******************************************************************************/ -import type { CancellationToken, ReferenceParams } from 'vscode-languageserver'; +import type { ReferenceParams } from 'vscode-languageserver'; +import type { CancellationToken } from '../utils/cancellation.js'; import type { NameProvider } from '../references/name-provider.js'; import type { References } from '../references/references.js'; import type { LeafCstNode } from '../syntax-tree.js'; diff --git a/packages/langium/src/lsp/rename-provider.ts b/packages/langium/src/lsp/rename-provider.ts index 551f1d4ec..1bb9b3f4e 100644 --- a/packages/langium/src/lsp/rename-provider.ts +++ b/packages/langium/src/lsp/rename-provider.ts @@ -4,7 +4,8 @@ * terms of the MIT License, which is available in the project root. ******************************************************************************/ -import type { CancellationToken, Position, Range, RenameParams, TextDocumentPositionParams, WorkspaceEdit } from 'vscode-languageserver-protocol'; +import type { Position, Range, RenameParams, TextDocumentPositionParams, WorkspaceEdit } from 'vscode-languageserver-protocol'; +import type { CancellationToken } from '../utils/cancellation.js'; import type { GrammarConfig } from '../languages/grammar-config.js'; import type { NameProvider } from '../references/name-provider.js'; import type { References } from '../references/references.js'; diff --git a/packages/langium/src/lsp/semantic-token-provider.ts b/packages/langium/src/lsp/semantic-token-provider.ts index 20f475feb..cada94f27 100644 --- a/packages/langium/src/lsp/semantic-token-provider.ts +++ b/packages/langium/src/lsp/semantic-token-provider.ts @@ -7,7 +7,8 @@ /* eslint-disable no-bitwise */ import type { Range, SemanticTokens, SemanticTokensClientCapabilities, SemanticTokensDelta, SemanticTokensDeltaParams, SemanticTokensOptions, SemanticTokensParams, SemanticTokensRangeParams } from 'vscode-languageserver'; -import { SemanticTokensBuilder as BaseSemanticTokensBuilder, CancellationToken, SemanticTokenModifiers, SemanticTokenTypes } from 'vscode-languageserver'; +import { SemanticTokensBuilder as BaseSemanticTokensBuilder, SemanticTokenModifiers, SemanticTokenTypes } from 'vscode-languageserver'; +import { CancellationToken } from '../utils/cancellation.js'; import type { AstNode, CstNode, Properties } from '../syntax-tree.js'; import { streamAst } from '../utils/ast-utils.js'; import { inRange } from '../utils/cst-utils.js'; diff --git a/packages/langium/src/lsp/signature-help-provider.ts b/packages/langium/src/lsp/signature-help-provider.ts index 37ac7ce43..6eca706f7 100644 --- a/packages/langium/src/lsp/signature-help-provider.ts +++ b/packages/langium/src/lsp/signature-help-provider.ts @@ -5,7 +5,7 @@ ******************************************************************************/ import type { SignatureHelp, SignatureHelpOptions, SignatureHelpParams } from 'vscode-languageserver'; -import { CancellationToken } from 'vscode-languageserver'; +import { CancellationToken } from '../utils/cancellation.js'; import type { AstNode } from '../syntax-tree.js'; import { findLeafNodeAtOffset } from '../utils/cst-utils.js'; import type { MaybePromise } from '../utils/promise-utils.js'; diff --git a/packages/langium/src/lsp/type-provider.ts b/packages/langium/src/lsp/type-provider.ts index a5b697800..19b72a42d 100644 --- a/packages/langium/src/lsp/type-provider.ts +++ b/packages/langium/src/lsp/type-provider.ts @@ -10,7 +10,7 @@ import type { LangiumServices } from './lsp-services.js'; import type { AstNode } from '../syntax-tree.js'; import type { MaybePromise } from '../utils/promise-utils.js'; import type { LangiumDocument } from '../workspace/documents.js'; -import { CancellationToken } from 'vscode-languageserver'; +import { CancellationToken } from '../utils/cancellation.js'; import { findDeclarationNodeAtOffset } from '../utils/cst-utils.js'; /** diff --git a/packages/langium/src/lsp/workspace-symbol-provider.ts b/packages/langium/src/lsp/workspace-symbol-provider.ts index 8e313de89..742c65c04 100644 --- a/packages/langium/src/lsp/workspace-symbol-provider.ts +++ b/packages/langium/src/lsp/workspace-symbol-provider.ts @@ -11,7 +11,7 @@ import type { MaybePromise} from '../utils/promise-utils.js'; import type { AstNodeDescription } from '../syntax-tree.js'; import type { NodeKindProvider } from './node-kind-provider.js'; import type { FuzzyMatcher } from './fuzzy-matcher.js'; -import { CancellationToken } from 'vscode-languageserver'; +import { CancellationToken } from '../utils/cancellation.js'; import { interruptAndCheck } from '../utils/promise-utils.js'; /** diff --git a/packages/langium/src/parser/async-parser.ts b/packages/langium/src/parser/async-parser.ts index 447be0d5c..31b445f27 100644 --- a/packages/langium/src/parser/async-parser.ts +++ b/packages/langium/src/parser/async-parser.ts @@ -4,7 +4,7 @@ * terms of the MIT License, which is available in the project root. ******************************************************************************/ -import type { CancellationToken } from 'vscode-languageserver'; +import type { CancellationToken } from '../utils/cancellation.js'; import type { LangiumCoreServices } from '../services.js'; import type { AstNode } from '../syntax-tree.js'; import type { LangiumParser, ParseResult } from './langium-parser.js'; diff --git a/packages/langium/src/references/linker.ts b/packages/langium/src/references/linker.ts index c75898d2e..8e0cb803f 100644 --- a/packages/langium/src/references/linker.ts +++ b/packages/langium/src/references/linker.ts @@ -9,7 +9,7 @@ import type { AstNode, AstNodeDescription, AstReflection, CstNode, LinkingError, import type { AstNodeLocator } from '../workspace/ast-node-locator.js'; import type { LangiumDocument, LangiumDocuments } from '../workspace/documents.js'; import type { ScopeProvider } from './scope-provider.js'; -import { CancellationToken } from 'vscode-languageserver'; +import { CancellationToken } from '../utils/cancellation.js'; import { isAstNode, isAstNodeDescription, isLinkingError } from '../syntax-tree.js'; import { getDocument, streamAst, streamReferences } from '../utils/ast-utils.js'; import { interruptAndCheck } from '../utils/promise-utils.js'; diff --git a/packages/langium/src/references/scope-computation.ts b/packages/langium/src/references/scope-computation.ts index b0d0c7f85..f2dc81cd8 100644 --- a/packages/langium/src/references/scope-computation.ts +++ b/packages/langium/src/references/scope-computation.ts @@ -9,7 +9,7 @@ import type { AstNode, AstNodeDescription } from '../syntax-tree.js'; import type { AstNodeDescriptionProvider } from '../workspace/ast-descriptions.js'; import type { LangiumDocument, PrecomputedScopes } from '../workspace/documents.js'; import type { NameProvider } from './name-provider.js'; -import { CancellationToken } from 'vscode-jsonrpc'; +import { CancellationToken } from '../utils/cancellation.js'; import { streamAllContents, streamContents } from '../utils/ast-utils.js'; import { MultiMap } from '../utils/collections.js'; import { interruptAndCheck } from '../utils/promise-utils.js'; diff --git a/packages/langium/src/utils/cancellation.ts b/packages/langium/src/utils/cancellation.ts new file mode 100644 index 000000000..1e20f09cb --- /dev/null +++ b/packages/langium/src/utils/cancellation.ts @@ -0,0 +1,7 @@ +/****************************************************************************** + * Copyright 2024 TypeFox GmbH + * This program and the accompanying materials are made available under the + * terms of the MIT License, which is available in the project root. + ******************************************************************************/ + +export * from 'vscode-jsonrpc/lib/common/cancellation.js'; \ No newline at end of file diff --git a/packages/langium/src/utils/index.ts b/packages/langium/src/utils/index.ts index 123e84539..8f42d52b1 100644 --- a/packages/langium/src/utils/index.ts +++ b/packages/langium/src/utils/index.ts @@ -14,7 +14,8 @@ export * from './stream.js'; export * from './uri-utils.js'; import * as AstUtils from './ast-utils.js'; +import * as Cancellation from './cancellation.js'; import * as CstUtils from './cst-utils.js'; import * as GrammarUtils from './grammar-utils.js'; import * as RegExpUtils from './regexp-utils.js'; -export { AstUtils, CstUtils, GrammarUtils, RegExpUtils }; +export { AstUtils, Cancellation, CstUtils, GrammarUtils, RegExpUtils }; diff --git a/packages/langium/src/utils/promise-utils.ts b/packages/langium/src/utils/promise-utils.ts index 8ddad3954..13198092e 100644 --- a/packages/langium/src/utils/promise-utils.ts +++ b/packages/langium/src/utils/promise-utils.ts @@ -4,8 +4,7 @@ * terms of the MIT License, which is available in the project root. ******************************************************************************/ -import type { AbstractCancellationTokenSource } from 'vscode-jsonrpc'; -import { CancellationToken, CancellationTokenSource } from 'vscode-jsonrpc'; +import { CancellationToken, CancellationTokenSource, type AbstractCancellationTokenSource } from '../utils/cancellation.js'; export type MaybePromise = T | Promise diff --git a/packages/langium/src/validation/document-validator.ts b/packages/langium/src/validation/document-validator.ts index fabfe0e11..1c73d2bf5 100644 --- a/packages/langium/src/validation/document-validator.ts +++ b/packages/langium/src/validation/document-validator.ts @@ -12,7 +12,8 @@ import type { LangiumCoreServices } from '../services.js'; import type { AstNode, CstNode } from '../syntax-tree.js'; import type { LangiumDocument } from '../workspace/documents.js'; import type { DiagnosticData, DiagnosticInfo, ValidationAcceptor, ValidationCategory, ValidationRegistry } from './validation-registry.js'; -import { CancellationToken, DiagnosticSeverity, Position, Range } from 'vscode-languageserver'; +import { DiagnosticSeverity, Position, Range } from 'vscode-languageserver'; +import { CancellationToken } from '../utils/cancellation.js'; import { findNodeForKeyword, findNodeForProperty } from '../utils/grammar-utils.js'; import { streamAst } from '../utils/ast-utils.js'; import { tokenToRange } from '../utils/cst-utils.js'; diff --git a/packages/langium/src/validation/validation-registry.ts b/packages/langium/src/validation/validation-registry.ts index b1568c0e9..f77552b82 100644 --- a/packages/langium/src/validation/validation-registry.ts +++ b/packages/langium/src/validation/validation-registry.ts @@ -4,7 +4,8 @@ * terms of the MIT License, which is available in the project root. ******************************************************************************/ -import type { CancellationToken, CodeDescription, DiagnosticRelatedInformation, DiagnosticTag, integer, Range } from 'vscode-languageserver'; +import type { CodeDescription, DiagnosticRelatedInformation, DiagnosticTag, integer, Range } from 'vscode-languageserver'; +import type { CancellationToken } from '../utils/cancellation.js'; import type { LangiumCoreServices } from '../services.js'; import type { AstNode, AstReflection, Properties } from '../syntax-tree.js'; import type { MaybePromise } from '../utils/promise-utils.js'; diff --git a/packages/langium/src/workspace/ast-descriptions.ts b/packages/langium/src/workspace/ast-descriptions.ts index 8968d9d5f..277238d11 100644 --- a/packages/langium/src/workspace/ast-descriptions.ts +++ b/packages/langium/src/workspace/ast-descriptions.ts @@ -10,7 +10,7 @@ import type { LangiumCoreServices } from '../services.js'; import type { AstNode, AstNodeDescription, ReferenceInfo } from '../syntax-tree.js'; import type { AstNodeLocator } from './ast-node-locator.js'; import type { DocumentSegment, LangiumDocument } from './documents.js'; -import { CancellationToken } from 'vscode-languageserver'; +import { CancellationToken } from '../utils/cancellation.js'; import { isLinkingError } from '../syntax-tree.js'; import { getDocument, streamAst, streamReferences } from '../utils/ast-utils.js'; import { toDocumentSegment } from '../utils/cst-utils.js'; diff --git a/packages/langium/src/workspace/document-builder.ts b/packages/langium/src/workspace/document-builder.ts index 6e4b1dae3..84754bfd5 100644 --- a/packages/langium/src/workspace/document-builder.ts +++ b/packages/langium/src/workspace/document-builder.ts @@ -4,7 +4,8 @@ * terms of the MIT License, which is available in the project root. ******************************************************************************/ -import { CancellationToken, Disposable } from 'vscode-jsonrpc'; +import { Disposable } from 'vscode-jsonrpc'; +import { CancellationToken } from '../utils/cancellation.js'; import type { ServiceRegistry } from '../service-registry.js'; import type { LangiumSharedCoreServices } from '../services.js'; import type { AstNode } from '../syntax-tree.js'; diff --git a/packages/langium/src/workspace/documents.ts b/packages/langium/src/workspace/documents.ts index 8865143cc..d07509e35 100644 --- a/packages/langium/src/workspace/documents.ts +++ b/packages/langium/src/workspace/documents.ts @@ -8,7 +8,6 @@ // the overhead is very small, just a few kilobytes export * from 'vscode-languageserver-textdocument'; -import { CancellationToken } from 'vscode-jsonrpc'; import type { Diagnostic, Range } from 'vscode-languageserver-types'; import type { ParseResult } from '../parser/langium-parser.js'; import type { ServiceRegistry } from '../service-registry.js'; @@ -16,6 +15,7 @@ import type { LangiumSharedCoreServices } from '../services.js'; import type { AstNode, AstNodeDescription, Mutable, Reference } from '../syntax-tree.js'; import type { MultiMap } from '../utils/collections.js'; import type { Stream } from '../utils/stream.js'; +import { CancellationToken } from '../utils/cancellation.js'; import { stream } from '../utils/stream.js'; import { URI } from '../utils/uri-utils.js'; import { TextDocument } from './documents.js'; diff --git a/packages/langium/src/workspace/index-manager.ts b/packages/langium/src/workspace/index-manager.ts index 24756adaa..5ab7a0bac 100644 --- a/packages/langium/src/workspace/index-manager.ts +++ b/packages/langium/src/workspace/index-manager.ts @@ -4,12 +4,12 @@ * terms of the MIT License, which is available in the project root. ******************************************************************************/ -import { CancellationToken } from 'vscode-languageserver'; import type { ServiceRegistry } from '../service-registry.js'; import type { LangiumSharedCoreServices } from '../services.js'; import type { AstNode, AstNodeDescription, AstReflection } from '../syntax-tree.js'; import { getDocument } from '../utils/ast-utils.js'; import { ContextCache } from '../utils/caching.js'; +import { CancellationToken } from '../utils/cancellation.js'; import type { Stream } from '../utils/stream.js'; import { stream } from '../utils/stream.js'; import type { URI } from '../utils/uri-utils.js'; diff --git a/packages/langium/src/workspace/workspace-lock.ts b/packages/langium/src/workspace/workspace-lock.ts index 9b9e4ab27..795de45c5 100644 --- a/packages/langium/src/workspace/workspace-lock.ts +++ b/packages/langium/src/workspace/workspace-lock.ts @@ -4,9 +4,8 @@ * terms of the MIT License, which is available in the project root. ******************************************************************************/ -import { CancellationToken, CancellationTokenSource } from 'vscode-jsonrpc'; -import type { MaybePromise } from '../utils/promise-utils.js'; -import { Deferred, isOperationCancelled } from '../utils/promise-utils.js'; +import { CancellationToken, CancellationTokenSource } from '../utils/cancellation.js'; +import { Deferred, isOperationCancelled, type MaybePromise } from '../utils/promise-utils.js'; /** * Utility service to execute mutually exclusive actions. diff --git a/packages/langium/src/workspace/workspace-manager.ts b/packages/langium/src/workspace/workspace-manager.ts index 1223a1189..730b351ba 100644 --- a/packages/langium/src/workspace/workspace-manager.ts +++ b/packages/langium/src/workspace/workspace-manager.ts @@ -4,10 +4,10 @@ * terms of the MIT License, which is available in the project root. ******************************************************************************/ -import { CancellationToken } from 'vscode-jsonrpc'; import type { WorkspaceFolder } from 'vscode-languageserver-types'; import type { ServiceRegistry } from '../service-registry.js'; import type { InitializableService, InitializeParams, InitializedParams, LangiumSharedCoreServices } from '../services.js'; +import { CancellationToken } from '../utils/cancellation.js'; import { interruptAndCheck } from '../utils/promise-utils.js'; import { URI, UriUtils } from '../utils/uri-utils.js'; import type { BuildOptions, DocumentBuilder } from './document-builder.js';