Codemirror是一个出色的JS库,用于语法着色和荧光笔等。我为我的项目创建了一种非常简单的“宏”语言,并希望为其使用Codemirror。但是,为codemirror编写新的模式/词典解析器并不是一件容易的事。不过,好消息是,出色的codemirror-grammar使其成为一个相对简单的任务,而无需成为正则表达式忍者-它使用JSON格式的定义文件,该文件非常易于学习。令人沮丧的是,这些文档并不出色。
我的问题是,如何告诉Codemirror-grammar关键字列表不区分大小写,例如:
MacroVersion should be matched by 'macroversion'.
当前未突出显示“ MacroVersion”。下图。
到目前为止,我已经尝试了什么:我查看了codemirror-grammar的源代码,尽管没有完全理解它,但我认为似乎有一个令牌,如以下突出显示的区分大小写。
我还查看了其他示例代码镜像语法语言示例,但没有在其中找到剪切粘贴解决方案。
针对代码镜像的研究/其他SO问题:
CodeMirror autocomplete: Case In Sensitive Search:不是重复的,特定于python mode.js,并且需要在模式文件中更改源代码,而codemirror-grammar没有模式js文件。
答案 0 :(得分:0)
应用 caseInsensitive = true 例如:
"keyword": {
"autocomplete": true,
"caseInsensitive": true, // <-- make case-insensitive
"tokens": [
"if", "then", "else",
..
]
}
在这里找到: https://github.com/foo123/codemirror-grammar/issues/12#issuecomment-427387653