Skip to content

Commit 291f5ab

Browse files
committed
added an export * from 'vscode-languageserver-textdocument'; to 'documents.ts for convenience
* the overhead is just very few kilobytes * changed all imports of 'TextDocument' to point to langium
1 parent 8da1d87 commit 291f5ab

File tree

12 files changed

+30
-27
lines changed

12 files changed

+30
-27
lines changed

examples/domainmodel/test/refs-index.test.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,9 @@
55
******************************************************************************/
66

77
import type { AstNode, LangiumDocument, ReferenceDescription, URI } from 'langium';
8-
import { AstUtils, EmptyFileSystem } from 'langium';
8+
import { AstUtils, EmptyFileSystem, TextDocument } from 'langium';
99
import { parseDocument, setTextDocument } from 'langium/test';
1010
import { describe, expect, test } from 'vitest';
11-
import { TextDocument } from 'vscode-languageserver-textdocument';
1211
import { createDomainModelServices } from '../src/language-server/domain-model-module.js';
1312
import type { Domainmodel } from '../src/language-server/generated/ast.js';
1413

packages/langium/src/lsp/completion/completion-provider.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,21 @@
44
* terms of the MIT License, which is available in the project root.
55
******************************************************************************/
66

7-
import type { CancellationToken, CompletionItem, CompletionParams } from 'vscode-languageserver';
8-
import type { TextDocument, TextEdit } from 'vscode-languageserver-textdocument';
7+
import type { CompletionItem, CompletionParams, TextEdit } from 'vscode-languageserver-protocol';
98
import type { LangiumCompletionParser } from '../../parser/langium-parser.js';
109
import type { NameProvider } from '../../references/name-provider.js';
1110
import type { ScopeProvider } from '../../references/scope-provider.js';
1211
import type { LangiumServices } from '../lsp-services.js';
1312
import type { AstNode, AstNodeDescription, AstReflection, CstNode, ReferenceInfo } from '../../syntax-tree.js';
1413
import type { MaybePromise } from '../../utils/promise-utils.js';
15-
import type { LangiumDocument } from '../../workspace/documents.js';
14+
import type { LangiumDocument, TextDocument } from '../../workspace/documents.js';
1615
import type { NextFeature } from './follow-element-computation.js';
1716
import type { NodeKindProvider } from '../node-kind-provider.js';
1817
import type { FuzzyMatcher } from '../fuzzy-matcher.js';
1918
import type { GrammarConfig } from '../../languages/grammar-config.js';
2019
import type { Lexer } from '../../parser/lexer.js';
2120
import type { IToken } from 'chevrotain';
22-
import { CompletionItemKind, CompletionList, Position } from 'vscode-languageserver';
21+
import { CancellationToken, CompletionItemKind, CompletionList, Position } from 'vscode-languageserver';
2322
import * as ast from '../../languages/generated/ast.js';
2423
import { assignMandatoryProperties, getContainerOfType } from '../../utils/ast-utils.js';
2524
import { findDeclarationNodeAtOffset, findLeafNodeBeforeOffset } from '../../utils/cst-utils.js';

packages/langium/src/lsp/default-lsp-module.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
******************************************************************************/
66

77
import { type Connection, TextDocuments } from 'vscode-languageserver';
8-
import { TextDocument } from 'vscode-languageserver-textdocument';
98
import { createDefaultCoreModule, createDefaultSharedCoreModule, type DefaultCoreModuleContext, type DefaultSharedCoreModuleContext } from '../default-module.js';
109
import { Module } from '../dependency-injection.js';
1110
import type { LangiumDefaultCoreServices, LangiumDefaultSharedCoreServices } from '../services.js';
11+
import { TextDocument } from '../workspace/documents.js';
1212
import { DefaultCompletionProvider } from './completion/completion-provider.js';
1313
import { DefaultDefinitionProvider } from './definition-provider.js';
1414
import { DefaultDocumentHighlightProvider } from './document-highlight-provider.js';

packages/langium/src/lsp/document-update-handler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
******************************************************************************/
66

