public void SetCursor(int index, int line, int column, List <UnsavedFile> unsavedFiles) { if (!intellisenseControl.IsVisible) { _requestingData = true; intellisenseQueryRunner.InvokeAsync(() => { CodeCompletionResults result = null; intellisenseJobRunner.InvokeAsync(() => { var task = languageService.CodeCompleteAtAsync(file, index, line, column, unsavedFiles); task.Wait(); result = task.Result; }).Wait(); Dispatcher.UIThread.InvokeAsync(() => { SetCompletionData(result); _requestingData = false; UpdateFilter(editor.CaretOffset, false); intellisenseControl.IsVisible = !_hidden; }); }); } }
public void SetCursor(int index, int line, int column, List<UnsavedFile> unsavedFiles, bool invokeOnRunner = true) { var action = new Action(() => { if (!isProcessingKey) { if (intellisenseControl.IsVisible) { CloseIntellisense(); } var codeCompleteTask = languageService.CodeCompleteAtAsync(file, line, column, unsavedFiles); codeCompleteTask.Wait(); SetCompletionData(codeCompleteTask.Result); } }); if (invokeOnRunner) { intellisenseJobRunner.InvokeAsync(action); } else { action(); } }
public void SetCursor(int index, int line, int column, List <UnsavedFile> unsavedFiles, bool canUpdateSignature = true) { if (_lastIndex != index) { _lastIndex = index; if (canUpdateSignature) { UpdateActiveParameterAndVisibility(); } if (!intellisenseControl.IsVisible) { unfilteredCompletions.Clear(); if (_shell.DebugMode) { _console.WriteLine("Set Cursor"); } _requestingData = true; char previousChar = '\0'; if (index >= 1) { previousChar = editor.Document.GetCharAt(index - 1); } intellisenseQueryRunner.InvokeAsync(() => { CodeCompletionResults result = null; intellisenseJobRunner.InvokeAsync(() => { if (_shell.DebugMode) { _console.WriteLine($"Query Language Service {index}, {line}, {column}"); } var task = languageService.CodeCompleteAtAsync(editor, index, line, column, unsavedFiles, previousChar); task.Wait(); result = task.Result; }).Wait(); if (result != null) { Dispatcher.UIThread.InvokeAsync(() => { if (_shell.DebugMode) { _console.WriteLine($"Set Completion Data {_hidden}"); } SetCompletionData(result); _requestingData = false; if (unfilteredCompletions.Count > 0) { UpdateFilter(editor.CaretOffset, false); intellisenseControl.IsVisible = !_hidden; } else { _hidden = true; } }); } }); } else { UpdateFilter(editor.CaretOffset, false); } } }