Browse Source

Allow writing a space after "+=" completion without closing the completion window.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@384 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 21 years ago
parent
commit
a071440e5f
  1. 30
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpCompletionBinding.cs
  2. 93
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/EventHandlerCompletitionDataProvider.cs
  3. 24
      src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlCompletionDataProvider.cs
  4. 30
      src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/CompletionWindow/CodeCompletionWindow.cs
  5. 60
      src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/CompletionWindow/ICompletionData.cs
  6. 13
      src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/CompletionWindow/ICompletionDataProvider.cs
  7. 53
      src/Main/Base/Project/Src/TextEditor/Gui/Editor/CompletionWindow/AbstractCompletionDataProvider.cs
  8. 31
      src/Main/Base/Project/Src/TextEditor/Gui/Editor/CompletionWindow/CachedCompletionDataProvider.cs
  9. 2
      src/Main/Base/Project/Src/TextEditor/Gui/Editor/CompletionWindow/CodeCompletionDataProvider.cs
  10. 22
      src/Main/Base/Project/Src/TextEditor/Gui/Editor/CompletionWindow/CommentCompletionDataProvider.cs
  11. 18
      src/Main/Base/Project/Src/TextEditor/Gui/Editor/CompletionWindow/TemplateCompletionDataProvider.cs

30
src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpCompletionBinding.cs

@ -94,39 +94,24 @@ namespace CSharpBinding
cursor = ef.LastExpressionStartPosition; cursor = ef.LastExpressionStartPosition;
} }
} }
} } else if(ch == '=') {
else if(ch == '=')
{
LineSegment curLine = editor.Document.GetLineSegmentForOffset(cursor); LineSegment curLine = editor.Document.GetLineSegmentForOffset(cursor);
string curLineText = editor.ActiveTextAreaControl.Document.GetText(curLine);
if(curLineText != null && curLineText.EndsWith("+"))
{
string documentText = editor.Text; string documentText = editor.Text;
int position = editor.ActiveTextAreaControl.Caret.Offset - 2; int position = editor.ActiveTextAreaControl.Caret.Offset - 2;
int oldCursor = position;
string textWithoutComments = ef.FilterComments(documentText, ref position);
int commentLength = oldCursor - position;
if (textWithoutComments != null) if (position > 0 && (documentText[position + 1] == '+' || documentText[position + 1] == '-')) {
{ ExpressionResult result = ef.FindFullExpression(documentText, position);
ExpressionResult result = ef.FindFullExpression(textWithoutComments, position);
if(result.Expression != "") if(result.Expression != null) {
{ ResolveResult resolveResult = ParserService.Resolve(result, editor.ActiveTextAreaControl.Caret.Line, editor.ActiveTextAreaControl.Caret.Column, editor.FileName, documentText);
IResolver resolver = ParserService.CreateResolver(editor.FileName); if (resolveResult.ResolvedType.GetUnderlyingClass().IsTypeInInheritanceTree(ProjectContentRegistry.Mscorlib.GetClass("System.MulticastDelegate"))) {
ResolveResult resolveResult = resolver.Resolve(result, editor.ActiveTextAreaControl.Caret.Line, editor.ActiveTextAreaControl.Caret.Column, editor.FileName, documentText);
if(resolveResult.ResolvedType.GetUnderlyingClass().IsTypeInInheritanceTree(ProjectContentRegistry.Mscorlib.GetClass("System.MulticastDelegate")))
{
EventHandlerCompletitionDataProvider eventHandlerProvider = new EventHandlerCompletitionDataProvider(result.Expression, resolveResult); EventHandlerCompletitionDataProvider eventHandlerProvider = new EventHandlerCompletitionDataProvider(result.Expression, resolveResult);
eventHandlerProvider.GenerateCompletionData(editor.FileName, editor.ActiveTextAreaControl.TextArea, ch); eventHandlerProvider.InsertSpace = true;
editor.ShowCompletionWindow(eventHandlerProvider, ch); editor.ShowCompletionWindow(eventHandlerProvider, ch);
} }
} }
} }
} }
}
return base.HandleKeyPress(editor, ch); return base.HandleKeyPress(editor, ch);
} }
@ -182,6 +167,7 @@ namespace CSharpBinding
} }
} }
if (cache.DefaultIndex >= 0) { if (cache.DefaultIndex >= 0) {
cache.InsertSpace = true;
editor.ShowCompletionWindow(cache, charTyped); editor.ShowCompletionWindow(cache, charTyped);
} }
} }

