private bool DoComplete(bool includeLastChar)
{
var caretIndex = editor.CaretIndex;
var result = false;
if (intellisenseControl.CompletionData.Count > 0 && intellisenseControl.SelectedCompletion != noSelectedCompletion && intellisenseControl.SelectedCompletion != null)
{
result = true;
if (intellisenseStartedAt <= caretIndex)
{
var offset = 0;
if (includeLastChar)
{
offset = 1;
}
Dispatcher.UIThread.InvokeTaskAsync(() =>
{
editor.TextDocument.BeginUpdate();
if (caretIndex - intellisenseStartedAt - offset >= 0 && intellisenseControl.SelectedCompletion != null)
{
editor.TextDocument.Replace(intellisenseStartedAt, caretIndex - intellisenseStartedAt - offset,
intellisenseControl.SelectedCompletion.Title);
caretIndex = intellisenseStartedAt + intellisenseControl.SelectedCompletion.Title.Length + offset;
editor.CaretIndex = caretIndex;
}
editor.TextDocument.EndUpdate();
}).Wait();
CloseIntellisense();
}
}
return result;
}