private static void OnKeyboardDown(int keyCode)
        {
            // игнорируем нажатие кнопок, которые нас не перемещают в пространстве
            // мы не можем выбрать только те кнопки, которые нас могут перемещать (UP, DOWN... CTRL + X/V/Z/Y, ENTER и тд),
            //     потому что у игрока может быть выделенный фрагмент текста и любая кнопка его удалит
            switch ((UserInputHandler.KeyCode)keyCode)
            {
            case UserInputHandler.KeyCode.VK_CONTROL:
            case UserInputHandler.KeyCode.VK_LSHIFT:
            case UserInputHandler.KeyCode.VK_RSHIFT:
            case UserInputHandler.KeyCode.VK_MENU:
            case UserInputHandler.KeyCode.VK_PAUSE:
            case UserInputHandler.KeyCode.VK_CAPITAL:
            case UserInputHandler.KeyCode.VK_SNAPSHOT:
            case UserInputHandler.KeyCode.VK_ESCAPE:
            case UserInputHandler.KeyCode.VK_F1:
            case UserInputHandler.KeyCode.VK_F2:
            case UserInputHandler.KeyCode.VK_F3:
            case UserInputHandler.KeyCode.VK_F4:
            case UserInputHandler.KeyCode.VK_F5:
            case UserInputHandler.KeyCode.VK_F6:
            case UserInputHandler.KeyCode.VK_F7:
            case UserInputHandler.KeyCode.VK_F8:
            case UserInputHandler.KeyCode.VK_F9:
            case UserInputHandler.KeyCode.VK_F10:
            case UserInputHandler.KeyCode.VK_F11:
            case UserInputHandler.KeyCode.VK_F12:
                return;
            }

            var gateway     = PluginBase.GetGatewayFactory().Invoke();
            var currentLine = gateway.GetCurrentLine();

            NavigationHandler.UpdateHistory(new JumpLocation(gateway.GetFullCurrentPath(), currentLine), NavigateActionType.KEYBOARD_DOWN);
        }