Eclipse plugin 打开文档时会调用Damager 1到3次

Eclipse plugin 打开文档时会调用Damager 1到3次,eclipse-plugin,jface,Eclipse Plugin,Jface,我已经为Eclipse创建了一个基于标准TextEditor类的编辑器。 对于这个编辑器,我已经实现了几个自己的damager/repairer类,它们正在实现ITokenScanner接口。 现在我意外地发现,在加载文档时,有时会多次执行这些损坏。经过一些调试后,我发现发生了什么: 第一次解析文档发生在文件加载之后,在编辑器中可见之前 仅当文档具有标记时,才会调用第二个解析器;然后,AnnotationPainter对整个文档执行invalidTextPresentation方法,然后再次解

我已经为Eclipse创建了一个基于标准TextEditor类的编辑器。 对于这个编辑器,我已经实现了几个自己的damager/repairer类,它们正在实现ITokenScanner接口。 现在我意外地发现,在加载文档时,有时会多次执行这些损坏。经过一些调试后,我发现发生了什么:

  • 第一次解析文档发生在文件加载之后,在编辑器中可见之前
  • 仅当文档具有标记时,才会调用第二个解析器;然后,AnnotationPainter对整个文档执行invalidTextPresentation方法,然后再次解析所有内容
  • 根据文件的内容,可能存在可折叠区域;如果存在区域,将再次执行损坏者/维修者
这意味着,如果文档没有标记,也没有可折叠区域,则只有在可见之前才会对其进行分析。如果有标记或可折叠区域,它将分别再次解析。两次。 对于小文件,这不是问题,但对于大文件,这可能会令人不安

有没有可能减少解析器调用的数量