aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Scripting/Tango.Scripting.Editors/CodeCompletion/ICompletionData.cs
blob: 9f16876b39627e9bbb8c3862d4f07b945a0a37b7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)

using System;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using Tango.Scripting.Editors.Document;
using Tango.Scripting.Editors.Editing;

namespace Tango.Scripting.Editors.CodeCompletion
{
	/// <summary>
	/// Describes an entry in the <see cref="CompletionList"/>.
	/// </summary>
	public interface ICompletionData
	{
        /// <summary>
        /// Gets the image.
        /// </summary>
        BitmapSource Image { get; }

        /// <summary>
        /// Gets the text. This property is used to filter the list of visible elements.
        /// </summary>
        string Text { get; }
		
		/// <summary>
		/// Gets the description.
		/// </summary>
		object Description { get; set; }
		
		/// <summary>
		/// Gets the priority. This property is used in the selection logic. You can use it to prefer selecting those items
		/// which the user is accessing most frequently.
		/// </summary>
		double Priority { get; set; }
		
		/// <summary>
		/// Perform the completion.
		/// </summary>
		/// <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 (segment between CompletionWindow.StartOffset and CompletionWindow.EndOffset).</param>
		/// <param name="insertionRequestEventArgs">The EventArgs used for the insertion request.
		/// These can be TextCompositionEventArgs, KeyEventArgs, MouseEventArgs, depending on how
		/// the insertion was triggered.</param>
		void Complete(ScriptEditor editor);
	}
}
="w"> RaisePropertyChangedAuto(); } } public RelayCommand LoadCommand { get; set; } public MainViewVM() : base() { NotLoaded = true; LoadCommand = new RelayCommand(LoadAdapter,() => !IsLoading); } private async void LoadAdapter() { IsLoading = true; InvalidateRelayCommands(); await Task.Factory.StartNew(() => { ObservablesEntitiesAdapter.Instance.Initialize(); }); IsLoading = false; NotLoaded = false; } public override void OnApplicationReady() { } //public override void OnModuleRequest(params object[] args) //{ // if (args != null && args.Length > 0 && args[0] is IObservableEntity) // { // var arg = args[0]; // String vmName = arg.GetType().Name + "sViewVM"; // Type vmType = Assembly.GetAssembly(typeof(MainViewVM)).GetTypes().SingleOrDefault(x => x.Name == vmName); // if (vmType == null) // { // vmName = arg.GetType().BaseType.Name + "sViewVM"; // vmType = Assembly.GetAssembly(typeof(MainViewVM)).GetTypes().SingleOrDefault(x => x.Name == vmName); // } // if (vmType != null) // { // var vm = TangoIOC.Default.GetInstance(vmType); // vmType.GetProperty("SelectedEntity").SetValue(vm, arg); // vmType.GetMethod("OnEdit", BindingFlags.Instance | BindingFlags.NonPublic).Invoke(vm, new object[] { }); // } // } //} } }