可可TextView中的语法突出显示?经验?有什么建议吗?有想法吗?[重复]

发布于 2021-01-29 15:06:16

这个问题已经在这里有了答案

8年前关闭。

可能重复:
Cocoa应用程序的语法着色

我感兴趣的是 语法高亮显示可可 的TextView。

我发现了一些资源:

  • flex的方法,通过 在委托中匹配的flex模式。在这种方法中,整个字符串会在每个输入事件中进行解析,因此性能会下降。textStorageDidProcessEditing``TextView

  • CocoaDev在语法突出显示主题上自己的页面

    1. 使用NSTextStorageDidProcessEditingNotification,然后获得已编辑的范围,然后在该处应用颜色。范围可以是字边界或任何东西;这绝对可以提高性能。

    2. 此处提到: 例如,Xcode仅使当前屏幕上的文本着色,并推迟为文档的其余部分着色,直到您滚动浏览它为止。 一个人将如何实现呢?

    3. 使用NSLayoutManager–通过 临时属性[临时属性] [仅用于屏幕上的绘图,并且不以任何方式持久化… 如文档所述,但是 在输入空格字符之前它不会为最后编辑的范围着色。

    4. UKSyntaxColoredDocument这样的自定义助手-不错,但是语言定义是通过属性列表完成的;如何使用其他/现有的语言定义?

对我来说,这些方法似乎都不是真正可扩展的或健壮的(除了4 …以外)。

我知道像SHYPYMENTS一样强大的现有库;和PyObjC

问题
:如何使用现有的库(例如pygments)在Cocoa中突出显示可扩展的高性能语法TextView

注意 :我知道这个问题非常广泛(而且时间太长)。欢迎您提供经验和建议以及解决方案。谢谢。


在此问题上发现了另一个类似的主题:Cocoa应用程序的语法着色

关注者
0
被浏览
66
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    我建议看看Smultron的源代码。它具有非常好的语法突出显示。它使用NSTextView的子类来完成大部分繁重的工作。该代码使用布局管理器为文本添加属性,并使用其他一些巧妙的技巧仅突出显示所需的文档。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看