Skip to content

Commit

Permalink
Merge pull request #5345 from Yokozuna59/update-langium-to-v3
Browse files Browse the repository at this point in the history
build(deps): update `langium` to `v3` and apply the required changes
  • Loading branch information
sidharthv96 authored Mar 1, 2024
2 parents 70df6bb + 171a201 commit 70d2362
Show file tree
Hide file tree
Showing 6 changed files with 74 additions and 51 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@
"jison": "^0.4.18",
"js-yaml": "^4.1.0",
"jsdom": "^22.0.0",
"langium-cli": "2.1.0",
"langium-cli": "3.0.1",
"lint-staged": "^13.2.1",
"nyc": "^15.1.0",
"path-browserify": "^1.0.1",
Expand Down
2 changes: 1 addition & 1 deletion packages/parser/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
"ast"
],
"dependencies": {
"langium": "2.1.2"
"langium": "3.0.0"
},
"devDependencies": {
"chevrotain": "^11.0.3"
Expand Down
29 changes: 17 additions & 12 deletions packages/parser/src/language/info/module.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
import type {
DefaultSharedModuleContext,
LangiumServices,
LangiumSharedServices,
DefaultSharedCoreModuleContext,
LangiumCoreServices,
LangiumSharedCoreServices,
Module,
PartialLangiumServices,
PartialLangiumCoreServices,
} from 'langium';
import {
EmptyFileSystem,
createDefaultCoreModule,
createDefaultSharedCoreModule,
inject,
} from 'langium';
import { EmptyFileSystem, createDefaultModule, createDefaultSharedModule, inject } from 'langium';

import { CommonValueConverter } from '../common/index.js';
import { InfoGeneratedModule, MermaidGeneratedSharedModule } from '../generated/module.js';
Expand All @@ -24,13 +29,13 @@ type InfoAddedServices = {
/**
* Union of Langium default services and `Info` services.
*/
export type InfoServices = LangiumServices & InfoAddedServices;
export type InfoServices = LangiumCoreServices & InfoAddedServices;

/**
* Dependency injection module that overrides Langium default services and
* contributes the declared `Info` services.
*/
export const InfoModule: Module<InfoServices, PartialLangiumServices & InfoAddedServices> = {
export const InfoModule: Module<InfoServices, PartialLangiumCoreServices & InfoAddedServices> = {
parser: {
TokenBuilder: () => new InfoTokenBuilder(),
ValueConverter: () => new CommonValueConverter(),
Expand All @@ -51,16 +56,16 @@ export const InfoModule: Module<InfoServices, PartialLangiumServices & InfoAdded
* @param context - Optional module context with the LSP connection
* @returns An object wrapping the shared services and the language-specific services
*/
export function createInfoServices(context: DefaultSharedModuleContext = EmptyFileSystem): {
shared: LangiumSharedServices;
export function createInfoServices(context: DefaultSharedCoreModuleContext = EmptyFileSystem): {
shared: LangiumSharedCoreServices;
Info: InfoServices;
} {
const shared: LangiumSharedServices = inject(
createDefaultSharedModule(context),
const shared: LangiumSharedCoreServices = inject(
createDefaultSharedCoreModule(context),
MermaidGeneratedSharedModule
);
const Info: InfoServices = inject(
createDefaultModule({ shared }),
createDefaultCoreModule({ shared }),
InfoGeneratedModule,
InfoModule
);
Expand Down
33 changes: 21 additions & 12 deletions packages/parser/src/language/packet/module.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,17 @@
import type {
DefaultSharedModuleContext,
LangiumServices,
LangiumSharedServices,
DefaultSharedCoreModuleContext,
LangiumCoreServices,
LangiumSharedCoreServices,
Module,
PartialLangiumServices,
PartialLangiumCoreServices,
} from 'langium';
import { EmptyFileSystem, createDefaultModule, createDefaultSharedModule, inject } from 'langium';
import {
EmptyFileSystem,
createDefaultCoreModule,
createDefaultSharedCoreModule,
inject,
} from 'langium';

import { CommonValueConverter } from '../common/valueConverter.js';
import { MermaidGeneratedSharedModule, PacketGeneratedModule } from '../generated/module.js';
import { PacketTokenBuilder } from './tokenBuilder.js';
Expand All @@ -23,13 +29,16 @@ type PacketAddedServices = {
/**
* Union of Langium default services and `Packet` services.
*/
export type PacketServices = LangiumServices & PacketAddedServices;
export type PacketServices = LangiumCoreServices & PacketAddedServices;

/**
* Dependency injection module that overrides Langium default services and
* contributes the declared `Packet` services.
*/
export const PacketModule: Module<PacketServices, PartialLangiumServices & PacketAddedServices> = {
export const PacketModule: Module<
PacketServices,
PartialLangiumCoreServices & PacketAddedServices
> = {
parser: {
TokenBuilder: () => new PacketTokenBuilder(),
ValueConverter: () => new CommonValueConverter(),
Expand All @@ -50,16 +59,16 @@ export const PacketModule: Module<PacketServices, PartialLangiumServices & Packe
* @param context - Optional module context with the LSP connection
* @returns An object wrapping the shared services and the language-specific services
*/
export function createPacketServices(context: DefaultSharedModuleContext = EmptyFileSystem): {
shared: LangiumSharedServices;
export function createPacketServices(context: DefaultSharedCoreModuleContext = EmptyFileSystem): {
shared: LangiumSharedCoreServices;
Packet: PacketServices;
} {
const shared: LangiumSharedServices = inject(
createDefaultSharedModule(context),
const shared: LangiumSharedCoreServices = inject(
createDefaultSharedCoreModule(context),
MermaidGeneratedSharedModule
);
const Packet: PacketServices = inject(
createDefaultModule({ shared }),
createDefaultCoreModule({ shared }),
PacketGeneratedModule,
PacketModule
);
Expand Down
33 changes: 21 additions & 12 deletions packages/parser/src/language/pie/module.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
import type {
DefaultSharedModuleContext,
LangiumServices,
LangiumSharedServices,
DefaultSharedCoreModuleContext,
LangiumCoreServices,
LangiumSharedCoreServices,
Module,
PartialLangiumServices,
PartialLangiumCoreServices,
} from 'langium';
import {
EmptyFileSystem,
createDefaultCoreModule,
createDefaultSharedCoreModule,
inject,
} from 'langium';
import { EmptyFileSystem, createDefaultModule, createDefaultSharedModule, inject } from 'langium';

import { MermaidGeneratedSharedModule, PieGeneratedModule } from '../generated/module.js';
import { PieTokenBuilder } from './tokenBuilder.js';
Expand All @@ -24,13 +29,13 @@ type PieAddedServices = {
/**
* Union of Langium default services and `Pie` services.
*/
export type PieServices = LangiumServices & PieAddedServices;
export type PieServices = LangiumCoreServices & PieAddedServices;

/**
* Dependency injection module that overrides Langium default services and
* contributes the declared `Pie` services.
*/
export const PieModule: Module<PieServices, PartialLangiumServices & PieAddedServices> = {
export const PieModule: Module<PieServices, PartialLangiumCoreServices & PieAddedServices> = {
parser: {
TokenBuilder: () => new PieTokenBuilder(),
ValueConverter: () => new PieValueConverter(),
Expand All @@ -51,15 +56,19 @@ export const PieModule: Module<PieServices, PartialLangiumServices & PieAddedSer
* @param context - Optional module context with the LSP connection
* @returns An object wrapping the shared services and the language-specific services
*/
export function createPieServices(context: DefaultSharedModuleContext = EmptyFileSystem): {
shared: LangiumSharedServices;
export function createPieServices(context: DefaultSharedCoreModuleContext = EmptyFileSystem): {
shared: LangiumSharedCoreServices;
Pie: PieServices;
} {
const shared: LangiumSharedServices = inject(
createDefaultSharedModule(context),
const shared: LangiumSharedCoreServices = inject(
createDefaultSharedCoreModule(context),
MermaidGeneratedSharedModule
);
const Pie: PieServices = inject(createDefaultModule({ shared }), PieGeneratedModule, PieModule);
const Pie: PieServices = inject(
createDefaultCoreModule({ shared }),
PieGeneratedModule,
PieModule
);
shared.ServiceRegistry.register(Pie);
return { shared, Pie };
}
26 changes: 13 additions & 13 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 70d2362

Please sign in to comment.