我想在 基于 C++的括号代码编辑器中添加一种新语言(称为“kiwi”)。它使用完全相同的规则,但有额外的关键字。
我已经完成了直接在clike.js
文件上添加带有单独语法突出显示的附加关键字的部分,但我真的不喜欢直接修改 C++ 的 def
有人可以向我解释如何实现这一目标吗?我真的不明白使用def()
和之间的区别CodeMirror.defineMIME()
。如果这种新语言将采用 cpp/hpp 输入文件,那么编辑器将如何从 C++ -> kiwi 切换?
提前致谢
我想在 基于 C++的括号代码编辑器中添加一种新语言(称为“kiwi”)。它使用完全相同的规则,但有额外的关键字。
我已经完成了直接在clike.js
文件上添加带有单独语法突出显示的附加关键字的部分,但我真的不喜欢直接修改 C++ 的 def
有人可以向我解释如何实现这一目标吗?我真的不明白使用def()
和之间的区别CodeMirror.defineMIME()
。如果这种新语言将采用 cpp/hpp 输入文件,那么编辑器将如何从 C++ -> kiwi 切换?
提前致谢
正如您所做的那样,修补您的本地代码副本可能非常适合您的需求。(如果您从源代码的 Git 副本运行,很容易拉下更新而不会丢失本地差异)。
如果你想用一种“更干净”的方式来做,你可以编写一个 Brackets 扩展来定义新语言——这样更改很容易与其他人共享,并且更新 Brackets 更加容易。
您执行此操作的方式大致遵循定义新语言文档:
CodeMirror.defineMIME()
以使用正确的关键字列表设置 clike 配置 - 使用您选择的新 mimetype 名称。(查看def()
clike.js 中的代码,我不认为它所做的额外内容与括号特别相关)。LanguageManager.defineLanguage()
告诉 Brackets 你的新语言模式(以及映射到它的文件扩展名等)。您应该能够主要复制此处定义 C++ 模式的方式- 使用新的 MIME 名称除外。您应该阅读 CodeMirror 文档以了解如何编写您的模式。
但简而言之,您可以定义自己的 clike 语言类型,方法是使用CodeMirror.defineMIME()
.
def()
您还问和之间有什么区别CodeMirror.defineMIME()
。如果您查看代码,您可以看到def()
函数CodeMirror.defineMIME()
在最后调用,所以我相信这只是定义类型的一种更易读的方式。
此外,似乎不可能在同一扩展类型上定义一种以上的语言(不是 100% 确定)。