UNPKG

@openfga/frontend-utils

Version:

Exposes helpful utilities for building authoring experiences of OpenFGA Models.

31 lines (30 loc) 1.65 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.registerDSL = void 0; const constants_1 = require("../../constants"); const schema_version_1 = require("../../constants/schema-version"); const language_definition_1 = require("./language-definition"); const hover_actions_1 = require("./providers/hover-actions"); const completion_1 = require("./providers/completion"); const code_actions_1 = require("./providers/code-actions"); const registerDSL = (monaco, schemaVersion = schema_version_1.SchemaVersion.OneDotZero, overrides) => { const isLanguageRegistered = !!monaco.languages .getLanguages() .find((language) => language.id === constants_1.LANGUAGE_NAME); if (isLanguageRegistered) { return; } monaco.languages.register({ id: constants_1.LANGUAGE_NAME }); monaco.languages.setLanguageConfiguration(constants_1.LANGUAGE_NAME, (0, language_definition_1.getLanguageConfiguration)(monaco)); monaco.languages.setMonarchTokensProvider(constants_1.LANGUAGE_NAME, language_definition_1.language); monaco.languages.registerHoverProvider(constants_1.LANGUAGE_NAME, { provideHover: (0, hover_actions_1.providerHover)(monaco, overrides.documentationMap), }); monaco.languages.registerCompletionItemProvider(constants_1.LANGUAGE_NAME, { provideCompletionItems: (0, completion_1.provideCompletionItems)(monaco, schemaVersion), }); monaco.languages.registerCodeActionProvider(constants_1.LANGUAGE_NAME, { provideCodeActions: (0, code_actions_1.provideCodeActions)(monaco, schemaVersion), }); }; exports.registerDSL = registerDSL;