问题:
我需要代码实现:对编程语言进行语法高亮
语言: C# 或者汇编 x86 (最好是C#)
平台: Windows
要求: 实现方式最高效/最专业/大公司如微软的实现方式
改写后: 如何以目前已知的最高效方式,在Windows上用C#实现编程语言的语法高亮?
详细说明(可跳过 - 不需要回答问题):
我不想只是采用任何方法 - 我已经看到了几种。
我想知道微软在Visual Studio(任何版本)中是如何做到这么好的。
当涉及到语法高亮时,人们总是试图重新发明轮子。我不明白为什么。
这被认为是一个非常难的问题吗?我已经看到了一些只突出显示当前屏幕内容的实现,我认为这是正确的方式...(它使用了一些聪明的API来知道文本框的哪些行实际上正在显示)。
我也看到了一些使用RichTextBox的实现,我认为那不是正确的方式(也许我在这里是错的) - 我认为像子类化绘制常规文本框的例程并更改其画笔可能更好(也许我在某个地方看到过这样的实现 - 我不认为我自己能想出来)
此外,我听说有些人使用AST来实现,就像编译器一样编码(词法分析部分,我想?) - 我希望那是累赘 - 我不认为那是有效的。(无知的猜测)
如果这确实是一个困难的问题,那么大公司如何总是做对呢?例如,我从未听说过破解Visual Studio中的语法高亮方式。
但任何其他工具实现它都做得很糟糕,或者比大公司做得更差。
什么是官方的“这是最好的方式,任何其他方式都不够高效”的方法?
我真的没有证据表明微软的方式更好,但是考虑到他们可能比其他任何人都更了解Windows API,我猜他们的实现方式是最好的(我希望我错了 - 想象一下能够说我的语法高亮实现比MS的更好!)
抱歉说明有些杂乱无章。
此外,我提前为任何失礼道歉 - 这是我的第一个问题。
我需要代码实现:对编程语言进行语法高亮
语言: C# 或者汇编 x86 (最好是C#)
平台: Windows
要求: 实现方式最高效/最专业/大公司如微软的实现方式
改写后: 如何以目前已知的最高效方式,在Windows上用C#实现编程语言的语法高亮?
详细说明(可跳过 - 不需要回答问题):
我不想只是采用任何方法 - 我已经看到了几种。
我想知道微软在Visual Studio(任何版本)中是如何做到这么好的。
当涉及到语法高亮时,人们总是试图重新发明轮子。我不明白为什么。
这被认为是一个非常难的问题吗?我已经看到了一些只突出显示当前屏幕内容的实现,我认为这是正确的方式...(它使用了一些聪明的API来知道文本框的哪些行实际上正在显示)。
我也看到了一些使用RichTextBox的实现,我认为那不是正确的方式(也许我在这里是错的) - 我认为像子类化绘制常规文本框的例程并更改其画笔可能更好(也许我在某个地方看到过这样的实现 - 我不认为我自己能想出来)
此外,我听说有些人使用AST来实现,就像编译器一样编码(词法分析部分,我想?) - 我希望那是累赘 - 我不认为那是有效的。(无知的猜测)
如果这确实是一个困难的问题,那么大公司如何总是做对呢?例如,我从未听说过破解Visual Studio中的语法高亮方式。
但任何其他工具实现它都做得很糟糕,或者比大公司做得更差。
什么是官方的“这是最好的方式,任何其他方式都不够高效”的方法?
我真的没有证据表明微软的方式更好,但是考虑到他们可能比其他任何人都更了解Windows API,我猜他们的实现方式是最好的(我希望我错了 - 想象一下能够说我的语法高亮实现比MS的更好!)
抱歉说明有些杂乱无章。
此外,我提前为任何失礼道歉 - 这是我的第一个问题。