Regex NSTextView上的方法setTextColor:range:的速度慢得可笑
我正在MacOSX中创建一个简单的编辑器,我的编辑器需要对代码进行一些突出显示,例如注释 我正在使用Regex查找所有评论,我最初认为这些评论速度很慢。事实证明,它的工作相当出色。例如,对于387条注释,正则表达式只需“0.008404”s即可找到它们并返回NSRanges数组 但灾难来了。当我尝试使用方法Regex NSTextView上的方法setTextColor:range:的速度慢得可笑,regex,macos,Regex,Macos,我正在MacOSX中创建一个简单的编辑器,我的编辑器需要对代码进行一些突出显示,例如注释 我正在使用Regex查找所有评论,我最初认为这些评论速度很慢。事实证明,它的工作相当出色。例如,对于387条注释,正则表达式只需“0.008404”s即可找到它们并返回NSRanges数组 但灾难来了。当我尝试使用方法setTextColor:range:为文本设置不同的颜色时,它完成得非常慢。它需要额外的9.872964秒(对于我前面提到的387条评论),当评论数量增加时,它会变得非常糟糕 所以。。。有什
setTextColor:range:
为文本设置不同的颜色时,它完成得非常慢。它需要额外的9.872964秒(对于我前面提到的387条评论),当评论数量增加时,它会变得非常糟糕
所以。。。有什么方法可以更快地做到这一点吗?也许是用
NSAttributedString
s 我真的很抱歉,伙计们,stackoverflow给了我关于类似问题的建议(我在搜索时没有找到)
事实证明,您只需告诉NSTextViews TextStorage您将开始进行一些编辑。完成后,您将提交这些更改。代码如下所示:
[textView.textStorage beginEditing];
// do some stuff here
[textview.textStorage endEditing];
现在我用456条注释运行代码,正则表达式需要0.013887 s和着色0.215761 s,这是惊人的下降
不管怎样,我希望有人会觉得这很有用