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
index 8b7c752..84b9ad1 100644
--- 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
@@ -83,7 +83,7 @@
 	private final String taskTokenKey;
 	
 	
-	public CommentScanner(final TextStyleManager textStyles, final String commentTokenKey,
+	public CommentScanner(final TextStyleManager<?> textStyles, final String commentTokenKey,
 			final String taskTokenKey,
 			final PreferenceAccess corePrefs) {
 		super(textStyles);
diff --git a/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/internal/nico/ui/preferences/ConsolePreviewSourceViewerConfiguration.java b/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/internal/nico/ui/preferences/ConsolePreviewSourceViewerConfiguration.java
index f6a0653..9ad66ae 100644
--- a/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/internal/nico/ui/preferences/ConsolePreviewSourceViewerConfiguration.java
+++ b/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/internal/nico/ui/preferences/ConsolePreviewSourceViewerConfiguration.java
@@ -15,6 +15,7 @@
 package org.eclipse.statet.internal.nico.ui.preferences;
 
 import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.text.TextAttribute;
 import org.eclipse.jface.text.source.ISourceViewer;
 
 import org.eclipse.statet.jcommons.lang.NonNullByDefault;
@@ -46,7 +47,8 @@
 	
 	
 	public ConsolePreviewSourceViewerConfiguration(final int flags,
-			final IPreferenceStore preferenceStore, final PreferenceStoreTextStyleManager textStyles) {
+			final IPreferenceStore preferenceStore,
+			final PreferenceStoreTextStyleManager<TextAttribute> textStyles) {
 		super(CONTENT_INFO, flags, null);
 		
 		setup(preferenceStore, null, null);
diff --git a/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/internal/nico/ui/preferences/ConsoleTextStylesPreferencePage.java b/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/internal/nico/ui/preferences/ConsoleTextStylesPreferencePage.java
index 013d4e8..32ffe3c 100644
--- a/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/internal/nico/ui/preferences/ConsoleTextStylesPreferencePage.java
+++ b/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/internal/nico/ui/preferences/ConsoleTextStylesPreferencePage.java
@@ -18,6 +18,7 @@
 import org.eclipse.core.runtime.preferences.InstanceScope;
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.jface.text.IDocumentPartitioner;
+import org.eclipse.jface.text.TextAttribute;
 import org.eclipse.osgi.util.NLS;
 import org.eclipse.ui.editors.text.EditorsUI;
 
@@ -127,7 +128,8 @@
 	
 	@Override
 	protected SourceEditorViewerConfiguration getSourceEditorViewerConfiguration(
-			final IPreferenceStore preferenceStore, final PreferenceStoreTextStyleManager textStyles) {
+			final IPreferenceStore preferenceStore,
+			final PreferenceStoreTextStyleManager<TextAttribute> textStyles) {
 		return new ConsolePreviewSourceViewerConfiguration(0,
 				CombinedPreferenceStore.createStore(
 						preferenceStore,
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/RUIPlugin.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/RUIPlugin.java
index 2aea5f5..33daac9 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/RUIPlugin.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/RUIPlugin.java
@@ -32,6 +32,7 @@
 import org.eclipse.core.runtime.preferences.InstanceScope;
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.jface.resource.ImageRegistry;
+import org.eclipse.jface.text.TextAttribute;
 import org.eclipse.jface.text.templates.ContextTypeRegistry;
 import org.eclipse.jface.text.templates.persistence.TemplateStore;
 import org.eclipse.ui.editors.text.EditorsUI;
@@ -146,8 +147,8 @@
 	private RFragmentDocumentProvider rFragmentDocumentProvider;
 	private RdDocumentProvider rdDocumentProvider;
 	
-	private PreferenceStoreTextStyleManager rTextStyles;
-	private PreferenceStoreTextStyleManager rdTextStyles;
+	private JFaceTextStyleManager rTextStyles;
+	private JFaceTextStyleManager rdTextStyles;
 	
 	private RIdentifierGroups identifierGroups;
 	private REditorOptions editorSettings;
@@ -389,7 +390,7 @@
 		return null;
 	}
 	
-	public synchronized PreferenceStoreTextStyleManager getRTextStyles() {
+	public synchronized PreferenceStoreTextStyleManager<TextAttribute> getRTextStyles() {
 		if (this.rTextStyles == null) {
 			if (!this.started) {
 				throw new IllegalStateException("Plug-in is not started.");
@@ -401,7 +402,7 @@
 		return this.rTextStyles;
 	}
 	
-	public synchronized PreferenceStoreTextStyleManager getRdTextStyles() {
+	public synchronized PreferenceStoreTextStyleManager<TextAttribute> getRdTextStyles() {
 		if (this.rdTextStyles == null) {
 			if (!this.started) {
 				throw new IllegalStateException("Plug-in is not started.");
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/pager/TextFileSourceViewerConfiguration.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/pager/TextFileSourceViewerConfiguration.java
index 05b2aa6..de17139 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/pager/TextFileSourceViewerConfiguration.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/pager/TextFileSourceViewerConfiguration.java
@@ -16,6 +16,7 @@
 
 import org.eclipse.jface.text.IDocument;
 import org.eclipse.jface.text.ITypedRegion;
+import org.eclipse.jface.text.TextAttribute;
 import org.eclipse.jface.text.presentation.IPresentationReconciler;
 import org.eclipse.jface.text.presentation.PresentationReconciler;
 import org.eclipse.jface.text.rules.DefaultDamagerRepairer;
@@ -34,10 +35,10 @@
 public class TextFileSourceViewerConfiguration extends SourceViewerConfiguration {
 	
 	
-	private static final TextStyleManager TEXT_STYLE_MANAGER= new TextFilesTextStyleManager();
+	private static final TextStyleManager<TextAttribute> TEXT_STYLE_MANAGER= new TextFilesTextStyleManager();
 	
 	
-	private final TextStyleManager textStyles;
+	private final TextStyleManager<TextAttribute> textStyles;
 	
 	private @Nullable IPresentationReconciler presentationReconciler;
 	private final FixTokenScanner scanner;
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/pager/TextFilesTextStyleManager.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/pager/TextFilesTextStyleManager.java
index 1d3dbc8..5ba1121 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/pager/TextFilesTextStyleManager.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/pager/TextFilesTextStyleManager.java
@@ -31,7 +31,7 @@
 	
 	
 	@Override
-	protected TextAttribute createTextAttributes(final String key) {
+	protected TextAttribute createStyleData(final String key) {
 		int style= 0;
 		if (key == TextFileParser.UNDERLINE_FORMAT_TYPE) {
 			style= SWT.BOLD;
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/preferences/RTextStylesPreferencePage.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/preferences/RTextStylesPreferencePage.java
index a776e0d..323d505 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/preferences/RTextStylesPreferencePage.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/preferences/RTextStylesPreferencePage.java
@@ -19,6 +19,7 @@
 
 import org.eclipse.core.filebuffers.IDocumentSetupParticipant;
 import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.text.TextAttribute;
 import org.eclipse.ui.editors.text.EditorsUI;
 
 import org.eclipse.statet.jcommons.collections.ImList;
@@ -246,7 +247,8 @@
 	
 	@Override
 	protected SourceEditorViewerConfiguration getSourceEditorViewerConfiguration(
-			final IPreferenceStore preferenceStore, final PreferenceStoreTextStyleManager textStyles) {
+			final IPreferenceStore preferenceStore,
+			final PreferenceStoreTextStyleManager<TextAttribute> textStyles) {
 		return new RSourceViewerConfiguration(RDocumentContentInfo.INSTANCE, 0,
 				null,
 				RCore.getDefaultsAccess(),
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/preferences/RdSyntaxColoringPreferencePage.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/preferences/RdSyntaxColoringPreferencePage.java
index fa26d30..4eab8ce 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/preferences/RdSyntaxColoringPreferencePage.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/preferences/RdSyntaxColoringPreferencePage.java
@@ -16,6 +16,7 @@
 
 import org.eclipse.core.filebuffers.IDocumentSetupParticipant;
 import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.text.TextAttribute;
 import org.eclipse.ui.editors.text.EditorsUI;
 
 import org.eclipse.statet.ecommons.preferences.ui.ConfigurationBlock;
@@ -122,7 +123,8 @@
 	
 	@Override
 	protected SourceEditorViewerConfiguration getSourceEditorViewerConfiguration(
-			final IPreferenceStore preferenceStore, final PreferenceStoreTextStyleManager textStyles) {
+			final IPreferenceStore preferenceStore,
+			final PreferenceStoreTextStyleManager<TextAttribute> textStyles) {
 		return new RdSourceViewerConfiguration(0, null, RCore.getDefaultsAccess(),
 				CombinedPreferenceStore.createStore(
 						preferenceStore,
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 12620f0..33f2cb2 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
@@ -23,6 +23,7 @@
 
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.jface.text.ITextDoubleClickStrategy;
+import org.eclipse.jface.text.TextAttribute;
 import org.eclipse.jface.text.source.ISourceViewer;
 
 import org.eclipse.statet.ecommons.text.ICharPairMatcher;
@@ -70,7 +71,8 @@
 	public RdSourceViewerConfiguration(final int flags,
 			final SourceEditor sourceEditor,
 			final RCoreAccess access,
-			final IPreferenceStore preferenceStore, final PreferenceStoreTextStyleManager textStyles) {
+			final IPreferenceStore preferenceStore,
+			final PreferenceStoreTextStyleManager<TextAttribute> textStyles) {
 		super(RdDocumentContentInfo.INSTANCE, flags, sourceEditor);
 		setCoreAccess(access);
 		
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 50df850..741d985 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
@@ -23,6 +23,7 @@
 import org.eclipse.jface.text.IAutoEditStrategy;
 import org.eclipse.jface.text.ITextDoubleClickStrategy;
 import org.eclipse.jface.text.ITextHover;
+import org.eclipse.jface.text.TextAttribute;
 import org.eclipse.jface.text.information.IInformationProvider;
 import org.eclipse.jface.text.reconciler.IReconciler;
 import org.eclipse.jface.text.reconciler.IReconcilingStrategy;
@@ -100,7 +101,8 @@
 	public RSourceViewerConfiguration(final DocContentSections documentContentInfo, final int flags,
 			final RSourceEditor sourceEditor,
 			final RCoreAccess access,
-			final IPreferenceStore preferenceStore, final PreferenceStoreTextStyleManager textStyles) {
+			final IPreferenceStore preferenceStore,
+			final PreferenceStoreTextStyleManager<TextAttribute> textStyles) {
 		super(documentContentInfo, flags, sourceEditor);
 		setCoreAccess(access);
 		setup((preferenceStore != null) ? preferenceStore : RUIPlugin.getInstance().getEditorPreferenceStore(),
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/text/r/RDefaultTextStyleScanner.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/text/r/RDefaultTextStyleScanner.java
index 6c1c51f..8be61c6 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/text/r/RDefaultTextStyleScanner.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/text/r/RDefaultTextStyleScanner.java
@@ -56,13 +56,13 @@
 	private final EnumMap<RTerminal, IToken> tokens;
 	private final IToken defaultToken;
 	private final Map<String, IToken> specialSymbols;
-	private final TextStyleManager textStyles;
+	private final TextStyleManager<?> textStyles;
 	
 	private int currentOffset;
 	private int currentLength;
 	
 	
-	public RDefaultTextStyleScanner(final TextStyleManager textStyles) {
+	public RDefaultTextStyleScanner(final TextStyleManager<?> textStyles) {
 		this.lexer= createLexer();
 		this.lexer.reset(this);
 		this.textStyles= textStyles;
@@ -95,7 +95,7 @@
 		return this.lexer;
 	}
 	
-	protected final TextStyleManager getTextStyles() {
+	protected final TextStyleManager<?> getTextStyles() {
 		return this.textStyles;
 	}
 	
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/text/r/RInfixOperatorScanner.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/text/r/RInfixOperatorScanner.java
index 02cb1b1..af01d09 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/text/r/RInfixOperatorScanner.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/text/r/RInfixOperatorScanner.java
@@ -32,7 +32,7 @@
 public class RInfixOperatorScanner extends AbstractRuleBasedScanner {
 	
 	
-	public RInfixOperatorScanner(final TextStyleManager textStyles) {
+	public RInfixOperatorScanner(final TextStyleManager<?> textStyles) {
 		super(textStyles);
 		
 		initRules();
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 7032f0a..bc0cb5d 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
@@ -97,7 +97,7 @@
 	}
 	
 	
-	public RoxygenScanner(final TextStyleManager textStyles, final PreferenceAccess corePrefs) {
+	public RoxygenScanner(final TextStyleManager<?> textStyles, final PreferenceAccess corePrefs) {
 		super(textStyles, IRTextTokens.ROXYGEN_KEY, IRTextTokens.TASK_TAG_KEY, corePrefs);
 	}
 	
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/text/rd/RdCodeScanner.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/text/rd/RdCodeScanner.java
index d651ed5..91a2f79 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/text/rd/RdCodeScanner.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/text/rd/RdCodeScanner.java
@@ -49,7 +49,7 @@
 	}
 	
 	
-	public RdCodeScanner(final TextStyleManager textStyles) {
+	public RdCodeScanner(final TextStyleManager<?> textStyles) {
 		super(textStyles);
 		
 		initRules();
diff --git a/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/redocs/tex/r/ui/sourceediting/LtxRweaveSourceViewerConfiguration.java b/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/redocs/tex/r/ui/sourceediting/LtxRweaveSourceViewerConfiguration.java
index a8ed122..828b93d 100644
--- a/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/redocs/tex/r/ui/sourceediting/LtxRweaveSourceViewerConfiguration.java
+++ b/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/redocs/tex/r/ui/sourceediting/LtxRweaveSourceViewerConfiguration.java
@@ -16,6 +16,7 @@
 
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.jface.text.ITextDoubleClickStrategy;
+import org.eclipse.jface.text.TextAttribute;
 import org.eclipse.jface.text.information.IInformationProvider;
 import org.eclipse.jface.text.presentation.PresentationReconciler;
 import org.eclipse.jface.text.reconciler.IReconciler;
@@ -141,7 +142,7 @@
 		}
 		
 		@Override
-		protected TextStyleManager getTextStyles() {
+		protected TextStyleManager<TextAttribute> getTextStyles() {
 			return super.getTextStyles();
 		}
 		
diff --git a/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/redocs/wikitext/r/ui/sourceediting/WikidocRweaveSourceViewerConfiguration.java b/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/redocs/wikitext/r/ui/sourceediting/WikidocRweaveSourceViewerConfiguration.java
index 20950f0..203bb65 100644
--- a/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/redocs/wikitext/r/ui/sourceediting/WikidocRweaveSourceViewerConfiguration.java
+++ b/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/redocs/wikitext/r/ui/sourceediting/WikidocRweaveSourceViewerConfiguration.java
@@ -16,6 +16,7 @@
 
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.jface.text.ITextDoubleClickStrategy;
+import org.eclipse.jface.text.TextAttribute;
 import org.eclipse.jface.text.information.IInformationProvider;
 import org.eclipse.jface.text.presentation.PresentationReconciler;
 import org.eclipse.jface.text.reconciler.IReconciler;
@@ -148,7 +149,7 @@
 		}
 		
 		@Override
-		protected TextStyleManager getTextStyles() {
+		protected TextStyleManager<TextAttribute> getTextStyles() {
 			return super.getTextStyles();
 		}
 		
