module.jsā¢1.81 kB
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ArchitectureModule = void 0;
exports.createArchitectureServices = createArchitectureServices;
const langium_1 = require("langium");
const module_js_1 = require("../generated/module.js");
const tokenBuilder_js_1 = require("./tokenBuilder.js");
const valueConverter_js_1 = require("./valueConverter.js");
/**
* Dependency injection module that overrides Langium default services and
* contributes the declared `Architecture` services.
*/
exports.ArchitectureModule = {
parser: {
TokenBuilder: () => new tokenBuilder_js_1.ArchitectureTokenBuilder(),
ValueConverter: () => new valueConverter_js_1.ArchitectureValueConverter(),
},
};
/**
* Create the full set of services required by Langium.
*
* First inject the shared services by merging two modules:
* - Langium default shared services
* - Services generated by langium-cli
*
* Then inject the language-specific services by merging three modules:
* - Langium default language-specific services
* - Services generated by langium-cli
* - Services specified in this file
* @param context - Optional module context with the LSP connection
* @returns An object wrapping the shared services and the language-specific services
*/
function createArchitectureServices(context = langium_1.EmptyFileSystem) {
const shared = (0, langium_1.inject)((0, langium_1.createDefaultSharedCoreModule)(context), module_js_1.MermaidGeneratedSharedModule);
const Architecture = (0, langium_1.inject)((0, langium_1.createDefaultCoreModule)({ shared }), module_js_1.ArchitectureGeneratedModule, exports.ArchitectureModule);
shared.ServiceRegistry.register(Architecture);
return { shared, Architecture };
}
//# sourceMappingURL=module.js.map