/// <summary> /// Complete an ARM resource "type" argument. /// </summary> /// <param name="commandName">The name of the invoked command whose argument this is.</param> /// <param name="parameterName">The name of the parameter for the argument, if any.</param> /// <param name="wordToComplete">The argument so far.</param> /// <param name="commandAst">The entirety of command AST in which this argument is being provided.</param> /// <param name="fakeBoundParameters">The attempted parameter binding, for providing something similar to $PSBoundParameters.</param> /// <returns></returns> public IEnumerable <CompletionResult> CompleteArgument(string commandName, string parameterName, string wordToComplete, CommandAst commandAst, IDictionary fakeBoundParameters) { ArmResourceName resourceName = GetResourceNameFromParameters(fakeBoundParameters); IEnumerable <string> completionStrings = ResourceKeywordSchema.Value.GetParameterValues(parameterName, resourceName.Namespace, resourceName.Type, resourceName.ApiVersion); if (!string.IsNullOrEmpty(wordToComplete)) { completionStrings = completionStrings.Where(s => s.StartsWith(wordToComplete, StringComparison.OrdinalIgnoreCase)); } return(GetCompletionResultsFromStrings(completionStrings)); }
public override IEnumerable <string> GetParameterValues(KeywordContextFrame context, string parameterName) { ArmResourceName resourceName = GetResourceNameFromAst(context.CommandAst); return(GetParameterValues(parameterName, resourceName.Namespace, resourceName.Type, resourceName.ApiVersion)); }