93
src/AddIns/BackendBindings/CSharpBinding/Project/Src/EventHandlerCompletitionDataProvider.cs

@ -20,7 +20,7 @@ using ICSharpCode.SharpDevelop.Dom.NRefactoryResolver;
namespace CSharpBinding namespace CSharpBinding
{ {
public class EventHandlerCompletitionDataProvider : ICompletionDataProvider public class EventHandlerCompletitionDataProvider : AbstractCompletionDataProvider
{ {
string expression; string expression;
ResolveResult resolveResult; ResolveResult resolveResult;
@ -31,95 +31,14 @@ namespace CSharpBinding
this.resolveResult = resolveResult; this.resolveResult = resolveResult;
} }
public ImageList ImageList /// <summary>
{ /// Generates the completion data. This method is called by the text editor control.
get /// </summary>
{ public override ICompletionData[] GenerateCompletionData(string fileName, TextArea textArea, char charTyped)
return ClassBrowserIconService.ImageList;
}
}
public int DefaultIndex
{
get
{
return -1;
}
}
public string PreSelection
{
get
{
return null;
}
}
public ICompletionData[] GenerateCompletionData(string fileName, TextArea textArea, char charTyped)
{ {
ArrayList completionData = new ArrayList(); ArrayList completionData = new ArrayList();
completionData.Add(new EventHandlerCompletionData("new " + resolveResult.ResolvedType.FullyQualifiedName + "()", "Event handler")); completionData.Add(new DefaultCompletionData("new " + resolveResult.ResolvedType.FullyQualifiedName + "()", "Event handler", ClassBrowserIconService.DelegateIndex));
return (ICompletionData[])completionData.ToArray(typeof(ICompletionData)); return (ICompletionData[])completionData.ToArray(typeof(ICompletionData));
} }
class EventHandlerCompletionData : ICompletionData
{
string text;
string description;
public int ImageIndex
{
get
{
return ClassBrowserIconService.MethodIndex;
}
}
public string Text
{
get {
return text;
}
set {
text = value;
}
}
public string Description
{
get {
return description;
}
}
public double Priority
{
get {
return 0;
}
}
public bool InsertAction(TextArea textArea, char ch)
{
textArea.InsertString(text);
return false;
}
public EventHandlerCompletionData(string text, string description)
{
this.text = text;
this.description = description;
}
#region System.IComparable interface implementation
public int CompareTo(object obj)
{
if (obj == null || !(obj is EventHandlerCompletionData)) {
return -1;
}
return text.CompareTo(((EventHandlerCompletionData)obj).Text);
}
#endregion
}
} }
} }

24
src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlCompletionDataProvider.cs

