Browse Source

move IEditable implementation to CodeEditor

pull/48/merge
Siegfried Pammer 12 years ago
parent
commit
4fcb17dd97
  1. 4
      src/AddIns/BackendBindings/Scripting/Project/Src/ScriptingTextEditorViewContent.cs
  2. 18
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/AvalonEditViewContent.cs
  3. 20
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditor.cs
  4. 2
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/Src/WpfDisplayBinding.cs

4
src/AddIns/BackendBindings/Scripting/Project/Src/ScriptingTextEditorViewContent.cs

@ -29,8 +29,8 @@ namespace ICSharpCode.Scripting @@ -29,8 +29,8 @@ namespace ICSharpCode.Scripting
void Init(IViewContent view)
{
this.view = view;
editable = view as IEditable;
textEditor = view.GetService(typeof(ITextEditor)) as ITextEditor;
editable = view.GetService<IEditable>();
textEditor = view.GetService<ITextEditor>();
textEditorOptions = textEditor.Options;
}

18
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/AvalonEditViewContent.cs

@ -32,7 +32,7 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -32,7 +32,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
}
public class AvalonEditViewContent
: AbstractViewContent, IEditable, IMementoCapable, ICodeEditorProvider, IPositionable, IToolsHost
: AbstractViewContent, IMementoCapable, ICodeEditorProvider, IPositionable, IToolsHost
{
readonly CodeEditor codeEditor = new CodeEditor();
IAnalyticsMonitorTrackedFeature trackedFeature;
@ -294,22 +294,6 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -294,22 +294,6 @@ namespace ICSharpCode.AvalonEdit.AddIn
return "[" + GetType().Name + " " + this.PrimaryFileName + "]";
}
#region IEditable
public ITextSource CreateSnapshot()
{
return codeEditor.Document.CreateSnapshot();
}
/// <summary>
/// Gets the document text.
/// </summary>
public string Text {
get {
return codeEditor.Document.Text;
}
}
#endregion
#region IMementoCapable
public Properties CreateMemento()
{

20
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditor.cs

@ -38,14 +38,13 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -38,14 +38,13 @@ namespace ICSharpCode.AvalonEdit.AddIn
/// Also provides support for Split-View (showing two AvalonEdit instances using the same TextDocument)
/// </summary>
[TextEditorService, ViewContentService]
public class CodeEditor : Grid, IDisposable
public class CodeEditor : Grid, IDisposable, ICSharpCode.SharpDevelop.Gui.IEditable
{
const string contextMenuPath = "/SharpDevelop/ViewContent/AvalonEdit/ContextMenu";
QuickClassBrowser quickClassBrowser;
readonly CodeEditorView primaryTextEditor;
readonly CodeEditorAdapter primaryTextEditorAdapter;
GridSplitter gridSplitter;
readonly IconBarManager iconBarManager;
readonly TextMarkerService textMarkerService;
readonly IChangeWatcher changeWatcher;
@ -205,6 +204,7 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -205,6 +204,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
TextView textView = codeEditorView.TextArea.TextView;
textView.Services.AddService(typeof(ITextEditor), adapter);
textView.Services.AddService(typeof(CodeEditor), this);
textView.Services.AddService(typeof(ICSharpCode.SharpDevelop.Gui.IEditable), this);
codeEditorView.TextArea.TextEntering += TextAreaTextEntering;
codeEditorView.TextArea.TextEntered += TextAreaTextEntered;
@ -392,6 +392,22 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -392,6 +392,22 @@ namespace ICSharpCode.AvalonEdit.AddIn
}
}
#region IEditable
public ITextSource CreateSnapshot()
{
return this.Document.CreateSnapshot();
}
/// <summary>
/// Gets the document text.
/// </summary>
public string Text {
get {
return this.Document.Text;
}
}
#endregion
void TextAreaTextEntering(object sender, TextCompositionEventArgs e)
{
// don't start new code completion if there is still a completion window open

2
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/Src/WpfDisplayBinding.cs

@ -45,7 +45,7 @@ namespace ICSharpCode.WpfDesign.AddIn @@ -45,7 +45,7 @@ namespace ICSharpCode.WpfDesign.AddIn
public bool CanAttachTo(IViewContent content)
{
if (Path.GetExtension(content.PrimaryFileName).Equals(".xaml", StringComparison.OrdinalIgnoreCase)) {
IEditable editable = content as IEditable;
IEditable editable = content.GetService<IEditable>();
if (editable != null) {
try {
XmlTextReader r = new XmlTextReader(editable.CreateSnapshot().CreateReader());

Loading…
Cancel
Save