diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditor.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditor.cs
index f83a0b1942..55a3057cb5 100644
--- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditor.cs
+++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditor.cs
@@ -35,6 +35,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
{
///
/// Integrates AvalonEdit with SharpDevelop.
+ /// Also provides support for Split-View (showing two AvalonEdit instances using the same TextDocument)
///
public class CodeEditor : Grid
{
@@ -85,8 +86,11 @@ namespace ICSharpCode.AvalonEdit.AddIn
get { return primaryTextEditorAdapter.Document; }
}
+ public ITextEditor PrimaryTextEditorAdapter {
+ get { return primaryTextEditorAdapter; }
+ }
- public CodeEditorAdapter ActiveTextEditorAdapter {
+ public ITextEditor ActiveTextEditorAdapter {
get { return GetAdapter(this.ActiveTextEditor); }
}
@@ -234,8 +238,6 @@ namespace ICSharpCode.AvalonEdit.AddIn
secondaryTextEditor.SetBinding(TextEditor.DocumentProperty,
new Binding(TextEditor.DocumentProperty.Name) { Source = primaryTextEditor });
- secondaryTextEditor.TextArea.SetBinding(TextArea.IndentationStrategyProperty,
- new Binding(TextArea.IndentationStrategyProperty.Name) { Source = primaryTextEditor.TextArea });
secondaryTextEditor.SyntaxHighlighting = primaryTextEditor.SyntaxHighlighting;
SetRow(secondaryTextEditor, 2);
diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditorAdapter.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditorAdapter.cs
index 3088674165..96e02823ca 100644
--- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditorAdapter.cs
+++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditorAdapter.cs
@@ -19,7 +19,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
///
/// Wraps the CodeEditor class to provide the ITextEditor interface.
///
- public class CodeEditorAdapter : AvalonEditTextEditorAdapter
+ sealed class CodeEditorAdapter : AvalonEditTextEditorAdapter
{
readonly CodeEditor codeEditor;
@@ -88,5 +88,9 @@ namespace ICSharpCode.AvalonEdit.AddIn
public override IInsightWindow ActiveInsightWindow {
get { return codeEditor.ActiveInsightWindow; }
}
+
+ public override ITextEditor PrimaryView {
+ get { return codeEditor.PrimaryTextEditorAdapter; }
+ }
}
}
diff --git a/src/Libraries/SharpTreeView/ICSharpCode.TreeView.Demo/ICSharpCode.TreeView.Demo.csproj b/src/Libraries/SharpTreeView/ICSharpCode.TreeView.Demo/ICSharpCode.TreeView.Demo.csproj
index 2032f2470f..128aea42a8 100644
--- a/src/Libraries/SharpTreeView/ICSharpCode.TreeView.Demo/ICSharpCode.TreeView.Demo.csproj
+++ b/src/Libraries/SharpTreeView/ICSharpCode.TreeView.Demo/ICSharpCode.TreeView.Demo.csproj
@@ -1,5 +1,5 @@
-
+
Debug
AnyCPU
@@ -10,7 +10,7 @@
Properties
ICSharpCode.TreeView.Demo
ICSharpCode.TreeView.Demo
- v3.5
+ v4.0
512
{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
4
diff --git a/src/Main/Base/Project/Src/Editor/AvalonEdit/AvalonEditTextEditorAdapter.cs b/src/Main/Base/Project/Src/Editor/AvalonEdit/AvalonEditTextEditorAdapter.cs
index 295ac7a6a2..3f1bf35d67 100644
--- a/src/Main/Base/Project/Src/Editor/AvalonEdit/AvalonEditTextEditorAdapter.cs
+++ b/src/Main/Base/Project/Src/Editor/AvalonEdit/AvalonEditTextEditorAdapter.cs
@@ -223,5 +223,11 @@ namespace ICSharpCode.SharpDevelop.Editor.AvalonEdit
{
return null;
}
+
+ public virtual ITextEditor PrimaryView {
+ get {
+ return this;
+ }
+ }
}
}
diff --git a/src/Main/Base/Project/Src/Editor/ITextEditor.cs b/src/Main/Base/Project/Src/Editor/ITextEditor.cs
index 09741eea29..44bc3dbe73 100644
--- a/src/Main/Base/Project/Src/Editor/ITextEditor.cs
+++ b/src/Main/Base/Project/Src/Editor/ITextEditor.cs
@@ -26,8 +26,26 @@ namespace ICSharpCode.SharpDevelop.Editor
///
public interface ITextEditor : IServiceProvider
{
+ ///
+ /// Gets the primary view if split-view is active.
+ /// If split-view is disabled, the current ITextEditor instance is returned.
+ ///
+ /// bool isSecondaryView = (editor != editor.PrimaryView);
+ ITextEditor PrimaryView { get; }
+
+ ///
+ /// Gets the document that is being edited.
+ ///
IDocument Document { get; }
+
+ ///
+ /// Gets an object that represents the caret inside this text editor.
+ ///
ITextEditorCaret Caret { get; }
+
+ ///
+ /// Gets the set of options used in the text editor.
+ ///
ITextEditorOptions Options { get; }
ILanguageBinding Language { get; }
diff --git a/src/Main/Base/Project/Src/TextEditor/Gui/TextEditorAdapter.cs b/src/Main/Base/Project/Src/TextEditor/Gui/TextEditorAdapter.cs
index f1e8127027..c4344f536a 100644
--- a/src/Main/Base/Project/Src/TextEditor/Gui/TextEditorAdapter.cs
+++ b/src/Main/Base/Project/Src/TextEditor/Gui/TextEditorAdapter.cs
@@ -250,6 +250,12 @@ namespace ICSharpCode.SharpDevelop
throw new NotImplementedException();
}
}
+
+ public ITextEditor PrimaryView {
+ get {
+ return this;
+ }
+ }
}
sealed class CompletionItemListAdapter : ICompletionDataProvider