internal static TabCompletionContext ConvertContext(CommandLineArgumentsDefinition definition, RichCommandLineContext innerContext)
{
TabCompletionContext context = new TabCompletionContext();
context.Definition = definition;
context.Shift = innerContext.KeyPressed.Modifiers.HasFlag(ConsoleModifiers.Shift);
context.PreviousToken = innerContext.CurrentTokenIndex > 0 ? innerContext.PreviousNonWhitespaceToken.Value : string.Empty;
context.CompletionCandidate = innerContext.CurrentToken.Value;
if (context.CompletionCandidate == " ")
{
context.CompletionCandidate = "";
}
context.CommandLineText = new ConsoleString(innerContext.Buffer).ToString();
context.TargetAction = FindContextualAction(innerContext.Tokens.FirstOrDefault().Value, definition);
context.TargetArgument = FindContextualArgument(context.PreviousToken, context.TargetAction, definition);
return context;
}