public override bool CanAssist(RichCommandLineContext context)
{
Providers.Clear();
Providers.AddRange(standardProviders);
CommandLineArgument targetArgument = null;
if (context.PreviousNonWhitespaceToken != null && context.PreviousNonWhitespaceToken.Value.StartsWith("-"))
{
var candidate = context.PreviousNonWhitespaceToken.Value.Substring(1);
targetArgument = (from a in Definition.AllGlobalAndActionArguments where a.IsMatch(candidate) select a).SingleOrDefault();
}
if (targetArgument != null)
{
foreach (var assistant in targetArgument.Metadata.Metas<ArgContextualAssistant>())
{
var dynamicProvider = assistant.GetContextAssistProvider(Definition);
Providers.Add(dynamicProvider);
}
}
foreach(var provider in Providers)
{
if (provider is PowerArgsContextAwareAssistant)
{
(provider as PowerArgsContextAwareAssistant).TargetArgument = targetArgument;
}
}
var ret = base.CanAssist(context);
return ret;
}