@ -7,6 +7,7 @@
using ICSharpCode.TextEditor; using ICSharpCode.TextEditor;
using ICSharpCode.TextEditor.Gui.CompletionWindow; using ICSharpCode.TextEditor.Gui.CompletionWindow;
using ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor;
using System; using System;
using System.Collections; using System.Collections;
using System.Windows.Forms; using System.Windows.Forms;
@ -18,12 +19,11 @@ namespace ICSharpCode.XmlEditor
/// Provides the autocomplete (intellisense) data for an /// Provides the autocomplete (intellisense) data for an
/// xml document that specifies a known schema. /// xml document that specifies a known schema.
/// </summary> /// </summary>
public class XmlCompletionDataProvider : ICompletionDataProvider public class XmlCompletionDataProvider : AbstractCompletionDataProvider
{ {
XmlSchemaCompletionDataCollection schemaCompletionDataItems; XmlSchemaCompletionDataCollection schemaCompletionDataItems;
XmlSchemaCompletionData defaultSchemaCompletionData; XmlSchemaCompletionData defaultSchemaCompletionData;
string defaultNamespacePrefix = String.Empty; string defaultNamespacePrefix = String.Empty;
string preSelection = null;
public XmlCompletionDataProvider(XmlSchemaCompletionDataCollection schemaCompletionDataItems, XmlSchemaCompletionData defaultSchemaCompletionData, string defaultNamespacePrefix) public XmlCompletionDataProvider(XmlSchemaCompletionDataCollection schemaCompletionDataItems, XmlSchemaCompletionData defaultSchemaCompletionData, string defaultNamespacePrefix)
{ {
@ -32,30 +32,14 @@ namespace ICSharpCode.XmlEditor
this.defaultNamespacePrefix = defaultNamespacePrefix; this.defaultNamespacePrefix = defaultNamespacePrefix;
} }
public ImageList ImageList { public override ImageList ImageList {
get get
{ {
return XmlCompletionDataImageList.GetImageList(); return XmlCompletionDataImageList.GetImageList();
} }
} }
/// <summary> public override ICompletionData[] GenerateCompletionData(string fileName, TextArea textArea, char charTyped)
/// Gets the preselected text.
/// </summary>
public string PreSelection {
get
{
return preSelection;
}
}
public int DefaultIndex {
get {
return -1;
}
}
public ICompletionData[] GenerateCompletionData(string fileName, TextArea textArea, char charTyped)
{ {
preSelection = null; preSelection = null;
string text = String.Concat(textArea.Document.GetText(0, textArea.Caret.Offset), charTyped); string text = String.Concat(textArea.Document.GetText(0, textArea.Caret.Offset), charTyped);

30
src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/CompletionWindow/CodeCompletionWindow.cs

@ -18,9 +18,10 @@ namespace ICSharpCode.TextEditor.Gui.CompletionWindow
{ {
public class CodeCompletionWindow : AbstractCompletionWindow public class CodeCompletionWindow : AbstractCompletionWindow
{ {
static ICompletionData[] completionData; ICompletionData[] completionData;
CodeCompletionListView codeCompletionListView; CodeCompletionListView codeCompletionListView;
VScrollBar vScrollBar = new VScrollBar(); VScrollBar vScrollBar = new VScrollBar();
ICompletionDataProvider dataProvider;
int startOffset; int startOffset;
int endOffset; int endOffset;
@ -29,17 +30,20 @@ namespace ICSharpCode.TextEditor.Gui.CompletionWindow
public static CodeCompletionWindow ShowCompletionWindow(Form parent, TextEditorControl control, string fileName, ICompletionDataProvider completionDataProvider, char firstChar) public static CodeCompletionWindow ShowCompletionWindow(Form parent, TextEditorControl control, string fileName, ICompletionDataProvider completionDataProvider, char firstChar)
{ {
completionData = completionDataProvider.GenerateCompletionData(fileName, control.ActiveTextAreaControl.TextArea, firstChar); ICompletionData[] completionData = completionDataProvider.GenerateCompletionData(fileName, control.ActiveTextAreaControl.TextArea, firstChar);
if (completionData == null || completionData.Length == 0) { if (completionData == null || completionData.Length == 0) {
return null; return null;
} }
CodeCompletionWindow codeCompletionWindow = new CodeCompletionWindow(completionDataProvider, parent, control, fileName); CodeCompletionWindow codeCompletionWindow = new CodeCompletionWindow(completionDataProvider, completionData, parent, control, fileName);
codeCompletionWindow.ShowCompletionWindow(); codeCompletionWindow.ShowCompletionWindow();
return codeCompletionWindow; return codeCompletionWindow;
} }
CodeCompletionWindow(ICompletionDataProvider completionDataProvider, Form parentForm, TextEditorControl control, string fileName) : base(parentForm, control, fileName) CodeCompletionWindow(ICompletionDataProvider completionDataProvider, ICompletionData[] completionData, Form parentForm, TextEditorControl control, string fileName) : base(parentForm, control, fileName)
{ {
this.dataProvider = completionDataProvider;
this.completionData = completionData;
workingScreen = Screen.GetWorkingArea(Location); workingScreen = Screen.GetWorkingArea(Location);
startOffset = control.ActiveTextAreaControl.Caret.Offset + 1; startOffset = control.ActiveTextAreaControl.Caret.Offset + 1;
endOffset = startOffset; endOffset = startOffset;
@ -85,8 +89,6 @@ namespace ICSharpCode.TextEditor.Gui.CompletionWindow
CaretOffsetChanged(this, EventArgs.Empty); CaretOffsetChanged(this, EventArgs.Empty);
} }
vScrollBar.Scroll += new ScrollEventHandler(DoScroll); vScrollBar.Scroll += new ScrollEventHandler(DoScroll);
} }
@ -150,8 +152,14 @@ namespace ICSharpCode.TextEditor.Gui.CompletionWindow
public override bool ProcessKeyEvent(char ch) public override bool ProcessKeyEvent(char ch)
{ {
if (!Char.IsLetterOrDigit(ch) && ch != '_') { if (!Char.IsLetterOrDigit(ch) && ch != '_') {
if (ch == ' ' && dataProvider.InsertSpace) {
// increment start + end and process as normal space
++startOffset;
} else {
return InsertSelectedItem(ch); return InsertSelectedItem(ch);
} }
}
dataProvider.InsertSpace = false;
++endOffset; ++endOffset;
return base.ProcessKeyEvent(ch); return base.ProcessKeyEvent(ch);
} }
@ -159,6 +167,9 @@ namespace ICSharpCode.TextEditor.Gui.CompletionWindow
protected override void CaretOffsetChanged(object sender, EventArgs e) protected override void CaretOffsetChanged(object sender, EventArgs e)
{ {
int offset = control.ActiveTextAreaControl.Caret.Offset; int offset = control.ActiveTextAreaControl.Caret.Offset;
if (offset == startOffset) {
return;
}
if (offset < startOffset || offset > endOffset) { if (offset < startOffset || offset > endOffset) {
Close(); Close();
} else { } else {
@ -251,8 +262,13 @@ namespace ICSharpCode.TextEditor.Gui.CompletionWindow
if (endOffset - startOffset > 0) { if (endOffset - startOffset > 0) {
control.Document.Remove(startOffset, endOffset - startOffset); control.Document.Remove(startOffset, endOffset - startOffset);
control.ActiveTextAreaControl.Caret.Position = control.Document.OffsetToPosition(startOffset);
} }
if (dataProvider.InsertSpace) {
Console.WriteLine("Inserting space..");
control.Document.Insert(startOffset++, " ");
}
control.ActiveTextAreaControl.Caret.Position = control.Document.OffsetToPosition(startOffset);
result = data.InsertAction(control.ActiveTextAreaControl.TextArea, ch); result = data.InsertAction(control.ActiveTextAreaControl.TextArea, ch);
control.EndUpdate(); control.EndUpdate();
} }

60
src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/CompletionWindow/ICompletionData.cs

@ -49,4 +49,64 @@ namespace ICSharpCode.TextEditor.Gui.CompletionWindow
/// <paramref name="ch"/>; false when the character was not processed.</returns> /// <paramref name="ch"/>; false when the character was not processed.</returns>
bool InsertAction(TextArea textArea, char ch); bool InsertAction(TextArea textArea, char ch);
} }
public class DefaultCompletionData : ICompletionData
{
string text;
string description;
int imageIndex;
public int ImageIndex {
get {
return imageIndex;
}
}
public string Text {
get {
return text;
}
set {
text = value;
}
}
public string Description {
get {
return description;
}
}
double priority;
public double Priority {
get {
return priority;
}
set {
priority = value;
}
}
public bool InsertAction(TextArea textArea, char ch)
{
textArea.InsertString(text);
return false;
}
public DefaultCompletionData(string text, string description, int imageIndex)
{
this.text = text;
this.description = description;
this.imageIndex = imageIndex;
}
public int CompareTo(object obj)
{
if (obj == null || !(obj is DefaultCompletionData)) {
return -1;
}
return text.CompareTo(((DefaultCompletionData)obj).Text);
}
}
} }

13
src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/CompletionWindow/ICompletionDataProvider.cs

@ -23,10 +23,23 @@ namespace ICSharpCode.TextEditor.Gui.CompletionWindow
string PreSelection { string PreSelection {
get; get;
} }
/// <summary>
/// Gets the index of the element in the list that is chosen by default.
/// </summary>
int DefaultIndex { int DefaultIndex {
get; get;
} }
/// <summary>
/// Gets/Sets if a space should be inserted in front of the completed expression.
/// </summary>
bool InsertSpace {
get;
set;
}
/// <summary>
/// Generates the completion data. This method is called by the text editor control.
/// </summary>
ICompletionData[] GenerateCompletionData(string fileName, TextArea textArea, char charTyped); ICompletionData[] GenerateCompletionData(string fileName, TextArea textArea, char charTyped);
} }
} }

