我可以使用哪些库来突出显示C#中流行语言的语法?

时间:2017-06-10 23:25:48

标签: c# .net parsing grammar textmate

我有兴趣在C#中使用Android创建代码编辑器应用程序(使用Xamarin)。显然,任何优秀的代码编辑器的必需品之一是针对各种流行语言的语法突出显示。我不想自己为所有这些语言编写自定义标记符,所以我正在寻找一个已经有语法的库。

从浏览VSCode editor source code开始,我知道某些语言有许多预定义的语法文件,采用.tmLanguage(TextMate风格)或.cson(Atom风格)格式。例如,here是Atom维护的一堆语法,here是.NET Foundation维护的官方C#语法。

我最初寻找一个解析这些文件的.NET库,并允许我将它们与表达式匹配,但AFAICS不存在。像vscode-textmatetextpow这样的东西就是我正在寻找的东西,但那些不是用.NET编写的。

有人能指出我能帮助我达到这个目的的图书馆吗?另外,如果找不到任何内容,使用.NET JavaScript engine来执行上述库中的函数会是个好主意吗?通常我会毫不犹豫地使用引擎,但我担心几百毫秒的延迟对于语法高亮来说是不可接受的。

1 个答案:

答案 0 :(得分:2)

对于我目前的一个项目,我对可用的语法分析器进行了研究。其中一个是ANTLR,这是一篇关于如何在C#中使用它的文章:https://tomassetti.me/getting-started-with-antlr-in-csharp/

它有一个非常大的(超过100个)不同语言的预构建语法集合:https://github.com/antlr/grammars-v4

ANTLR是基于Java的,所以我想在Android上运行它不会是一个问题。