/// <summary> /// Implementation of tab completion that leverages tab completion sources that are registered with the target definition. /// </summary> /// <param name="cliContext">cintext used internally</param> /// <returns>true if a tab completion was successfully made, false otherwise</returns> public bool TryTabComplete(RichCommandLineContext cliContext) { var powerArgsContext = ConvertContext(this.Definition, cliContext); bool oldHookWon = false; string completion = null; foreach (var completionSource in oldHooks) { if (completionSource is ITabCompletionSourceWithContext) { if (((ITabCompletionSourceWithContext)completionSource).TryComplete(powerArgsContext.Shift, powerArgsContext.PreviousToken, powerArgsContext.CompletionCandidate, out completion)) { oldHookWon = true; break; } } else { if (completionSource.TryComplete(powerArgsContext.Shift, powerArgsContext.CompletionCandidate, out completion)) { oldHookWon = true; break; } } } if (oldHookWon == false) { foreach (var completionSource in newHooks) { if (completionSource.TryComplete(powerArgsContext, out completion)) { break; } } } if (completion != null) { cliContext.CompleteCurrentToken(cliContext.CurrentToken, new ConsoleString(completion)); return(true); } else { return(false); } }
/// <summary> /// Implementation of tab completion that leverages tab completion sources that are registered with the target definition. /// </summary> /// <param name="cliContext">cintext used internally</param> /// <returns>true if a tab completion was successfully made, false otherwise</returns> public bool TryTabComplete(RichCommandLineContext cliContext) { var powerArgsContext = ConvertContext(this.Definition, cliContext); string completion = null; foreach (var completionSource in newHooks) { if (completionSource.TryComplete(powerArgsContext, out completion)) { break; } } if (completion != null) { cliContext.CompleteCurrentToken(cliContext.CurrentToken, new ConsoleString(completion)); return(true); } else { return(false); } }
/// <summary> /// Implementation of tab completion that leverages tab completion sources that are registered with the target definition. /// </summary> /// <param name="cliContext">cintext used internally</param> /// <returns>true if a tab completion was successfully made, false otherwise</returns> public bool TryTabComplete(RichCommandLineContext cliContext) { var powerArgsContext = ConvertContext(this.Definition, cliContext); bool oldHookWon = false; string completion = null; foreach (var completionSource in oldHooks) { if (completionSource is ITabCompletionSourceWithContext) { if (((ITabCompletionSourceWithContext)completionSource).TryComplete(powerArgsContext.Shift, powerArgsContext.PreviousToken, powerArgsContext.CompletionCandidate, out completion)) { oldHookWon = true; break; } } else { if (completionSource.TryComplete(powerArgsContext.Shift, powerArgsContext.CompletionCandidate, out completion)) { oldHookWon = true; break; } } } if (oldHookWon == false) { foreach (var completionSource in newHooks) { if (completionSource.TryComplete(powerArgsContext, out completion)) { break; } } } if (completion != null) { cliContext.CompleteCurrentToken(cliContext.CurrentToken, new ConsoleString(completion)); return true; } else { return false; } }