private static bool InterpretorOnCursorMove(IInterpretor sender, ICursorInformation args)
        {
            var orgPosition = (Console.CursorLeft, Console.CursorTop);

            if (args.OldCursorPosition.HasValue && args.OldCursorPosition.Value >= 0)
            {
                Console.SetCursorPosition(0, args.OldCursorPosition.Value);
                WriteMenuItem(' ' + sender.GetMenu().ElementAt(args.OldCursorPosition.Value)?.TrimStart(), sender as Interpretor);
            }

            if (args.NewCursorPosition.HasValue && args.NewCursorPosition.Value >= 0)
            {
                Console.SetCursorPosition(0, args.NewCursorPosition.Value);
                WriteMenuItem('>' + sender.GetMenu().ElementAt(args.NewCursorPosition.Value)?.TrimStart(), sender as Interpretor);
            }

            Console.SetCursorPosition(orgPosition.CursorLeft, orgPosition.CursorTop);

            return(false); //handled
        }
 public ICursorNavigation CreateCursorNavigation(ICursorInformation information) => new CursorNavigation(information, this._consoleInformation);