77
import { DidChangeWatchedFilesNotification, FileChangeType, type DidChangeWatchedFilesParams, type DidChangeWatchedFilesRegistrationOptions, type TextDocumentChangeEvent } from 'vscode-languageserver';
8-
import type { TextDocument } from 'vscode-languageserver-textdocument';
98
import { stream } from '../utils/stream.js';
109
import { URI } from '../utils/uri-utils.js';
1110
import type { DocumentBuilder } from '../workspace/document-builder.js';
11+
import type { TextDocument } from '../workspace/documents.js';
1212
import type { WorkspaceLock } from '../workspace/workspace-lock.js';
1313
import type { LangiumSharedServices } from './lsp-services.js';
1414

packages/langium/src/lsp/formatter.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,11 @@
44
* terms of the MIT License, which is available in the project root.
55
******************************************************************************/
66

7-
import type { CancellationToken, DocumentFormattingParams, DocumentOnTypeFormattingOptions, DocumentOnTypeFormattingParams, DocumentRangeFormattingParams, FormattingOptions, Range, TextEdit } from 'vscode-languageserver';
8-
import type { TextDocument } from 'vscode-languageserver-textdocument';
7+
import type { CancellationToken, DocumentFormattingParams, DocumentOnTypeFormattingOptions, DocumentOnTypeFormattingParams, DocumentRangeFormattingParams, FormattingOptions, Range, TextEdit } from 'vscode-languageserver-protocol';
98
import type { AstNode, CstNode, Properties } from '../syntax-tree.js';
109
import type { MaybePromise } from '../utils/promise-utils.js';
1110
import type { Stream } from '../utils/stream.js';
12-
import type { LangiumDocument } from '../workspace/documents.js';
11+
import type { LangiumDocument, TextDocument } from '../workspace/documents.js';
1312
import { findNodeForKeyword, findNodesForKeyword, findNodeForProperty, findNodesForProperty } from '../utils/grammar-utils.js';
1413
import { isCompositeCstNode, isLeafCstNode } from '../syntax-tree.js';
1514
import { streamAllContents } from '../utils/ast-utils.js';

packages/langium/src/lsp/language-server.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import type {
2828
TypeHierarchySubtypesParams,
2929
TypeHierarchySupertypesParams
3030
} from 'vscode-languageserver';
31-
import { DidChangeConfigurationNotification, Emitter, LSPErrorCodes, ResponseError, TextDocumentSyncKind } from 'vscode-languageserver';
31+
import { DidChangeConfigurationNotification, Emitter, LSPErrorCodes, ResponseError, TextDocumentSyncKind } from 'vscode-languageserver-protocol';
3232
import { eagerLoad } from '../dependency-injection.js';
3333
import type { LangiumCoreServices } from '../services.js';
3434
import { isOperationCancelled } from '../utils/promise-utils.js';

packages/langium/src/lsp/lsp-services.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
******************************************************************************/
66

77
import type { Connection, TextDocuments } from 'vscode-languageserver';
8-
import type { TextDocument } from 'vscode-languageserver-textdocument';
98
import type { DeepPartial, LangiumCoreServices, LangiumSharedCoreServices } from '../services.js';
9+
import type { TextDocument } from '../workspace/documents.js';
1010
import type { CallHierarchyProvider } from './call-hierarchy-provider.js';
1111
import type { CodeActionProvider } from './code-action.js';
1212
import type { CodeLensProvider } from './code-lens-provider.js';

packages/langium/src/lsp/rename-provider.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@
44
* terms of the MIT License, which is available in the project root.
55
******************************************************************************/
66

7-
import type { CancellationToken, Position, Range, RenameParams, TextDocumentPositionParams, WorkspaceEdit } from 'vscode-languageserver';
7+
import type { CancellationToken, Position, Range, RenameParams, TextDocumentPositionParams, WorkspaceEdit } from 'vscode-languageserver-protocol';
88
import type { GrammarConfig } from '../languages/grammar-config.js';
99
import type { NameProvider } from '../references/name-provider.js';
1010
import type { References } from '../references/references.js';
1111
import type { LangiumServices } from './lsp-services.js';
1212
import type { CstNode } from '../syntax-tree.js';
1313
import type { MaybePromise } from '../utils/promise-utils.js';
1414
import type { LangiumDocument } from '../workspace/documents.js';
15-
import { TextEdit } from 'vscode-languageserver';
15+
import { TextEdit } from 'vscode-languageserver-types';
1616
import { isNamed } from '../references/name-provider.js';
1717
import { findDeclarationNodeAtOffset } from '../utils/cst-utils.js';
1818

