diff --git a/r/org.eclipse.statet.r.ui/plugin.xml b/r/org.eclipse.statet.r.ui/plugin.xml
index 419c0e1..770eaf0 100644
--- a/r/org.eclipse.statet.r.ui/plugin.xml
+++ b/r/org.eclipse.statet.r.ui/plugin.xml
@@ -32,6 +32,8 @@
             class="org.eclipse.statet.internal.r.ui.RAdapterFactory">
          <adapter
                type="org.eclipse.statet.ltk.ui.ElementLabelProvider"/>
+         <adapter
+               type="org.eclipse.ui.texteditor.IDocumentProvider"/>
       </adapterFactory>
    </extension>
 
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/RAdapterFactory.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/RAdapterFactory.java
index 83bfe66..ffeb21d 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/RAdapterFactory.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/RAdapterFactory.java
@@ -15,6 +15,7 @@
 package org.eclipse.statet.internal.r.ui;
 
 import org.eclipse.core.runtime.IAdapterFactory;
+import org.eclipse.ui.texteditor.IDocumentProvider;
 
 import org.eclipse.statet.jcommons.lang.NonNull;
 import org.eclipse.statet.jcommons.lang.NonNullByDefault;
@@ -30,6 +31,7 @@
 	
 	private static final @NonNull Class<?>[] ADAPTERS= new @NonNull Class<?>[] {
 		ElementLabelProvider.class,
+		IDocumentProvider.class,
 	};
 	
 	
@@ -48,6 +50,9 @@
 		if (adapterType == ElementLabelProvider.class) {
 			return (T)new RLabelProvider();
 		}
+		if (adapterType == IDocumentProvider.class) {
+			return (T)RUIPlugin.getInstance().getRDocumentProvider();
+		}
 		return null;
 	}
 	
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/editors/ROutlinePage.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/editors/ROutlinePage.java
index 765efd8..6ef7b70 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/editors/ROutlinePage.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/editors/ROutlinePage.java
@@ -44,12 +44,12 @@
 import org.eclipse.statet.ltk.model.core.element.SourceStructElement;
 import org.eclipse.statet.ltk.ui.ElementNameComparator;
 import org.eclipse.statet.ltk.ui.sourceediting.SourceEditor2OutlinePage;
+import org.eclipse.statet.ltk.ui.util.ExtModelLabelProvider;
 import org.eclipse.statet.r.core.refactoring.RRefactoring;
 import org.eclipse.statet.r.core.rmodel.RElement;
 import org.eclipse.statet.r.core.rmodel.RElementName;
 import org.eclipse.statet.r.core.rmodel.RModel;
 import org.eclipse.statet.r.launching.RCodeLaunching;
-import org.eclipse.statet.r.ui.RLabelProvider;
 import org.eclipse.statet.r.ui.RUI;
 
 
@@ -172,7 +172,7 @@
 	protected void configureViewer(final TreeViewer viewer) {
 		super.configureViewer(viewer);
 		
-		viewer.setLabelProvider(new RLabelProvider());
+		viewer.setLabelProvider(new ExtModelLabelProvider(RModel.R_TYPE_ID));
 	}
 	
 	@Override
diff --git a/redocs/org.eclipse.statet.redocs.tex.r/plugin.xml b/redocs/org.eclipse.statet.redocs.tex.r/plugin.xml
index ef360c1..242fcb7 100644
--- a/redocs/org.eclipse.statet.redocs.tex.r/plugin.xml
+++ b/redocs/org.eclipse.statet.redocs.tex.r/plugin.xml
@@ -123,6 +123,8 @@
             class="org.eclipse.statet.internal.redocs.tex.r.ui.TexRweaveAdapterFactory">
          <adapter
                type="org.eclipse.statet.ltk.ui.ElementLabelProvider"/>
+         <adapter
+               type="org.eclipse.ui.texteditor.IDocumentProvider"/>
       </adapterFactory>
    </extension>
    
