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

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

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

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

@ -8,10 +8,10 @@ @@ -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 @@ -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);
}

Loading…
Cancel
Save