gpt4 book ai didi

language-agnostic - 语法高亮设计模式

转载 作者:行者123 更新时间:2023-12-04 21:27:47 25 4
gpt4 key购买 nike

我正在寻找有关在文本框中启用语法突出显示的最佳实践和常见模式的一些很好的概述。这似乎是一个非常常见的练习,几乎所有语言都有一个 UI 控件,可以在不同语言中启用语法高亮显示。我只是想知道是否有共同的实现模式。

每个人都使用正则表达式吗?是否有语法高亮场景中常用的正则表达式存储库?

是否有替代/更好的语法高亮方法?

更新

有关在给定语言中执行语法突出显示或与语法突出显示相关的概念的相关资源的链接会很棒。 Lexing(词法分析)是在答案中提出的,但没有链接以了解更多信息。任何有助于更好地理解这个普遍解决的问题的东西都会很棒。

Lexical Analysis on Wikipedia

最佳答案

正则表达式绝对是最开始的第一个地方。但是,它们无法真正应对大多数语言中遇到的许多边缘情况——看起来像关键字的文本可以在找到的字符串文字中,而字符串文字又可以包含转义的分隔符以及特殊字符。评论等也是如此。

基本上,要做好语法突出显示,您需要对源进行词法分析 - 使用特定于语言的启发式方法对其进行解析以构建区域列表,其中源的每个区域都用样式进行注释.

随着编辑的进行,您可以再次应用语言规则来查看此更改可以在多大程度上改变区域的呈现方式。例如,在字符串文字中输入一个字母只会使字符串文字区域变长,但输入结束引号会截断该区域并将其剩余部分转换为代码,并遵守所有其他词法规则。

关于language-agnostic - 语法高亮设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/708328/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com