コード例 #1
0
        public Task <int> Run(ParseResult result)
        {
            try
            {
                var input    = result.GetValueForArgument(PathArgument) ?? string.Empty;
                var position = result.GetValueForOption(PositionOption);

                if (position > input.Length)
                {
                    input += " ";
                }

                Command     newCommand       = New3CommandFactory.Create();
                ParseResult newCommandResult = ParserFactory.CreateParser(newCommand).Parse(input);
                foreach (CompletionItem suggestion in newCommandResult.GetCompletions(position).Distinct())
                {
                    Console.WriteLine(suggestion.Label);
                }
            }
            catch (Exception)
            {
                return(Task.FromResult(1));
            }
            return(Task.FromResult(0));
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: dotnet/templating
        public static Task <int> Main(string[] args)
        {
            //setting output encoding is not available on those platforms
            if (!OperatingSystem.IsIOS() && !OperatingSystem.IsAndroid() && !OperatingSystem.IsTvOS())
            {
                //if output is redirected, force encoding to utf-8;
                //otherwise the caller may not decode it correctly
                //see guideline in https://dev.azure.com/devdiv/DevDiv/_wiki/wikis/DevDiv.wiki/4236/Character-Encoding-Issues?anchor=stdout
                if (Console.IsOutputRedirected)
                {
                    Console.OutputEncoding = Encoding.UTF8;
                }
            }

            RootCommand rootCommand = new RootCommand();

            rootCommand.AddCommand(New3CommandFactory.Create());
            return(ParserFactory.CreateParser(rootCommand).Parse(args).InvokeAsync());
        }