Exemple #1
0
        /// <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));
        }