-1

我现在正在使用 Lazarus 构建一个开发人员编辑器,作为每个优秀的开发人员编辑器,它需要有语法高亮,因此我想知道一些事情:

  • 语法高亮通常是如何构建的(使用许多ifs 来更改 a 上的字体TextField
  • TSynEdit这样做很好吗?
  • 如何使用TSynEdit(链接和资源)?
4

2 回答 2

3

如果您查看SharpDevelop 的编辑器,您实际上可以为自己看到一个很好的示例。它是用 C# 实现的,但使用了很好的 OOP,应该很容易移植到其他平台或语言。

大多数自制的语法荧光笔倾向于使用 MS Windows RichText 控件,但它们通常很慢而且很笨重,并且在添加大量代码时确实会变慢。

于 2010-01-08T22:27:36.510 回答
3

您可以阅读 Eclipse 或 VIM 的源代码。在 Eclipse 中,您将找到一个抽象语法树库。最重要的是经过精心编写以容忍错误的解析器,因为正在进行的代码通常不能满足语言的完整语法。突出显示使用语法树中的信息。

于 2010-01-08T22:29:32.213 回答