diff options
author | angelozerr | 2018-11-09 08:21:05 +0000 |
---|---|---|
committer | Mickael Istria | 2018-11-16 14:56:41 +0000 |
commit | f5e429604d63d8b053effc10503065c3eb00923c (patch) | |
tree | ecccfe1d8a5c8280f459f7b5c1715a3d4e2a7e2a | |
parent | 1451c934039475c4415853cc28613c5c16e357f4 (diff) | |
download | eclipse.platform.text-f5e429604d63d8b053effc10503065c3eb00923c.tar.gz eclipse.platform.text-f5e429604d63d8b053effc10503065c3eb00923c.tar.xz eclipse.platform.text-f5e429604d63d8b053effc10503065c3eb00923c.zip |
Bug 540950 - [codemining] Setting new code mining providers can leadI20181117-0600I20181116-1800
former ones to exception
Change-Id: I4b74bb6895d51e4392a3b27c8fea0209538e5dc6
Signed-off-by: angelozerr <angelo.zerr@gmail.com>
-rw-r--r-- | org.eclipse.jface.text/src/org/eclipse/jface/internal/text/codemining/CodeMiningManager.java | 10 | ||||
-rw-r--r-- | org.eclipse.jface.text/src/org/eclipse/jface/text/source/SourceViewer.java | 9 |
2 files changed, 10 insertions, 9 deletions
diff --git a/org.eclipse.jface.text/src/org/eclipse/jface/internal/text/codemining/CodeMiningManager.java b/org.eclipse.jface.text/src/org/eclipse/jface/internal/text/codemining/CodeMiningManager.java index 0e9cc07fba1..34e86434d7a 100644 --- a/org.eclipse.jface.text/src/org/eclipse/jface/internal/text/codemining/CodeMiningManager.java +++ b/org.eclipse.jface.text/src/org/eclipse/jface/internal/text/codemining/CodeMiningManager.java @@ -1,11 +1,11 @@ /**
* Copyright (c) 2017 Angelo ZERR.
- * + *
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/ - * + * https://www.eclipse.org/legal/epl-2.0/
+ *
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
@@ -96,6 +96,10 @@ public class CodeMiningManager implements Runnable { * @param codeMiningProviders the codemining providers.
*/
public void setCodeMiningProviders(ICodeMiningProvider[] codeMiningProviders) {
+ cancel();
+ if (fCodeMiningProviders != null) {
+ fCodeMiningProviders.stream().forEach(ICodeMiningProvider::dispose);
+ }
fCodeMiningProviders= Arrays.asList(codeMiningProviders);
}
diff --git a/org.eclipse.jface.text/src/org/eclipse/jface/text/source/SourceViewer.java b/org.eclipse.jface.text/src/org/eclipse/jface/text/source/SourceViewer.java index fc51c3844be..f52244bb86b 100644 --- a/org.eclipse.jface.text/src/org/eclipse/jface/text/source/SourceViewer.java +++ b/org.eclipse.jface.text/src/org/eclipse/jface/text/source/SourceViewer.java @@ -1267,11 +1267,6 @@ public class SourceViewer extends TextViewer implements ISourceViewer, ISourceVi @Override public void setCodeMiningProviders(ICodeMiningProvider[] codeMiningProviders) { - if (fCodeMiningProviders != null) { - for (ICodeMiningProvider contentMiningProvider : fCodeMiningProviders) { - contentMiningProvider.dispose(); - } - } boolean enable= codeMiningProviders != null && codeMiningProviders.length > 0; fCodeMiningProviders= codeMiningProviders; if (enable) { @@ -1299,7 +1294,9 @@ public class SourceViewer extends TextViewer implements ISourceViewer, ISourceVi fInlinedAnnotationSupport= new InlinedAnnotationSupport(); fInlinedAnnotationSupport.install(this, fAnnotationPainter); } - fCodeMiningManager= new CodeMiningManager(this, fInlinedAnnotationSupport, fCodeMiningProviders); + if (fCodeMiningManager == null) { + fCodeMiningManager= new CodeMiningManager(this, fInlinedAnnotationSupport, fCodeMiningProviders); + } // now trigger an update updateCodeMinings(); } |