53
src/Main/Base/Project/Src/TextEditor/Gui/Editor/CompletionWindow/AbstractCompletionDataProvider.cs

@ -20,11 +20,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
{ {
public abstract class AbstractCompletionDataProvider : ICompletionDataProvider public abstract class AbstractCompletionDataProvider : ICompletionDataProvider
{ {
Hashtable insertedElements = new Hashtable(); public virtual ImageList ImageList {
Hashtable insertedPropertiesElements = new Hashtable();
Hashtable insertedEventElements = new Hashtable();
public ImageList ImageList {
get { get {
return ClassBrowserIconService.ImageList; return ClassBrowserIconService.ImageList;
} }
@ -32,15 +28,18 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
int defaultIndex = -1; int defaultIndex = -1;
/// <summary>
/// Gets the index of the element in the list that is chosen by default.
/// </summary>
public int DefaultIndex { public int DefaultIndex {
get { get {
return defaultIndex; return defaultIndex;
} }
set {
defaultIndex = value;
}
} }
protected int caretLineNumber;
protected int caretColumn;
protected string fileName;
protected string preSelection = null; protected string preSelection = null;
public string PreSelection { public string PreSelection {
@ -48,10 +47,44 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
return preSelection; return preSelection;
} }
} }
bool insertSpace;
/// <summary>
/// Gets/Sets if a space should be inserted in front of the completed expression.
/// </summary>
public bool InsertSpace {
get {
return insertSpace;
}
set {
insertSpace = value;
}
}
/// <summary>
/// Generates the completion data. This method is called by the text editor control.
/// </summary>
public abstract ICompletionData[] GenerateCompletionData(string fileName, TextArea textArea, char charTyped);
}
public abstract class AbstractCodeCompletionDataProvider : AbstractCompletionDataProvider
{
Hashtable insertedElements = new Hashtable();
Hashtable insertedPropertiesElements = new Hashtable();
Hashtable insertedEventElements = new Hashtable();
protected int caretLineNumber;
protected int caretColumn;
protected string fileName;
protected ArrayList completionData = null; protected ArrayList completionData = null;
protected ExpressionContext overrideContext; protected ExpressionContext overrideContext;
public virtual ICompletionData[] GenerateCompletionData(string fileName, TextArea textArea, char charTyped) /// <summary>
/// Generates the completion data. This method is called by the text editor control.
/// </summary>
public override ICompletionData[] GenerateCompletionData(string fileName, TextArea textArea, char charTyped)
{ {
completionData = new ArrayList(); completionData = new ArrayList();
this.fileName = fileName; this.fileName = fileName;
@ -107,7 +140,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
} }
if (suggestedData != null) { if (suggestedData != null) {
completionData.Sort(); completionData.Sort();
defaultIndex = completionData.IndexOf(suggestedData); this.DefaultIndex = completionData.IndexOf(suggestedData);
} }
} }
} }

