monaco-editor - 将 OCaml 中定义的自定义语言添加到 Monaco Editor
问题描述
我已经在 OCaml 中编写了一个重要的自定义语言。我知道这种方式纯粹是在 JavaScript中让 Monaco Editor 注册一种新语言。但是,我不知道在摩纳哥编辑器中注册时如何利用 OCaml 中定义的语言。
例如,我们已经在 OCaml 中定义了令牌,我们怎么能不在里面重新定义这些令牌monaco.languages.setMonarchTokensProvider
呢?
我在这里做了一个小例子:https ://github.com/chengtie/mylang-monaco-editor 。在OCaml中定义了一种非常简单的语言mylang/
,其中有INT
和BOOL
。在example/index.js
中,我们有以下代码来扩展 Monaco Editor 并实现基本的突出显示。我觉得两次定义这些标记并不好。
monaco.languages.register({ id: 'mySpecialLanguage' });
// Register a tokens provider for the language
monaco.languages.setMonarchTokensProvider('mySpecialLanguage', {
tokenizer: {
root: [
[/[0-9:]+/, "INT"],
[/FALSE|TRUE/, "BOOL"],
]
}
});
// Define a new theme that contains only rules that match this language
monaco.editor.defineTheme('myCoolTheme', {
base: 'vs',
inherit: false,
rules: [
{ token: 'INT', foreground: '008800' },
{ token: 'BOOL', foreground: 'ff0000' },
]
});
有谁知道如何将 OCaml 中定义的语言链接到 Monaco Editor?
解决方案
推荐阅读
- python - 如何通过使用熊猫施加限制来处理异常值?
- r - SAS/R 中的多项式/序数假设检验
- amazon-web-services - AWS Cloudwatch 规则安排 Cron 表达式在一天内跳过 2 小时
- python - 如何正确使用 Pyinstaller?
- python - 是否有任何软件包提供字典、列表等搜索工具
- java - .MySQL 在 JDBC Prepared 语句中抛出错误?
- php - 对于 ClassName/index 和 ClassName [CodeIgniter],从一个函数重定向到另一个函数是不同的
- angular - 以角度减少其他组件中的数字
- swift - 尝试使用环境变量从 HostingViewController 呈现 SwiftUI
- swift - Apple Watch 音乐存储在哪里?