如何使用 JSON 在 Monaco 编辑器中从 Monarch 定义我的语言

How to use JSON which defines my language from Monarch within Monaco editor

如果我在 Monarch 中为我的新语言语法生成一个 JSON 并且我希望在我的 Monaco 编辑器中使用它,我该怎么做?有没有办法加载这个JSON?我想我可以调用一个函数来将 JSON 添加为一种语言,但我发现很难弄清楚它在哪里。我的想法是应该逐步 a) 制作 Monarch JSON b) 使用一些 Monaco API 来加载它并且 c) 看到它工作。

君主在此

https://microsoft.github.io/monaco-editor/monarch.html

这里是摩纳哥编辑器

https://microsoft.github.io/monaco-editor/

您要找的API是setMonarchTokensProvider

摩纳哥编辑器的 Custom languages 示例中也对此进行了演示。关键部分是这样的:


// Register a new language
monaco.languages.register({ id: 'mySpecialLanguage' });

// Register a tokens provider for the language
monaco.languages.setMonarchTokensProvider('mySpecialLanguage', {
    tokenizer: {
        root: [
            [/\[error.*/, "custom-error"],
            [/\[notice.*/, "custom-notice"],
            [/\[info.*/, "custom-info"],
            [/\[[a-zA-Z 0-9:]+\]/, "custom-date"],
        ]
    }
});