public override Innovator.Client.IPromise <CompletionContext> ShowCompletions(EditorWinForm control) { var length = control.Editor.Document.TextLength; var caret = control.Editor.CaretOffset; var data = new CompletionContext(); if (caret > 0 && control.Editor.Document.GetCharAt(caret - 1) == '\\') { data.Items = _completionInfo .OrderBy(i => i[0].ToLowerInvariant()) .ThenBy(i => i[1]) .Select(i => new BasicCompletionData() { Content = FormatText.Span(FormatText.Text(i[0] + " "), FormatText.MutedText(i[1])), Text = i[0], Action = () => i[0] }); } if (data.Items.Any()) { var items = data.Items.ToArray(); var contextItems = items.OfType <IContextCompletions>(); foreach (var contextItem in contextItems) { contextItem.SetContext(this, control); } control.ShowCompletionWindow(items, data.Overlap); } return(Promises.Resolved(data)); }
protected virtual BasicCompletionData ConfigureLabeledProperty(BasicCompletionData data, IListValue prop) { var label = prop.Label + " (" + prop.Value + ")"; data.Text = label; data.Description = Tooltips.Property(prop as Property); data.Content = FormatText.MutedText(label); data.Image = Icons.Property16.Wpf; var insertValue = prop.Value; if (_insertion != null) { insertValue = _insertion(prop.Value); } data.Action = () => insertValue; return(data); }