Browse Source

DocumentUtilitites.GetTextSource: unwrap existing ITextSource instead of creating a double adapter

pull/1/head
Daniel Grunwald 15 years ago
parent
commit
308cc7402a
  1. 2
      src/Main/Base/Project/Src/Editor/AvalonEdit/AvalonEditDocumentAdapter.cs
  2. 2
      src/Main/Base/Project/Src/Editor/AvalonEdit/AvalonEditTextSourceAdapter.cs
  3. 11
      src/Main/Base/Project/Src/Editor/DocumentUtilitites.cs

2
src/Main/Base/Project/Src/Editor/AvalonEdit/AvalonEditDocumentAdapter.cs

@ -20,7 +20,7 @@ namespace ICSharpCode.SharpDevelop.Editor.AvalonEdit
/// </summary> /// </summary>
public class AvalonEditDocumentAdapter : IDocument public class AvalonEditDocumentAdapter : IDocument
{ {
readonly TextDocument document; internal readonly TextDocument document;
readonly IServiceProvider parentServiceProvider; readonly IServiceProvider parentServiceProvider;
/// <summary> /// <summary>

2
src/Main/Base/Project/Src/Editor/AvalonEdit/AvalonEditTextSourceAdapter.cs

@ -12,7 +12,7 @@ namespace ICSharpCode.SharpDevelop.Editor.AvalonEdit
{ {
public class AvalonEditTextSourceAdapter : ITextBuffer public class AvalonEditTextSourceAdapter : ITextBuffer
{ {
ITextSource textSource; internal readonly ITextSource textSource;
public AvalonEditTextSourceAdapter(ITextSource textSource) public AvalonEditTextSourceAdapter(ITextSource textSource)
{ {

11
src/Main/Base/Project/Src/Editor/DocumentUtilitites.cs

@ -8,10 +8,10 @@
using System; using System;
using System.Diagnostics; using System.Diagnostics;
using System.Windows.Documents; using System.Windows.Documents;
using ICSharpCode.AvalonEdit; using ICSharpCode.AvalonEdit;
using ICSharpCode.AvalonEdit.Document; using ICSharpCode.AvalonEdit.Document;
using ICSharpCode.AvalonEdit.Utils; using ICSharpCode.AvalonEdit.Utils;
using ICSharpCode.SharpDevelop.Editor.AvalonEdit;
namespace ICSharpCode.SharpDevelop.Editor namespace ICSharpCode.SharpDevelop.Editor
{ {
@ -178,6 +178,15 @@ namespace ICSharpCode.SharpDevelop.Editor
{ {
if (textBuffer == null) if (textBuffer == null)
throw new ArgumentNullException("textBuffer"); 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); return new TextBufferTextSource(textBuffer);
} }

Loading…
Cancel
Save