可可TextView中的语法突出显示?经验?有什么建议吗?有想法吗?[重复]
这个问题已经在这里有了答案 :
8年前关闭。
可能重复:
Cocoa应用程序的语法着色
我感兴趣的是 语法高亮显示 在 可可 的TextView。
我发现了一些资源:
-
flex的方法,通过 在委托中匹配的flex模式。在这种方法中,整个字符串会在每个输入事件中进行解析,因此性能会下降。
textStorageDidProcessEditing``TextView
-
CocoaDev在语法突出显示主题上有自己的页面:
-
使用
NSTextStorageDidProcessEditingNotification
,然后获得已编辑的范围,然后在该处应用颜色。范围可以是字边界或任何东西;这绝对可以提高性能。 -
此处提到: 例如,Xcode仅使当前屏幕上的文本着色,并推迟为文档的其余部分着色,直到您滚动浏览它为止。 一个人将如何实现呢?
-
使用
NSLayoutManager
–通过 临时属性[临时属性] [仅用于屏幕上的绘图,并且不以任何方式持久化… 如文档所述,但是 在输入空格字符之前 , 它不会为最后编辑的范围着色。 -
像UKSyntaxColoredDocument这样的自定义助手-不错,但是语言定义是通过属性列表完成的;如何使用其他/现有的语言定义?
-
对我来说,这些方法似乎都不是真正可扩展的或健壮的(除了4 …以外)。
我知道像SHYPYMENTS一样强大的现有库;和PyObjC。
问题
:如何使用现有的库(例如pygments)在Cocoa中突出显示可扩展的高性能语法TextView
?
注意 :我知道这个问题非常广泛(而且时间太长)。欢迎您提供经验和建议以及解决方案。谢谢。
在此问题上发现了另一个类似的主题:Cocoa应用程序的语法着色