@openfga/frontend-utils
Version:
Exposes helpful utilities for building authoring experiences of OpenFGA Models.
31 lines (30 loc) • 1.65 kB
JavaScript
;
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;