Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.jface.text/src/org/eclipse/jface/internal/text/codemining/CodeMiningLineHeaderAnnotation.java')
-rw-r--r--org.eclipse.jface.text/src/org/eclipse/jface/internal/text/codemining/CodeMiningLineHeaderAnnotation.java42
1 files changed, 12 insertions, 30 deletions
diff --git a/org.eclipse.jface.text/src/org/eclipse/jface/internal/text/codemining/CodeMiningLineHeaderAnnotation.java b/org.eclipse.jface.text/src/org/eclipse/jface/internal/text/codemining/CodeMiningLineHeaderAnnotation.java
index b2540dffe53..21a67dc6aaf 100644
--- a/org.eclipse.jface.text/src/org/eclipse/jface/internal/text/codemining/CodeMiningLineHeaderAnnotation.java
+++ b/org.eclipse.jface.text/src/org/eclipse/jface/internal/text/codemining/CodeMiningLineHeaderAnnotation.java
@@ -94,21 +94,13 @@ public class CodeMiningLineHeaderAnnotation extends LineHeaderAnnotation impleme
@Override
public void update(List<ICodeMining> minings, IProgressMonitor monitor) {
- if (fResolvedMinings == null || (fResolvedMinings.length != minings.size())) {
- // size of resolved minings are different from size of minings to update, initialize it with size of minings to update
- fResolvedMinings= new ICodeMining[minings.size()];
- }
- // fill valid resolved minings with old minings.
- int length= Math.min(fMinings.size(), minings.size());
- for (int i= 0; i < length; i++) {
- ICodeMining mining= fMinings.get(i);
- if (mining.isResolved() && !mining.isResolutionFailed()) {
- fResolvedMinings[i]= mining;
- }
- }
disposeMinings();
fMonitor= monitor;
fMinings.addAll(minings);
+ if (fResolvedMinings == null || (fResolvedMinings.length != fMinings.size())) {
+ // size of resolved minings are different from size of minings to update, initialize it with size of minings to update
+ fResolvedMinings= new ICodeMining[fMinings.size()];
+ }
}
@Override
@@ -134,31 +126,21 @@ public class CodeMiningLineHeaderAnnotation extends LineHeaderAnnotation impleme
fBounds.clear();
for (int i= 0; i < minings.size(); i++) {
ICodeMining mining= minings.get(i);
- if (mining.isResolutionFailed()) {
- // mining has error, try to get the last resolved mining.
- if (fResolvedMinings.length > i) {
- mining= fResolvedMinings[i];
- }
- } else if (!mining.isResolved()) {
- // the mining is not resolved.
- if (!redrawn && !mining.isResolutionFailed()) {
- // redraw the annotation when mining is resolved.
+ if (!mining.isResolved()) {
+ if (!redrawn) {
redraw();
redrawn= true;
}
// try to get the last resolved mining.
- if (fResolvedMinings.length > i) {
+ if (fResolvedMinings != null) {
mining= fResolvedMinings[i];
}
+ if (mining == null) {
+ continue;
+ }
} else {
// mining is resolved, update the resolved mining list
- if (fResolvedMinings.length > i) {
- fResolvedMinings[i]= mining;
- }
- }
- if (mining == null) {
- // the last mining was not resolved, don't draw it.
- continue;
+ fResolvedMinings[i]= mining;
}
// draw the mining
if (nbDraw > 0) {
@@ -195,7 +177,7 @@ public class CodeMiningLineHeaderAnnotation extends LineHeaderAnnotation impleme
// redraw codemining annotation is done only if all current minings are resolved.
List<ICodeMining> minings= new ArrayList<>(fMinings);
for (ICodeMining mining : minings) {
- if (!mining.isResolved() && !mining.isResolutionFailed()) {
+ if (!mining.isResolved()) {
// one of mining is not resolved, resolve it and then redraw the annotation.
mining.resolve(getViewer(), fMonitor).thenRunAsync(() -> {
this.redraw();

Back to the top