// // // // // $Revision$ // using System; using System.Linq; using ICSharpCode.AvalonEdit.CodeCompletion; using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop.Editor; namespace ICSharpCode.AvalonEdit.AddIn { /// /// Wraps the CodeEditor class to provide the ITextEditor interface. /// public class CodeEditorAdapter : AvalonEditTextEditorAdapter { readonly CodeEditor codeEditor; public CodeEditorAdapter(CodeEditor codeEditor) : base(codeEditor.TextEditor) { if (codeEditor == null) throw new ArgumentNullException("codeEditor"); this.codeEditor = codeEditor; } public override string FileName { get { return codeEditor.FileName; } } public override void ShowCompletionWindow(ICompletionItemList data) { if (data == null || !data.Items.Any()) return; CompletionWindow window = new SharpDevelopCompletionWindow(this, codeEditor.TextEditor.TextArea, data); codeEditor.NotifyCompletionWindowOpened(window); window.Show(); } } }