aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Scripting/Tango.Scripting.Editors/Intellisense/CompletionItem.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/Scripting/Tango.Scripting.Editors/Intellisense/CompletionItem.cs')
-rw-r--r--Software/Visual_Studio/Scripting/Tango.Scripting.Editors/Intellisense/CompletionItem.cs49
1 files changed, 49 insertions, 0 deletions
diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.Editors/Intellisense/CompletionItem.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.Editors/Intellisense/CompletionItem.cs
new file mode 100644
index 000000000..c8beebd28
--- /dev/null
+++ b/Software/Visual_Studio/Scripting/Tango.Scripting.Editors/Intellisense/CompletionItem.cs
@@ -0,0 +1,49 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Media.Imaging;
+using Tango.Scripting.Editors.Document;
+using Tango.Scripting.Editors.Editing;
+
+namespace Tango.Scripting.Editors.Intellisense
+{
+ public abstract class CompletionItem : DependencyObject, ICompletionItem
+ {
+ public abstract string Text { get; }
+ public object Description { get; set; }
+ public double Priority { get; set; }
+ public abstract CompletionItemPopupControl PopupControl { get; }
+
+ public bool IsSelected
+ {
+ get { return (bool)GetValue(IsSelectedProperty); }
+ set { SetValue(IsSelectedProperty, value); }
+ }
+ public static readonly DependencyProperty IsSelectedProperty =
+ DependencyProperty.Register("IsSelected", typeof(bool), typeof(CompletionItem), new PropertyMetadata(false));
+
+ public virtual void Complete(ScriptEditor editor)
+ {
+ var word = editor.GetCurrentWord();
+ int index = editor.GetCurrentWordStartIndex();
+ int max = editor.GetCurrentLine().EndOffset;
+
+ editor.Document.Replace(index, word.Length,Text);
+ }
+
+ public abstract BitmapSource Image { get; }
+
+ protected static BitmapSource GetImage(String name)
+ {
+ return new BitmapImage(new Uri($"pack://application:,,,/Tango.Scripting.Editors;component/Images/{name}", UriKind.Absolute));
+ }
+
+ public override string ToString()
+ {
+ return Text;
+ }
+ }
+}