diff --git a/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/TexRweaveAdapterFactory.java b/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/TexRweaveAdapterFactory.java
index 44d0dde..ac30da1 100644
--- a/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/TexRweaveAdapterFactory.java
+++ b/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/TexRweaveAdapterFactory.java
@@ -15,11 +15,13 @@
 package org.eclipse.statet.internal.redocs.tex.r.ui;
 
 import org.eclipse.core.runtime.IAdapterFactory;
+import org.eclipse.ui.texteditor.IDocumentProvider;
 
 import org.eclipse.statet.jcommons.lang.NonNull;
 import org.eclipse.statet.jcommons.lang.NonNullByDefault;
 import org.eclipse.statet.jcommons.lang.Nullable;
 
+import org.eclipse.statet.internal.redocs.tex.r.RedocsTexRPlugin;
 import org.eclipse.statet.ltk.ui.ElementLabelProvider;
 import org.eclipse.statet.redocs.r.ui.RedocsRElementLabelProvider;
 
@@ -30,6 +32,7 @@
 	
 	private static final @NonNull Class<?>[] ADAPTERS= new @NonNull Class<?>[] {
 		ElementLabelProvider.class,
+		IDocumentProvider.class,
 	};
 	
 	
@@ -48,6 +51,9 @@
 		if (adapterType == ElementLabelProvider.class) {
 			return (T)new RedocsRElementLabelProvider();
 		}
+		if (adapterType == IDocumentProvider.class) {
+			return (T)RedocsTexRPlugin.getInstance().getDocRDocumentProvider();
+		}
 		return null;
 	}
 	
diff --git a/redocs/org.eclipse.statet.redocs.wikitext.r/plugin.xml b/redocs/org.eclipse.statet.redocs.wikitext.r/plugin.xml
index 9ce66fd..7cf5cfa 100644
--- a/redocs/org.eclipse.statet.redocs.wikitext.r/plugin.xml
+++ b/redocs/org.eclipse.statet.redocs.wikitext.r/plugin.xml
@@ -65,6 +65,8 @@
             class="org.eclipse.statet.internal.redocs.wikitext.r.ui.WikitextRweaveAdapterFactory">
          <adapter
                type="org.eclipse.statet.ltk.ui.ElementLabelProvider"/>
+         <adapter
+               type="org.eclipse.ui.texteditor.IDocumentProvider"/>
       </adapterFactory>
    </extension>
    
diff --git a/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/WikitextRweaveAdapterFactory.java b/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/WikitextRweaveAdapterFactory.java
index be78e4d..ee290e3 100644
--- a/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/WikitextRweaveAdapterFactory.java
+++ b/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/WikitextRweaveAdapterFactory.java
@@ -15,11 +15,13 @@
 package org.eclipse.statet.internal.redocs.wikitext.r.ui;
 
 import org.eclipse.core.runtime.IAdapterFactory;
+import org.eclipse.ui.texteditor.IDocumentProvider;
 
 import org.eclipse.statet.jcommons.lang.NonNull;
 import org.eclipse.statet.jcommons.lang.NonNullByDefault;
 import org.eclipse.statet.jcommons.lang.Nullable;
 
+import org.eclipse.statet.internal.redocs.wikitext.r.RedocsWikitextRPlugin;
 import org.eclipse.statet.ltk.ui.ElementLabelProvider;
 import org.eclipse.statet.redocs.r.ui.RedocsRElementLabelProvider;
 
@@ -30,6 +32,7 @@
 	
 	private static final @NonNull Class<?>[] ADAPTERS= new @NonNull Class<?>[] {
 		ElementLabelProvider.class,
+		IDocumentProvider.class,
 	};
 	
 	
@@ -48,6 +51,9 @@
 		if (adapterType == ElementLabelProvider.class) {
 			return (T)new RedocsRElementLabelProvider();
 		}
+		if (adapterType == IDocumentProvider.class) {
+			return (T)RedocsWikitextRPlugin.getInstance().getDocRDocumentProvider();
+		}
 		return null;
 	}
 	
