Browse Source

AvalonEditViewContent: implement ITextEditorProvider.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@3964 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 17 years ago
parent
commit
c0e8c59603
  1. 16
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/AvalonEditViewContent.cs
  2. 5
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditor.cs
  3. 8
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/SharpDevelopCompletionWindow.cs
  4. 2
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/CodeCompletion/CompletionWindow.cs
  5. 2
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/CodeCompletion/ICompletionData.cs
  6. 6
      src/Main/Base/Project/Src/TextEditor/CompletionContext.cs

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

@ -15,7 +15,7 @@ using ICSharpCode.SharpDevelop.Gui; @@ -15,7 +15,7 @@ using ICSharpCode.SharpDevelop.Gui;
namespace ICSharpCode.AvalonEdit.AddIn
{
public class AvalonEditViewContent : AbstractViewContent, IEditable, IMementoCapable
public class AvalonEditViewContent : AbstractViewContent, IEditable, IMementoCapable, ITextEditorProvider
{
readonly CodeEditor codeEditor = new CodeEditor();
@ -131,5 +131,19 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -131,5 +131,19 @@ namespace ICSharpCode.AvalonEdit.AddIn
}
}
#endregion
#region ITextEditorProvider
public ITextEditor TextEditor {
get { return codeEditor.TextEditorAdapter; }
}
public ICSharpCode.SharpDevelop.Dom.Refactoring.IDocument GetDocumentForFile(OpenedFile file)
{
if (file == this.PrimaryFile)
return codeEditor.TextEditorAdapter.Document;
else
return null;
}
#endregion
}
}

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

@ -27,6 +27,11 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -27,6 +27,11 @@ namespace ICSharpCode.AvalonEdit.AddIn
public class CodeEditor : TextEditor
{
readonly CodeEditorAdapter textEditorAdapter;
public CodeEditorAdapter TextEditorAdapter {
get { return textEditorAdapter; }
}
public string FileName { get; set; }
public CodeEditor()

8
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/SharpDevelopCompletionWindow.cs

@ -108,13 +108,19 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -108,13 +108,19 @@ namespace ICSharpCode.AvalonEdit.AddIn
get { return null; }
}
public void Complete(TextArea textArea, ISegment completionSegment)
public void Complete(TextArea textArea, ISegment completionSegment, EventArgs insertionRequestEventArgs)
{
CompletionContext context = new CompletionContext {
Editor = window.Editor,
StartOffset = window.StartOffset,
EndOffset = window.EndOffset
};
TextCompositionEventArgs txea = insertionRequestEventArgs as TextCompositionEventArgs;
KeyEventArgs kea = insertionRequestEventArgs as KeyEventArgs;
if (txea != null && txea.Text.Length > 0)
context.CompletionChar = txea.Text[0];
else if (kea != null && kea.Key == Key.Tab)
context.CompletionChar = '\t';
window.ItemList.Complete(context, item);
}
}

2
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/CodeCompletion/CompletionWindow.cs

@ -83,7 +83,7 @@ namespace ICSharpCode.AvalonEdit.CodeCompletion @@ -83,7 +83,7 @@ namespace ICSharpCode.AvalonEdit.CodeCompletion
{
var item = completionList.SelectedItem;
if (item != null)
item.Complete(this.TextArea, new AnchorSegment(this.TextArea.Document, startOffset, endOffset - startOffset));
item.Complete(this.TextArea, new AnchorSegment(this.TextArea.Document, startOffset, endOffset - startOffset), e);
Close();
}

2
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/CodeCompletion/ICompletionData.cs

@ -43,6 +43,6 @@ namespace ICSharpCode.AvalonEdit.CodeCompletion @@ -43,6 +43,6 @@ namespace ICSharpCode.AvalonEdit.CodeCompletion
/// <param name="textArea">The text area on which completion is performed.</param>
/// <param name="completionSegment">The text segment that was used by the completion window if
/// the user types.</param>
void Complete(TextArea textArea, ISegment completionSegment);
void Complete(TextArea textArea, ISegment completionSegment, EventArgs insertionRequestEventArgs);
}
}

6
src/Main/Base/Project/Src/TextEditor/CompletionContext.cs

@ -33,5 +33,11 @@ namespace ICSharpCode.SharpDevelop @@ -33,5 +33,11 @@ namespace ICSharpCode.SharpDevelop
/// Gets the length between EndOffset and StartOffset.
/// </summary>
public int Length { get { return EndOffset - StartOffset; } }
/// <summary>
/// Gets/Sets the character that triggered completion.
/// This property is '\0' when completion was triggered using the mouse.
/// </summary>
public char CompletionChar { get; set; }
}
}

Loading…
Cancel
Save