我如何实现语法高亮方案?

3
我想在一个应用程序中实现语法高亮,但这个应用程序并不是基于Windows Forms的,因此我不能仅仅在普通的文本框中高亮显示文本。相反,我只想能够读取和理解与Visual Studio用于高亮显示文本相同的信息,并在需要时应用该逻辑。如果可能的话,在哪里可以找到这样的API呢?
编辑:如果有人感兴趣,我正在将IronPython解释器嵌入XNA窗口中。如果能像Visual Studio中针对IronPython所接收的输入和输出一样进行语法高亮显示,那就太好了。

我认为Visual Studio使用的逻辑不可用,但有许多第三方提供的代码颜色组件可用,包括付费和免费的。 - Ben Voigt
2个回答

2
我建议查看 Markdown,并附加一些信息 在维基百科上更新:根据您在下面的评论中提供的更新信息,我建议使用 Pygments,这是一个Python语法高亮引擎。

Markdown 有一些要求我无法处理,但我现在会寻找更多的第三方工具,谢谢。 - cory
只是好奇,你的限制要求是什么?注意:[SO]使用基于Markdown的语法高亮。:O) - M. Tibbits
看起来Markdown需要perl(?),而这是一个旨在在Windows上运行的XNA游戏。我猜我可以安装perl,并将其与完成的产品一起分发,但我对它一无所知,考虑到我编辑过的帖子解释了我为什么提出原始问题,这似乎有点复杂(你不觉得吗?)。 - cory
当然。对于XNA游戏,我不会选择Perl路线。但是我必须问一下,在游戏中你想要可视化源代码的哪个部分?如果它不是动态生成的,那为什么不使用样式表或其他方法手动进行语法高亮处理呢? - M. Tibbits
这更像是一个方便的游戏内调试器,而不是其他什么。但是代码组合得非常好,我一直在考虑如果我要分发这个代码,会有哪些好看的功能。抱歉回答晚了,我睡着了。此外,我知道XNA还有其他调试终端,但没有用Python实现的。所以我认为这将是一个很好的练习。 - cory

1

Visual Studios不使用语法高亮。它的IDE执行语言解析,因此可以完全准确。

您将需要找到第三方源才能使用语法高亮。


谢谢。我以为每种 Visual Studio 支持的语言都会有类似于 .vim 文件(以 .NET 对象的形式)的东西。也许我错了。 - cory
Visual Studio不使用语法高亮吗?那么你如何称呼代码关键字、标识符、运算符、注释、文字等的着色? - Igby Largeman
语言解析。- 解析器生成器 - Nahydrin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接