我正在寻找一些最佳实践和常见模式的良好概述,以便在文本框中启用语法突出显示。这似乎是一个非常常见的练习,几乎所有的语言都有一个UI控件,可以在不同语言中突出显示语法。我只是好奇地想知道是否有一种常见的实现模式。
每个人都在使用正则表达式吗?是否有用于语法高亮场景的正则表达式的存储库?
是否有其他/更好的语法高亮方法?
更新
链接到有关在给定语言或与语法高亮相关的概念中执行语法突出显示的相关资源将是很棒的。词法分析是在一个答案中提出的,但没有一个链接来了解更多。任何有助于更好地理解这个通常解决的问题的东西都是很棒的。
维基百科的词汇分析
发布于 2009-04-02 05:25:21
正则表达式无疑是最开始的第一步。然而,它们实际上不能处理大多数语言中遇到的许多边缘情况--看起来像关键字的文本可以是已找到的字符串文本,字符串文本反过来可以包含转义分隔符以及特殊字符。评论等也是如此。
基本上,要做好语法突出显示的工作,您需要执行源的词法解析,并应用特定于语言的启发式方法来构建一个区域列表,在该列表中,源的每个区域都将注释其样式。
当编辑发生时,您可以再次应用语言规则来查看此更改能在多大程度上改变区域的表示。例如,在字符串文本中键入一个字母只会使字符串文本区域更长,但是输入一个结束引号会截断该区域,并将该区域的剩余部分转换为代码,这取决于所有其他的词法规则。
https://stackoverflow.com/questions/708328
复制相似问题