public override CommandResult Execute() { Console.WriteLine("Entering loop."); var keyBindingSet = ConsoleKeyBindingSet.CreateDefaultSet(); keyBindingSet.Bind('c', ConsoleModifiers.Control, ConsoleInputOperation.Abort); ++_count; var parameters = new LoopInputOutputParameters { Prompt = new ColoredString($"Loop{new string('>', _count)} ", ConsoleColor.Cyan), KeyBindingSet = keyBindingSet, EndOfLineCommentCharacter = '#' }; var attrib = new ArgumentSetAttribute { Style = ArgumentSetStyle.GetOpt }; new Loop(typeof(MainCommandType), parameters, attrib).Execute(); --_count; Console.WriteLine("Exited loop."); return(CommandResult.Success); }
public void LoopCreatedWithIoParameters() { var keys = OnlyExitableCommand.Exit.ToString().AsKeys().Concat( ConsoleKey.Enter.ToKeyInfo()); var input = new SimulatedConsoleInput(keys); var output = new SimulatedConsoleOutput(); var parameters = new LoopInputOutputParameters { ConsoleInput = input, ConsoleOutput = output }; new Loop <OnlyExitableCommand>(parameters, null).Execute(); }
private static void RunInteractively() { Console.WriteLine("Entering loop."); var options = new LoopOptions { EndOfLineCommentCharacter = '#' }; var keyBindingSet = ConsoleKeyBindingSet.CreateDefaultSet(); keyBindingSet.Bind('c', ConsoleModifiers.Control, ConsoleInputOperation.Abort); var parameters = new LoopInputOutputParameters { Prompt = new ColoredString("Loop> ", ConsoleColor.Cyan), KeyBindingSet = keyBindingSet }; Loop<VerbType>.Execute(parameters, options); Console.WriteLine("Exited loop."); }