From 308cc7402ab5d4f681dcd60bab3e60fe69f253a1 Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Thu, 2 Sep 2010 18:44:20 +0200 Subject: [PATCH] DocumentUtilitites.GetTextSource: unwrap existing ITextSource instead of creating a double adapter --- .../Editor/AvalonEdit/AvalonEditDocumentAdapter.cs | 2 +- .../Editor/AvalonEdit/AvalonEditTextSourceAdapter.cs | 2 +- .../Base/Project/Src/Editor/DocumentUtilitites.cs | 11 ++++++++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/Main/Base/Project/Src/Editor/AvalonEdit/AvalonEditDocumentAdapter.cs b/src/Main/Base/Project/Src/Editor/AvalonEdit/AvalonEditDocumentAdapter.cs index 555d026038..7b15c4ccf4 100644 --- a/src/Main/Base/Project/Src/Editor/AvalonEdit/AvalonEditDocumentAdapter.cs +++ b/src/Main/Base/Project/Src/Editor/AvalonEdit/AvalonEditDocumentAdapter.cs @@ -20,7 +20,7 @@ namespace ICSharpCode.SharpDevelop.Editor.AvalonEdit /// public class AvalonEditDocumentAdapter : IDocument { - readonly TextDocument document; + internal readonly TextDocument document; readonly IServiceProvider parentServiceProvider; /// diff --git a/src/Main/Base/Project/Src/Editor/AvalonEdit/AvalonEditTextSourceAdapter.cs b/src/Main/Base/Project/Src/Editor/AvalonEdit/AvalonEditTextSourceAdapter.cs index 159af03593..e0e9dd7e63 100644 --- a/src/Main/Base/Project/Src/Editor/AvalonEdit/AvalonEditTextSourceAdapter.cs +++ b/src/Main/Base/Project/Src/Editor/AvalonEdit/AvalonEditTextSourceAdapter.cs @@ -12,7 +12,7 @@ namespace ICSharpCode.SharpDevelop.Editor.AvalonEdit { public class AvalonEditTextSourceAdapter : ITextBuffer { - ITextSource textSource; + internal readonly ITextSource textSource; public AvalonEditTextSourceAdapter(ITextSource textSource) { diff --git a/src/Main/Base/Project/Src/Editor/DocumentUtilitites.cs b/src/Main/Base/Project/Src/Editor/DocumentUtilitites.cs index e8d8db70ee..2be57df4d9 100644 --- a/src/Main/Base/Project/Src/Editor/DocumentUtilitites.cs +++ b/src/Main/Base/Project/Src/Editor/DocumentUtilitites.cs @@ -8,10 +8,10 @@ using System; using System.Diagnostics; using System.Windows.Documents; - using ICSharpCode.AvalonEdit; using ICSharpCode.AvalonEdit.Document; using ICSharpCode.AvalonEdit.Utils; +using ICSharpCode.SharpDevelop.Editor.AvalonEdit; namespace ICSharpCode.SharpDevelop.Editor { @@ -178,6 +178,15 @@ namespace ICSharpCode.SharpDevelop.Editor { if (textBuffer == null) throw new ArgumentNullException("textBuffer"); + + var textSourceAdapter = textBuffer as AvalonEditTextSourceAdapter; + if (textSourceAdapter != null) + return textSourceAdapter.textSource; + + var documentAdapter = textBuffer as AvalonEditDocumentAdapter; + if (documentAdapter != null) + return documentAdapter.document; + return new TextBufferTextSource(textBuffer); }