Mono.Terminal.LineEditor.EditLoop C# (CSharp) Метод

EditLoop() публичный Метод

public EditLoop ( ) : void
Результат void
        void EditLoop()
        {
            ConsoleKeyInfo cki;

            while (!done)
            {
                ConsoleModifiers mod;

                cki = Console.ReadKey(true);
                if (cki.Key == ConsoleKey.Escape)
                {
                    cki = Console.ReadKey(true);

                    mod = ConsoleModifiers.Alt;
                }
                else
                    mod = cki.Modifiers;

                bool handled = false;

                foreach (Handler handler in handlers)
                {
                    ConsoleKeyInfo t = handler.CKI;

                    if (t.Key == cki.Key && t.Modifiers == mod)
                    {
                        handled = true;
                        handler.KeyHandler();
                        last_handler = handler.KeyHandler;
                        break;
                    }
                    else if (t.KeyChar == cki.KeyChar && t.Key == ConsoleKey.Zoom)
                    {
                        handled = true;
                        handler.KeyHandler();
                        last_handler = handler.KeyHandler;
                        break;
                    }
                }
                if (handled)
                {
                    if (searching != 0)
                    {
                        if (last_handler != CmdReverseSearch)
                        {
                            searching = 0;
                            SetPrompt(prompt);
                        }
                    }
                    continue;
                }

                if (cki.KeyChar != (char)0)
                    HandleChar(cki.KeyChar);
            }
        }