Skip to content

Commit 8da1d87

Browse files
committed
Introduction of a separate export for LSP services
1 parent 35ce326 commit 8da1d87

File tree

105 files changed

+756
-527
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

105 files changed

+756
-527
lines changed

examples/arithmetics/src/cli/cli-util.ts

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

7-
import type { AstNode, LangiumDocument, LangiumServices } from 'langium';
7+
import type { AstNode, LangiumDocument, LangiumCoreServices } from 'langium';
88
import { URI } from 'langium';
99
import * as fs from 'node:fs';
1010
import * as path from 'node:path';
1111
import chalk from 'chalk';
1212

13-
export async function extractDocument<T extends AstNode>(fileName: string, extensions: readonly string[], services: LangiumServices): Promise<LangiumDocument<T>> {
13+
export async function extractDocument<T extends AstNode>(fileName: string, extensions: readonly string[], services: LangiumCoreServices): Promise<LangiumDocument<T>> {
1414
if (!extensions.includes(path.extname(fileName))) {
1515
console.error(chalk.yellow(`Please, choose a file with one of these extensions: ${extensions}.`));
1616
process.exit(1);
@@ -38,6 +38,6 @@ export async function extractDocument<T extends AstNode>(fileName: string, exten
3838
return document as LangiumDocument<T>;
3939
}
4040

41-
export async function extractAstNode<T extends AstNode>(fileName: string, extensions: string[], services: LangiumServices): Promise<T> {
41+
export async function extractAstNode<T extends AstNode>(fileName: string, extensions: string[], services: LangiumCoreServices): Promise<T> {
4242
return (await extractDocument(fileName, extensions, services)).parseResult.value as T;
4343
}

examples/arithmetics/src/language-server/arithmetics-module.ts

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

7-
import type { DefaultSharedModuleContext, LangiumServices, LangiumSharedServices, Module, PartialLangiumServices } from 'langium';
8-
import { createDefaultModule, createDefaultSharedModule, inject } from 'langium';
9-
import { ArithmeticsGeneratedModule, ArithmeticsGeneratedSharedModule } from './generated/module.js';
10-
import { ArithmeticsValidator, registerValidationChecks } from './arithmetics-validator.js';
7+
import { type Module, inject } from 'langium';
8+
import { createDefaultModule, createDefaultSharedModule, type DefaultSharedModuleContext, type LangiumServices, type LangiumSharedServices, type PartialLangiumServices } from 'langium/lsp';
119
import { ArithmeticsScopeProvider } from './arithmetics-scope-provider.js';
10+
import { ArithmeticsValidator, registerValidationChecks } from './arithmetics-validator.js';
11+
import { ArithmeticsGeneratedModule, ArithmeticsGeneratedSharedModule } from './generated/module.js';
1212

1313
/**
1414
* Declaration of custom services - add your own service classes here.

examples/arithmetics/src/language-server/generated/module.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
* DO NOT EDIT MANUALLY!
44
******************************************************************************/
55

6-
import type { LangiumGeneratedServices, LangiumGeneratedSharedServices, LangiumSharedServices, LangiumServices, LanguageMetaData, Module } from 'langium';
6+
import type { LangiumGeneratedCoreServices, LangiumGeneratedSharedCoreServices, LanguageMetaData, Module } from 'langium';
7+
import type { LangiumSharedServices, LangiumServices } from 'langium/lsp';
78
import { ArithmeticsAstReflection } from './ast.js';
89
import { ArithmeticsGrammar } from './grammar.js';
910

@@ -13,11 +14,11 @@ export const ArithmeticsLanguageMetaData = {
1314
caseInsensitive: true
1415
} as const satisfies LanguageMetaData;
1516

16-
export const ArithmeticsGeneratedSharedModule: Module<LangiumSharedServices, LangiumGeneratedSharedServices> = {
17+
export const ArithmeticsGeneratedSharedModule: Module<LangiumSharedServices, LangiumGeneratedSharedCoreServices> = {
1718
AstReflection: () => new ArithmeticsAstReflection()
1819
};
1920

20-
export const ArithmeticsGeneratedModule: Module<LangiumServices, LangiumGeneratedServices> = {
21+
export const ArithmeticsGeneratedModule: Module<LangiumServices, LangiumGeneratedCoreServices> = {
2122
Grammar: () => ArithmeticsGrammar(),
2223
LanguageMetaData: () => ArithmeticsLanguageMetaData,
2324
parser: {}

examples/arithmetics/src/language-server/main-browser.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
******************************************************************************/
66

77
import type { Diagnostic, Range } from 'vscode-languageserver/browser.js';
8-
import { startLanguageServer, EmptyFileSystem, DocumentState } from 'langium';
8+
import { EmptyFileSystem, DocumentState } from 'langium';
9+
import { startLanguageServer } from 'langium/lsp';
910
import { BrowserMessageReader, BrowserMessageWriter, createConnection, NotificationType } from 'vscode-languageserver/browser.js';
1011
import { createArithmeticsServices } from './arithmetics-module.js';
1112
import { interpretEvaluations } from './arithmetics-evaluator.js';
@@ -53,4 +54,4 @@ shared.workspace.DocumentBuilder.onBuildPhase(DocumentState.Validated, documents
5354
diagnostics: document.diagnostics ?? []
5455
});
5556
}
56-
});
57+
});

examples/arithmetics/src/language-server/main.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* terms of the MIT License, which is available in the project root.
55
******************************************************************************/
66

7-
import { startLanguageServer } from 'langium';
7+
import { startLanguageServer } from 'langium/lsp';
88
import { NodeFileSystem } from 'langium/node';
99
import { createConnection, ProposedFeatures } from 'vscode-languageserver/node.js';
1010
import { createArithmeticsServices } from './arithmetics-module.js';

examples/domainmodel/src/cli/cli-util.ts

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

7-
import type { AstNode, LangiumDocument, LangiumServices } from 'langium';
8-
import type { WorkspaceFolder } from 'vscode-languageserver';
9-
import * as fs from 'node:fs';
10-
import * as path from 'node:path';
117
import chalk from 'chalk';
8+
import type { AstNode, LangiumCoreServices, LangiumDocument, WorkspaceFolder } from 'langium';
129
import { URI } from 'langium';
10+
import * as fs from 'node:fs';
11+
import * as path from 'node:path';
1312

14-
export async function extractDocument<T extends AstNode>(fileName: string, extensions: readonly string[], services: LangiumServices): Promise<LangiumDocument<T>> {
13+
export async function extractDocument<T extends AstNode>(fileName: string, extensions: readonly string[], services: LangiumCoreServices): Promise<LangiumDocument<T>> {
1514
if (!extensions.includes(path.extname(fileName))) {
1615
console.error(chalk.yellow(`Please, choose a file with one of these extensions: ${extensions}.`));
1716
process.exit(1);
@@ -39,11 +38,11 @@ export async function extractDocument<T extends AstNode>(fileName: string, exten
3938
return document as LangiumDocument<T>;
4039
}
4140

42-
export async function extractAstNode<T extends AstNode>(fileName: string, extensions: readonly string[], services: LangiumServices): Promise<T> {
41+
export async function extractAstNode<T extends AstNode>(fileName: string, extensions: readonly string[], services: LangiumCoreServices): Promise<T> {
4342
return (await extractDocument(fileName, extensions, services)).parseResult.value as T;
4443
}
4544

46-
export async function setRootFolder(fileName: string, services: LangiumServices, root?: string): Promise<void> {
45+
export async function setRootFolder(fileName: string, services: LangiumCoreServices, root?: string): Promise<void> {
4746
if (!root) {
4847
root = path.dirname(fileName);
4948
}

examples/domainmodel/src/language-server/domain-model-formatter.ts

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

77
import type { AstNode } from 'langium';
8-
import { AbstractFormatter, Formatting } from 'langium';
8+
import { AbstractFormatter, Formatting } from 'langium/lsp';
99
import * as ast from './generated/ast.js';
1010

1111
export class DomainModelFormatter extends AbstractFormatter {

examples/domainmodel/src/language-server/domain-model-module.ts

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

7-
import type { LangiumServices, Module, PartialLangiumServices, LangiumSharedServices, DefaultSharedModuleContext } from 'langium';
8-
import { inject, createDefaultSharedModule, createDefaultModule } from 'langium';
9-
import { DomainModelGeneratedModule, DomainModelGeneratedSharedModule } from './generated/module.js';
10-
import { DomainModelValidator, registerValidationChecks } from './domain-model-validator.js';
11-
import { DomainModelScopeComputation } from './domain-model-scope.js';
12-
import { QualifiedNameProvider } from './domain-model-naming.js';
7+
import { type Module, inject } from 'langium';
8+
import type { LangiumServices, LangiumSharedServices, PartialLangiumServices } from 'langium/lsp';
9+
import { createDefaultModule, createDefaultSharedModule, type DefaultSharedModuleContext } from 'langium/lsp';
1310
import { DomainModelFormatter } from './domain-model-formatter.js';
11+
import { QualifiedNameProvider } from './domain-model-naming.js';
1412
import { DomainModelRenameProvider } from './domain-model-rename-refactoring.js';
13+
import { DomainModelScopeComputation } from './domain-model-scope.js';
14+
import { DomainModelValidator, registerValidationChecks } from './domain-model-validator.js';
15+
import { DomainModelGeneratedModule, DomainModelGeneratedSharedModule } from './generated/module.js';
1516

1617
export type DomainModelAddedServices = {
1718
references: {
@@ -22,7 +23,7 @@ export type DomainModelAddedServices = {
2223
}
2324
}
2425

25-
export type DomainModelServices = LangiumServices & DomainModelAddedServices
26+
export type DomainModelServices = LangiumServices & DomainModelAddedServices;
2627

2728
export const DomainModelModule: Module<DomainModelServices, PartialLangiumServices & DomainModelAddedServices> = {
2829
references: {

examples/domainmodel/src/language-server/domain-model-rename-refactoring.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,12 @@
55
******************************************************************************/
66

77
import type { AstNode, LangiumDocument, LangiumDocuments, ReferenceDescription, URI } from 'langium';
8-
import type { Range, WorkspaceEdit } from 'vscode-languageserver';
8+
import { AstUtils, CstUtils, isNamed } from 'langium';
9+
import { DefaultRenameProvider } from 'langium/lsp';
910
import type { RenameParams } from 'vscode-languageserver-protocol';
11+
import { Location, TextEdit, type Range, type WorkspaceEdit } from 'vscode-languageserver-types';
1012
import type { DomainModelServices } from './domain-model-module.js';
1113
import type { QualifiedNameProvider } from './domain-model-naming.js';
12-
import { AstUtils, CstUtils, DefaultRenameProvider, isNamed } from 'langium';
13-
import { Location } from 'vscode-languageserver';
14-
import { TextEdit } from 'vscode-languageserver-types';
1514
import { isPackageDeclaration } from './generated/ast.js';
1615

1716
export class DomainModelRenameProvider extends DefaultRenameProvider {

examples/domainmodel/src/language-server/generated/module.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
* DO NOT EDIT MANUALLY!
44
******************************************************************************/
55

6-
import type { LangiumGeneratedServices, LangiumGeneratedSharedServices, LangiumSharedServices, LangiumServices, LanguageMetaData, Module, IParserConfig } from 'langium';
6+
import type { LangiumGeneratedCoreServices, LangiumGeneratedSharedCoreServices, LanguageMetaData, Module, IParserConfig } from 'langium';
7+
import type { LangiumSharedServices, LangiumServices } from 'langium/lsp';
78
import { DomainModelAstReflection } from './ast.js';
89
import { DomainModelGrammar } from './grammar.js';
910

@@ -19,11 +20,11 @@ export const parserConfig: IParserConfig = {
1920
maxLookahead: 3,
2021
};
2122

22-
export const DomainModelGeneratedSharedModule: Module<LangiumSharedServices, LangiumGeneratedSharedServices> = {
23+
export const DomainModelGeneratedSharedModule: Module<LangiumSharedServices, LangiumGeneratedSharedCoreServices> = {
2324
AstReflection: () => new DomainModelAstReflection()
2425
};
2526

26-
export const DomainModelGeneratedModule: Module<LangiumServices, LangiumGeneratedServices> = {
27+
export const DomainModelGeneratedModule: Module<LangiumServices, LangiumGeneratedCoreServices> = {
2728
Grammar: () => DomainModelGrammar(),
2829
LanguageMetaData: () => DomainModelLanguageMetaData,
2930
parser: {

0 commit comments

Comments
 (0)