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