31
src/Main/Base/Project/Src/TextEditor/Gui/Editor/CompletionWindow/CachedCompletionDataProvider.cs

@ -18,7 +18,7 @@ using ICSharpCode.TextEditor.Gui.CompletionWindow;
namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
{ {
public class CachedCompletionDataProvider : ICompletionDataProvider public class CachedCompletionDataProvider : AbstractCompletionDataProvider
{ {
ICompletionDataProvider baseProvider; ICompletionDataProvider baseProvider;
@ -27,31 +27,6 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
this.baseProvider = baseProvider; this.baseProvider = baseProvider;
} }
public ImageList ImageList {
get {
return ClassBrowserIconService.ImageList;
}
}
int defaultIndex;
public int DefaultIndex {
get {
return defaultIndex;
}
set {
defaultIndex = value;
}
}
string preSelection;
public string PreSelection {
get {
return preSelection;
}
}
ICompletionData[] completionData; ICompletionData[] completionData;
public ICompletionData[] CompletionData { public ICompletionData[] CompletionData {
@ -63,12 +38,12 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
} }
} }
public ICompletionData[] GenerateCompletionData(string fileName, TextArea textArea, char charTyped) public override ICompletionData[] GenerateCompletionData(string fileName, TextArea textArea, char charTyped)
{ {
if (completionData == null) { if (completionData == null) {
completionData = baseProvider.GenerateCompletionData(fileName, textArea, charTyped); completionData = baseProvider.GenerateCompletionData(fileName, textArea, charTyped);
preSelection = baseProvider.PreSelection; preSelection = baseProvider.PreSelection;
defaultIndex = baseProvider.DefaultIndex; this.DefaultIndex = baseProvider.DefaultIndex;
} }
return completionData; return completionData;
} }

