Bug 211878 - [syntax coloring] PresentationReconciler repairs complete textviewer many times
Summary: [syntax coloring] PresentationReconciler repairs complete textviewer many times
Status: RESOLVED INVALID
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Text (show other bugs)
Version: 3.3   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Platform-Text-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords: performance
Depends on:
Blocks: 113247
  Show dependency tree
 
Reported: 2007-12-04 09:28 EST by Benno Baumgartner CLA
Modified: 2007-12-10 09:49 EST (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Benno Baumgartner CLA 2007-12-04 09:28:53 EST
I20071127-0800

This is a blocker for bug 113247

1. Add 'new Exception(region.toString()).printStackTrace();' to
org.eclipse.jface.text.presentation.PresentationReconciler.InternalListener.textChanged(TextEvent)
line 210
2. Open faust with 9999 spelling errors and spelling errors with 'Native
Problem Underline'
3. Press and hold enter for about 10 seconds
Is:
 you get a couple of stack traces (see below) after you release the key. Each time the complete document is damaged and repaired. Each repair takes a long time
Should:
 exactly one stack trace after key release

The trace:
java.lang.Exception: [0+76881]
        at
org.eclipse.jface.text.presentation.PresentationReconciler$InternalListener.textChanged(PresentationReconciler.java:208)
        at
org.eclipse.jface.text.TextViewer.updateTextListeners(TextViewer.java:2624)
        at
org.eclipse.jface.text.TextViewer.invalidateTextPresentation(TextViewer.java:3271)
        at
org.eclipse.jface.text.source.AnnotationPainter.invalidateTextPresentation(AnnotationPainter.java:959)
        at
org.eclipse.jface.text.source.AnnotationPainter.updatePainting(AnnotationPainter.java:941)
        at
org.eclipse.jface.text.source.AnnotationPainter.access$1(AnnotationPainter.java:935)
        at
org.eclipse.jface.text.source.AnnotationPainter$1.run(AnnotationPainter.java:1074)
        at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
        at
org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:130)
        at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3727)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3364)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2393)
Comment 1 Dani Megert CLA 2007-12-10 09:49:28 EST
This is intended for two reasons:
- the widget itself treats each new character as a separate text change
- we want the syntax coloring to update while the key is pressed