From 8609bcde51de1c351110edc1166170c79dcd347f Mon Sep 17 00:00:00 2001 From: Benjamin Friedman Wilson Date: Fri, 24 Nov 2023 14:45:17 +0100 Subject: [PATCH] shuffle some services around a bit, attempt to resolve domainmodel issue --- .../src/language-server/domain-model-module.ts | 9 +++++---- examples/domainmodel/test/domainmodel-cli.test.ts | 2 +- packages/langium-sprotty/src/diagram-generator.ts | 3 ++- packages/langium-sprotty/src/diagram-server-manager.ts | 4 ++-- packages/langium-sprotty/src/sprotty-services.ts | 8 ++++---- 5 files changed, 14 insertions(+), 12 deletions(-) diff --git a/examples/domainmodel/src/language-server/domain-model-module.ts b/examples/domainmodel/src/language-server/domain-model-module.ts index d542aa6fa..b642d61f5 100644 --- a/examples/domainmodel/src/language-server/domain-model-module.ts +++ b/examples/domainmodel/src/language-server/domain-model-module.ts @@ -4,15 +4,16 @@ * terms of the MIT License, which is available in the project root. ******************************************************************************/ -import type { LangiumCoreServices, Module, PartialLangiumCoreServices, DefaultSharedModuleContext } from 'langium'; -import { inject, createDefaultSharedModule, createDefaultModule } from 'langium'; +import type { Module, PartialLangiumCoreServices, DefaultSharedModuleContext } from 'langium'; +import { inject, createDefaultModule, createDefaultSharedModule } from 'langium'; import { DomainModelGeneratedModule, DomainModelGeneratedSharedModule } from './generated/module.js'; import { DomainModelValidator, registerValidationChecks } from './domain-model-validator.js'; import { DomainModelScopeComputation } from './domain-model-scope.js'; import { QualifiedNameProvider } from './domain-model-naming.js'; import { DomainModelFormatter } from './domain-model-formatter.js'; import { DomainModelRenameProvider } from './domain-model-rename-refactoring.js'; -import { createSharedLSPModule, createLSPModule, type LangiumLSPServices, type PartialLangiumLSPServices, type LangiumSharedServices } from 'langium/lsp'; +import type { PartialLangiumLSPServices, LangiumSharedServices, LangiumServices } from 'langium/lsp'; +import { createSharedLSPModule, createLSPModule } from 'langium/lsp'; export type DomainModelAddedServices = { references: { @@ -23,7 +24,7 @@ export type DomainModelAddedServices = { } } -export type DomainModelServices = LangiumCoreServices & DomainModelAddedServices & LangiumLSPServices; +export type DomainModelServices = LangiumServices & DomainModelAddedServices; export const DomainModelModule: Module = { references: { diff --git a/examples/domainmodel/test/domainmodel-cli.test.ts b/examples/domainmodel/test/domainmodel-cli.test.ts index 15c804103..a0541e411 100644 --- a/examples/domainmodel/test/domainmodel-cli.test.ts +++ b/examples/domainmodel/test/domainmodel-cli.test.ts @@ -37,7 +37,7 @@ describe('Test the domainmodel CLI', () => { } test('Test action without CLI', async () => { - await generateAction(rawfileName, { destination, quiet: true }); + await generateAction(rawfileName, { destination, quiet: false }); commonExpectations(); }); diff --git a/packages/langium-sprotty/src/diagram-generator.ts b/packages/langium-sprotty/src/diagram-generator.ts index 5fefe1289..30c304b10 100644 --- a/packages/langium-sprotty/src/diagram-generator.ts +++ b/packages/langium-sprotty/src/diagram-generator.ts @@ -4,8 +4,9 @@ * terms of the MIT License, which is available in the project root. ******************************************************************************/ -import type { AstNode, LangiumDocument, LangiumDocuments, LangiumServices } from 'langium'; +import type { AstNode, LangiumDocument, LangiumDocuments } from 'langium'; import { URI } from 'langium'; +import type { LangiumServices } from 'langium/lsp'; import type { GeneratorArguments, IDiagramGenerator, SModelRoot } from 'sprotty-protocol'; import { CancellationToken } from 'vscode-languageserver'; diff --git a/packages/langium-sprotty/src/diagram-server-manager.ts b/packages/langium-sprotty/src/diagram-server-manager.ts index 4cdb96049..14ab67d56 100644 --- a/packages/langium-sprotty/src/diagram-server-manager.ts +++ b/packages/langium-sprotty/src/diagram-server-manager.ts @@ -6,7 +6,7 @@ import type { CancellationToken, Connection } from 'vscode-languageserver'; import type { ActionMessage, DiagramOptions, DiagramServer, RequestModelAction } from 'sprotty-protocol'; -import type { LangiumDocument, ServiceRegistry, URI } from 'langium'; +import type { LangiumDocument, CoreServiceRegistryI, URI } from 'langium'; import type { LangiumSprottyServices, LangiumSprottySharedServices } from './sprotty-services.js'; import type { LangiumDiagramGeneratorArguments } from './diagram-generator.js'; import { isRequestAction, RejectAction } from 'sprotty-protocol'; @@ -34,7 +34,7 @@ export interface DiagramServerManager { export class DefaultDiagramServerManager implements DiagramServerManager { protected readonly connection?: Connection; - protected readonly serviceRegistry: ServiceRegistry; + protected readonly serviceRegistry: CoreServiceRegistryI; protected readonly diagramServerFactory: (clientId: string, options?: DiagramOptions) => DiagramServer; protected readonly diagramServerMap: Map = new Map(); diff --git a/packages/langium-sprotty/src/sprotty-services.ts b/packages/langium-sprotty/src/sprotty-services.ts index f2245dc8e..56dade302 100644 --- a/packages/langium-sprotty/src/sprotty-services.ts +++ b/packages/langium-sprotty/src/sprotty-services.ts @@ -4,8 +4,8 @@ * terms of the MIT License, which is available in the project root. ******************************************************************************/ -import type { LangiumServices } from 'langium'; -import type { LangiumSharedServicesWithLSP } from 'langium/lsp'; +import type { LangiumCoreServices } from 'langium'; +import type { LangiumSharedServices } from 'langium/lsp'; import type { DiagramOptions, DiagramServer, DiagramServices } from 'sprotty-protocol'; import type { DiagramServerManager } from './diagram-server-manager.js'; @@ -19,7 +19,7 @@ export type SprottyDiagramServices = { /** * Extension of the `LangiumServices` with the diagram-related services. */ -export type LangiumSprottyServices = LangiumServices & SprottyDiagramServices +export type LangiumSprottyServices = LangiumCoreServices & SprottyDiagramServices /** * Services provided by the `SprottySharedModule` for the integration of Langium and Sprotty. @@ -34,4 +34,4 @@ export type SprottySharedServices = { /** * Extension of the `LangiumSharedServices` with the diagram-related shared services. */ -export type LangiumSprottySharedServices = LangiumSharedServicesWithLSP & SprottySharedServices +export type LangiumSprottySharedServices = LangiumSharedServices & SprottySharedServices