2
src/Main/Base/Project/Src/TextEditor/Gui/Editor/CompletionWindow/CodeCompletionDataProvider.cs

@ -19,7 +19,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
/// <summary> /// <summary>
/// Data provider for code completion. /// Data provider for code completion.
/// </summary> /// </summary>
public class CodeCompletionDataProvider : AbstractCompletionDataProvider public class CodeCompletionDataProvider : AbstractCodeCompletionDataProvider
{ {
/// <summary> /// <summary>
/// Initialize a CodeCompletionDataProvider that reads the expression from the text area. /// Initialize a CodeCompletionDataProvider that reads the expression from the text area.

22
src/Main/Base/Project/Src/TextEditor/Gui/Editor/CompletionWindow/CommentCompletionDataProvider.cs

@ -24,17 +24,11 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
/// <summary> /// <summary>
/// Data provider for code completion. /// Data provider for code completion.
/// </summary> /// </summary>
public class CommentCompletionDataProvider : ICompletionDataProvider public class CommentCompletionDataProvider : AbstractCompletionDataProvider
{ {
int caretLineNumber; int caretLineNumber;
int caretColumn; int caretColumn;
public int DefaultIndex {
get {
return -1;
}
}
string[][] commentTags = new string[][] { string[][] commentTags = new string[][] {
new string[] {"c", "marks text as code"}, new string[] {"c", "marks text as code"},
new string[] {"code", "marks text as code"}, new string[] {"code", "marks text as code"},
@ -58,18 +52,6 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
new string[] {"value", "A description of a property"} new string[] {"value", "A description of a property"}
}; };
public ImageList ImageList {
get {
return ClassBrowserIconService.ImageList;
}
}
public string PreSelection {
get {
return null;
}
}
/// <remarks> /// <remarks>
/// Returns true, if the given coordinates (row, column) are in the region. /// Returns true, if the given coordinates (row, column) are in the region.
/// </remarks> /// </remarks>
@ -78,7 +60,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
return row >= region.BeginLine && (row <= region.EndLine || region.EndLine == -1); return row >= region.BeginLine && (row <= region.EndLine || region.EndLine == -1);
} }
public ICompletionData[] GenerateCompletionData(string fileName, TextArea textArea, char charTyped) public override ICompletionData[] GenerateCompletionData(string fileName, TextArea textArea, char charTyped)
{ {
caretLineNumber = textArea.Caret.Line; caretLineNumber = textArea.Caret.Line;
caretColumn = textArea.Caret.Column; caretColumn = textArea.Caret.Column;

18
src/Main/Base/Project/Src/TextEditor/Gui/Editor/CompletionWindow/TemplateCompletionDataProvider.cs

@ -19,29 +19,17 @@ using ICSharpCode.TextEditor.Gui.CompletionWindow;
namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
{ {
public class TemplateCompletionDataProvider : ICompletionDataProvider public class TemplateCompletionDataProvider : AbstractCompletionDataProvider
{ {
ImageList imageList = new ImageList(); ImageList imageList = new ImageList();
public ImageList ImageList { public override ImageList ImageList {
get { get {
return imageList; return imageList;
} }
} }
public int DefaultIndex { public override ICompletionData[] GenerateCompletionData(string fileName, TextArea textArea, char charTyped)
get {
return -1;
}
}
public string PreSelection {
get {
return String.Empty;
}
}
public ICompletionData[] GenerateCompletionData(string fileName, TextArea textArea, char charTyped)
{ {
imageList.Images.Add(IconService.GetBitmap("Icons.16x16.TextFileIcon")); imageList.Images.Add(IconService.GetBitmap("Icons.16x16.TextFileIcon"));

Loading…
Cancel
Save