public Task <SimpleExpansion> GetExpansionsAsync( string line, int caretIndex, CancellationToken token) { return(CommandExpansion.GetExpansionsAsync(line, caretIndex, token)); }
private async Task TriggerCompletionAsync() { if (CommandExpansion == null) { return; // Host CommandExpansion service not available } if (IsCompletionSessionActive) { _completionSession.Dismiss(); _completionSession = null; } string line = WpfConsole.InputLineText; int caretIndex = CaretPosition - WpfConsole.InputLineStart.Value; Debug.Assert(caretIndex >= 0); // Cancel tab expansion if it takes more than 'TabExpansionTimeout' secs (defaults to 3 secs) to get any results CancellationTokenSource ctSource = new CancellationTokenSource(TabExpansionTimeout * 1000); SimpleExpansion simpleExpansion = null; try { WpfConsole.Dispatcher.SetExecutingCommand(true); simpleExpansion = await CommandExpansion.GetExpansionsAsync(line, caretIndex, ctSource.Token); } catch (Exception x) { // Ignore exception from expansion, but write it to the activity log ExceptionHelper.WriteErrorToActivityLog(x); } finally { WpfConsole.Dispatcher.SetExecutingCommand(false); } if (simpleExpansion != null && simpleExpansion.Expansions != null) { IList <string> expansions = simpleExpansion.Expansions; if (expansions.Count == 1) // Shortcut for 1 TabExpansion candidate { ReplaceTabExpansion(simpleExpansion.Start, simpleExpansion.Length, expansions[0]); } else if (expansions.Count > 1) // Only start intellisense session for multiple expansion candidates { _completionSession = CompletionBroker.CreateCompletionSession( WpfTextView, WpfTextView.TextSnapshot.CreateTrackingPoint(CaretPosition.Position, PointTrackingMode.Positive), true); _completionSession.Properties.AddProperty("TabExpansion", simpleExpansion); _completionSession.Dismissed += CompletionSession_Dismissed; _completionSession.Start(); } } }
public void AdjustExpansionsReturnsNullIfParametersAreNull() { // Arrange string result = null; string leftWord = null; string[] expansions = null; // Act result = CommandExpansion.AdjustExpansions(leftWord, ref expansions); // Assert Assert.Null(result); }
async Task <SimpleExpansion> TryGetExpansionsAsync( string line, int caretIndex, CancellationToken token) { try { return(await CommandExpansion.GetExpansionsAsync(line, caretIndex, token)); } catch (OperationCanceledException) { return(null); } catch (Exception ex) { LoggingService.LogError("GetExpansionsAsync error.", ex); return(null); } }
void TriggerCompletion() { if (CommandExpansion == null) { return; // Host CommandExpansion service not available } if (IsCompletionSessionActive) { _completionSession.Dismiss(); _completionSession = null; } string line = WpfConsole.InputLineText; int caretIndex = CaretPosition - WpfConsole.InputLineStart.Value; Debug.Assert(caretIndex >= 0); SimpleExpansion simpleExpansion = null; try { simpleExpansion = CommandExpansion.GetExpansions(line, caretIndex); } catch (Exception x) { // Ignore exception from expansion, but write it to the activity log ExceptionHelper.WriteToActivityLog(x); } if (simpleExpansion != null && simpleExpansion.Expansions != null) { IList <string> expansions = simpleExpansion.Expansions; if (expansions.Count == 1) // Shortcut for 1 TabExpansion candidate { ReplaceTabExpansion(simpleExpansion.Start, simpleExpansion.Length, expansions[0]); } else if (expansions.Count > 1) // Only start intellisense session for multiple expansion candidates { _completionSession = CompletionBroker.CreateCompletionSession( WpfTextView, WpfTextView.TextSnapshot.CreateTrackingPoint(CaretPosition.Position, PointTrackingMode.Positive), true); _completionSession.Properties.AddProperty("TabExpansion", simpleExpansion); _completionSession.Dismissed += CompletionSession_Dismissed; _completionSession.Start(); } } }
public void AdjustExpansionsReturnsNullIfExpansionsHaveNoCommonWord() { // Arrange string result = null; string leftWord = "App1."; string[] expansions = new string[] { @".\App1.sln", @".\App1.suo" }; // Act result = CommandExpansion.AdjustExpansions(leftWord, ref expansions); // Assert Assert.Null(result); Assert.Equal(@".\App1.sln", expansions[0]); Assert.Equal(@".\App1.suo", expansions[1]); }
public void AdjustExpansionsReturnsNonNullCommonWord() { // Arrange string result = null; string leftWord = "jQuery."; string[] expansions = new string[] { "jQuery.UI", "jQuery.Validation" }; // Act result = CommandExpansion.AdjustExpansions(leftWord, ref expansions); // Assert Assert.Equal(leftWord, result); Assert.Equal("UI", expansions[0]); Assert.Equal("Validation", expansions[1]); }