【问题标题】:Grammar injections in Monaco?摩纳哥的语法注射?
【发布时间】:2020-12-18 15:57:59
【问题描述】:

知道如何使用 Monaco 的 API 将 TextMate 语法注入现有的 Monarch 语法(如下所示:https://code.visualstudio.com/api/language-extensions/syntax-highlight-guide#injection-grammars)吗?

基本上,我正在尝试将 vscode-styled-components 的功能带到摩纳哥,但我不知道该怎么做。我研究了负责注册扩展语法贡献的代码,以及用于标记化的代码,但我只是不太清楚它们是如何联系起来的。

谢谢!

【问题讨论】:

    标签: monaco-editor


    【解决方案1】:

    这是不可能的。 TextMate 语法是 vscode 对 Monaco 的补充。您必须自己解析和转换语法才能将它们加载到 Monaco。

    【讨论】:

    • 所以,有这个库 (github.com/bolinfest/monaco-tm) 将 TextMate 语法引入摩纳哥。这会改变你的答案吗?它完美地适用于独立语言,所以在我看来它应该适用于语法注入?
    • 或者,您是说无法将 TextMate 语法注入 Monarch 语法。这是有道理的,但是它似乎确实发生在 VSCode 中(除非在 VSCode 中有一个 JavaScript 语法的 TextMate 版本,当扩展程序向其中注入额外的语法时使用它?)
    • 该工具 monaco-tm 是一个外部库,与 vscode 的功能相同(使用相同的第 3 方库)。有了额外的库,你基本上可以做任何事情,包括编写第二个 vscode。我假设您想知道如何在 monaco-editor 中本地导入 TM 语法。通过使用 monaco-tm,您实际上是在做我推荐的事情:解析和转换自己。
    猜你喜欢
    • 1970-01-01
    • 2017-07-26
    • 1970-01-01
    • 2023-04-04
    • 2018-07-27
    • 1970-01-01
    • 2018-01-21
    • 2018-12-18
    • 1970-01-01
    相关资源
    最近更新 更多