diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditor.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditor.cs index 230f4a18b0..aff804a564 100644 --- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditor.cs +++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditor.cs @@ -38,7 +38,8 @@ namespace ICSharpCode.AvalonEdit.AddIn /// Also provides support for Split-View (showing two AvalonEdit instances using the same TextDocument) /// [TextEditorService, ViewContentService] - public class CodeEditor : Grid, IDisposable, ICSharpCode.SharpDevelop.Gui.IEditable + public class CodeEditor + : Grid, IDisposable, ICSharpCode.SharpDevelop.Gui.IEditable, IFileDocumentProvider { const string contextMenuPath = "/SharpDevelop/ViewContent/AvalonEdit/ContextMenu"; @@ -205,6 +206,7 @@ namespace ICSharpCode.AvalonEdit.AddIn textView.Services.AddService(typeof(ITextEditor), adapter); textView.Services.AddService(typeof(CodeEditor), this); textView.Services.AddService(typeof(ICSharpCode.SharpDevelop.Gui.IEditable), this); + textView.Services.AddService(typeof(IFileDocumentProvider), this); codeEditorView.TextArea.TextEntering += TextAreaTextEntering; codeEditorView.TextArea.TextEntered += TextAreaTextEntered; @@ -408,6 +410,16 @@ namespace ICSharpCode.AvalonEdit.AddIn } #endregion + #region IFileDocumentProvider + public IDocument GetDocumentForFile(ICSharpCode.SharpDevelop.Workbench.OpenedFile file) + { + if (file.FileName == this.FileName) + return this.Document; + else + return null; + } + #endregion + void TextAreaTextEntering(object sender, TextCompositionEventArgs e) { // don't start new code completion if there is still a completion window open