packages/langium/src/test/langium-test.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,16 @@
44
* terms of the MIT License, which is available in the project root.
55
******************************************************************************/
66

7-
import type { CompletionItem, CompletionList, Diagnostic, DocumentSymbol, FoldingRange, FormattingOptions, Range, ReferenceParams, SemanticTokensParams, SemanticTokenTypes, TextDocumentIdentifier, TextDocumentPositionParams, WorkspaceSymbol } from 'vscode-languageserver';
7+
import type { CompletionItem, CompletionList, Diagnostic, DocumentSymbol, FoldingRange, FormattingOptions, Range, ReferenceParams, SemanticTokensParams, SemanticTokenTypes, TextDocumentIdentifier, TextDocumentPositionParams, WorkspaceSymbol } from 'vscode-languageserver-protocol';
88
import type { LangiumCoreServices, LangiumSharedCoreServices } from '../services.js';
99
import type { AstNode, CstNode, Properties } from '../syntax-tree.js';
10-
import type { LangiumDocument } from '../workspace/documents.js';
10+
import { type LangiumDocument, TextDocument } from '../workspace/documents.js';
1111
import type { BuildOptions } from '../workspace/document-builder.js';
12-
import { DiagnosticSeverity, MarkupContent } from 'vscode-languageserver';
12+
import { DiagnosticSeverity, MarkupContent } from 'vscode-languageserver-types';
1313
import { escapeRegExp } from '../utils/regexp-utils.js';
1414
import { URI } from '../utils/uri-utils.js';
1515
import { findNodeForProperty } from '../utils/grammar-utils.js';
1616
import { SemanticTokensDecoder } from '../lsp/semantic-token-provider.js';
17-
import { TextDocument } from 'vscode-languageserver-textdocument';
1817
import * as assert from 'node:assert';
1918
import { stream } from '../utils/stream.js';
2019
import type { AsyncDisposable } from '../utils/disposable.js';

packages/langium/src/workspace/documents.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,27 @@
44
* terms of the MIT License, which is available in the project root.
55
******************************************************************************/
66

7+
/**
8+
* Re-export 'TextDocument' from 'vscode-languageserver-textdocument' for convenience,
9+
* including both type _and_ symbol (namespace), as we here and there also refer to the symbol,
10+
* the overhead is very small, just a few kilobytes.
11+
* Everything else of that package (at the time contributing) is also defined
12+
* in 'vscode-languageserver-protocol' or 'vscode-languageserver-types'.
13+
*/
14+
export { TextDocument } from 'vscode-languageserver-textdocument';
15+
716
import { CancellationToken } from 'vscode-jsonrpc';
8-
import { TextDocument } from 'vscode-languageserver-textdocument';
917
import type { Diagnostic, Range } from 'vscode-languageserver-types';
18+
import type { FileSystemProvider } from './file-system-provider.js';
1019
import type { ParseResult } from '../parser/langium-parser.js';
1120
import type { ServiceRegistry } from '../service-registry.js';
1221
import type { LangiumSharedCoreServices } from '../services.js';
1322
import type { AstNode, AstNodeDescription, Mutable, Reference } from '../syntax-tree.js';
1423
import type { MultiMap } from '../utils/collections.js';
1524
import type { Stream } from '../utils/stream.js';
25+
import { TextDocument } from './documents.js';
1626
import { stream } from '../utils/stream.js';
1727
import { URI } from '../utils/uri-utils.js';
18-
import type { FileSystemProvider } from './file-system-provider.js';
1928

2029
/**
2130
* A Langium document holds the parse result (AST and CST) and any additional state that is derived

0 commit comments

Comments
 (0)