Bug 575348: [R-Editor, Rd-Editor] Make use of CommentScanner of LTK
Change-Id: Iec0bc13eca591acaa57b25722374c9551f0efbb5
diff --git a/r/org.eclipse.statet.ide.core/src/org/eclipse/statet/base/core/preferences/TaskTagsPreferences.java b/r/org.eclipse.statet.ide.core/src/org/eclipse/statet/base/core/preferences/TaskTagsPreferences.java
index 06f431f..bdaa1c2 100644
--- a/r/org.eclipse.statet.ide.core/src/org/eclipse/statet/base/core/preferences/TaskTagsPreferences.java
+++ b/r/org.eclipse.statet.ide.core/src/org/eclipse/statet/base/core/preferences/TaskTagsPreferences.java
@@ -44,11 +44,6 @@
TaskPriority.class );
- public static String[] loadTagsOnly(final PreferenceAccess prefs) {
- return prefs.getPreferenceValue(PREF_TAGS);
- }
-
-
private final ImList<TaskTag> taskTags;
diff --git a/r/org.eclipse.statet.ide.ui/META-INF/MANIFEST.MF b/r/org.eclipse.statet.ide.ui/META-INF/MANIFEST.MF
index c20737c..0466cfd 100644
--- a/r/org.eclipse.statet.ide.ui/META-INF/MANIFEST.MF
+++ b/r/org.eclipse.statet.ide.ui/META-INF/MANIFEST.MF
@@ -30,7 +30,6 @@
org.eclipse.statet.jcommons.collections;version="4.5.0",
org.eclipse.statet.jcommons.lang;version="4.5.0"
Export-Package: org.eclipse.statet.base.ext.templates,
- org.eclipse.statet.base.ext.ui.text,
org.eclipse.statet.base.ui,
org.eclipse.statet.base.ui.contentfilter,
org.eclipse.statet.ecommons.debug.ui.util,
diff --git a/r/org.eclipse.statet.ide.ui/src/org/eclipse/statet/base/ext/ui/text/CommentScanner.java b/r/org.eclipse.statet.ide.ui/src/org/eclipse/statet/base/ext/ui/text/CommentScanner.java
deleted file mode 100644
index 84b9ad1..0000000
--- a/r/org.eclipse.statet.ide.ui/src/org/eclipse/statet/base/ext/ui/text/CommentScanner.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*=============================================================================#
- # Copyright (c) 2005, 2021 Stephan Wahlbrink and others.
- #
- # This program and the accompanying materials are made available under the
- # terms of the Eclipse Public License 2.0 which is available at
- # https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
- # which is available at https://www.apache.org/licenses/LICENSE-2.0.
- #
- # SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
- #
- # Contributors:
- # Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
- #=============================================================================*/
-
-package org.eclipse.statet.base.ext.ui.text;
-
-import static org.eclipse.statet.jcommons.lang.ObjectUtils.nonNullLateInit;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.jface.text.rules.IRule;
-import org.eclipse.jface.text.rules.IToken;
-import org.eclipse.jface.text.rules.IWordDetector;
-import org.eclipse.jface.text.rules.WordRule;
-
-import org.eclipse.statet.jcommons.lang.NonNullByDefault;
-
-import org.eclipse.statet.ecommons.preferences.core.PreferenceAccess;
-import org.eclipse.statet.ecommons.text.ui.presentation.AbstractRuleBasedScanner;
-import org.eclipse.statet.ecommons.text.ui.presentation.ITextPresentationConstants;
-import org.eclipse.statet.ecommons.text.ui.presentation.TextStyleManager;
-import org.eclipse.statet.ecommons.ui.ISettingsChangedHandler;
-
-import org.eclipse.statet.base.core.preferences.TaskTagsPreferences;
-
-
-/**
- * Scanner for comments. Provides support for task tags.
- */
-@NonNullByDefault
-public class CommentScanner extends AbstractRuleBasedScanner implements ISettingsChangedHandler {
-
-
- private static class TaskTagDetector implements IWordDetector {
-
- @Override
- public boolean isWordStart(final char c) {
- return Character.isLetterOrDigit(c);
- }
-
- @Override
- public boolean isWordPart(final char c) {
- return Character.isLetterOrDigit(c);
- }
- }
-
- private static class TaskTagRule extends WordRule {
-
- private final IToken token;
-
- public TaskTagRule(final IToken token, final IToken defaultToken) {
- super(new TaskTagDetector(), defaultToken);
- this.token= token;
- }
-
- public void clearTaskTags() {
- this.fWords.clear();
- }
-
- public void addTaskTags(final String[] tags) {
- for (final String tag : tags) {
- addWord(tag, this.token);
- }
- }
- }
-
-
- private TaskTagRule taskTagRule= nonNullLateInit();
-
- private final String commentTokenKey;
- private final String taskTokenKey;
-
-
- public CommentScanner(final TextStyleManager<?> textStyles, final String commentTokenKey,
- final String taskTokenKey,
- final PreferenceAccess corePrefs) {
- super(textStyles);
-
- this.commentTokenKey= commentTokenKey;
- this.taskTokenKey= taskTokenKey;
-
- initRules();
- loadTaskTags(corePrefs);
- }
-
-
- @Override
- protected void createRules(final List<IRule> rules) {
- final IToken defaultToken= getToken(this.commentTokenKey);
- final IToken taskToken= getToken(this.taskTokenKey);
-
- setDefaultReturnToken(defaultToken);
-
- // Add rule for Task Tags.
- this.taskTagRule= new TaskTagRule(taskToken, defaultToken);
- rules.add(this.taskTagRule);
- }
-
-
- @Override
- public void handleSettingsChanged(final Set<String> groupIds, final Map<String, Object> options) {
- if (groupIds.contains(TaskTagsPreferences.GROUP_ID)) {
- final PreferenceAccess prefs= (PreferenceAccess) options.get(ISettingsChangedHandler.PREFERENCEACCESS_KEY);
- loadTaskTags(prefs);
- options.put(ITextPresentationConstants.SETTINGSCHANGE_AFFECTSPRESENTATION_KEY, Boolean.TRUE);
- }
- }
-
- public void loadTaskTags(final PreferenceAccess prefs) {
- this.taskTagRule.clearTaskTags();
- final String[] tags= TaskTagsPreferences.loadTagsOnly(prefs);
- if (tags != null) {
- this.taskTagRule.addTaskTags(tags);
- }
- }
-
-}
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/editors/RdSourceViewerConfiguration.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/editors/RdSourceViewerConfiguration.java
index 33f2cb2..4da3d6d 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/editors/RdSourceViewerConfiguration.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/editors/RdSourceViewerConfiguration.java
@@ -18,9 +18,6 @@
import static org.eclipse.statet.r.ui.text.rd.IRdTextTokens.PLATFORM_SPECIF;
import static org.eclipse.statet.r.ui.text.rd.IRdTextTokens.TASK_TAG;
-import java.util.Map;
-import java.util.Set;
-
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.text.ITextDoubleClickStrategy;
import org.eclipse.jface.text.TextAttribute;
@@ -32,12 +29,12 @@
import org.eclipse.statet.ecommons.text.ui.settings.PreferenceStoreTextStyleManager;
import org.eclipse.statet.ecommons.ui.ISettingsChangedHandler;
-import org.eclipse.statet.base.ext.ui.text.CommentScanner;
import org.eclipse.statet.internal.r.ui.RUIPlugin;
import org.eclipse.statet.ltk.ui.LtkUIPreferences;
import org.eclipse.statet.ltk.ui.sourceediting.SourceEditor;
import org.eclipse.statet.ltk.ui.sourceediting.SourceEditorViewerConfiguration;
import org.eclipse.statet.ltk.ui.sourceediting.assist.ContentAssist;
+import org.eclipse.statet.ltk.ui.sourceediting.presentation.CommentScanner;
import org.eclipse.statet.r.core.RCore;
import org.eclipse.statet.r.core.RCoreAccess;
import org.eclipse.statet.r.core.source.RDocumentConstants;
@@ -129,12 +126,6 @@
return new String[] { "%", "" }; //$NON-NLS-1$ //$NON-NLS-2$
}
- @Override
- public void handleSettingsChanged(final Set<String> groupIds, final Map<String, Object> options) {
- options.put(ISettingsChangedHandler.PREFERENCEACCESS_KEY, this.fRCoreAccess.getPrefs());
- super.handleSettingsChanged(groupIds, options);
- }
-
@Override
protected ContentAssist createContentAssistant(final ISourceViewer sourceViewer) {
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/sourceediting/RSourceViewerConfiguration.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/sourceediting/RSourceViewerConfiguration.java
index 741d985..b81e662 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/sourceediting/RSourceViewerConfiguration.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/sourceediting/RSourceViewerConfiguration.java
@@ -16,7 +16,6 @@
import java.util.List;
import java.util.Map;
-import java.util.Set;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.jface.preference.IPreferenceStore;
@@ -39,9 +38,7 @@
import org.eclipse.statet.ecommons.text.core.sections.DocContentSections;
import org.eclipse.statet.ecommons.text.ui.presentation.SingleTokenScanner;
import org.eclipse.statet.ecommons.text.ui.settings.PreferenceStoreTextStyleManager;
-import org.eclipse.statet.ecommons.ui.ISettingsChangedHandler;
-import org.eclipse.statet.base.ext.ui.text.CommentScanner;
import org.eclipse.statet.internal.r.ui.RUIPlugin;
import org.eclipse.statet.internal.r.ui.editors.REditor;
import org.eclipse.statet.internal.r.ui.editors.REditorInformationProvider;
@@ -61,6 +58,7 @@
import org.eclipse.statet.ltk.ui.sourceediting.assist.InfoHoverDescriptor;
import org.eclipse.statet.ltk.ui.sourceediting.assist.InfoHoverRegistry;
import org.eclipse.statet.ltk.ui.sourceediting.assist.QuickAssistProcessor;
+import org.eclipse.statet.ltk.ui.sourceediting.presentation.CommentScanner;
import org.eclipse.statet.nico.ui.console.ConsolePageEditor;
import org.eclipse.statet.r.core.RCore;
import org.eclipse.statet.r.core.RCoreAccess;
@@ -139,7 +137,7 @@
new SingleTokenScanner(textStyles, IRTextTokens.STRING_KEY) );
addScanner(RDocumentConstants.R_COMMENT_CONTENT_TYPE,
new CommentScanner(textStyles, IRTextTokens.COMMENT_KEY, IRTextTokens.TASK_TAG_KEY,
- this.fRCoreAccess.getPrefs()) );
+ this.fRCoreAccess.getPrefs() ));
addScanner(RDocumentConstants.R_ROXYGEN_CONTENT_TYPE,
new RoxygenScanner(textStyles, this.fRCoreAccess.getPrefs()) );
}
@@ -166,12 +164,6 @@
return addons;
}
- @Override
- public void handleSettingsChanged(final Set<String> groupIds, final Map<String, Object> options) {
- options.put(ISettingsChangedHandler.PREFERENCEACCESS_KEY, this.fRCoreAccess.getPrefs());
- super.handleSettingsChanged(groupIds, options);
- }
-
@Override
public String[] getConfiguredContentTypes(final ISourceViewer sourceViewer) {
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/text/r/RoxygenScanner.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/text/r/RoxygenScanner.java
index bc0cb5d..21afcc1 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/text/r/RoxygenScanner.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/text/r/RoxygenScanner.java
@@ -27,7 +27,7 @@
import org.eclipse.statet.ecommons.preferences.core.PreferenceAccess;
import org.eclipse.statet.ecommons.text.ui.presentation.TextStyleManager;
-import org.eclipse.statet.base.ext.ui.text.CommentScanner;
+import org.eclipse.statet.ltk.ui.sourceediting.presentation.CommentScanner;
/**