Terminal: Режим передачи ConPTY

Созданный на 16 июл. 2019  ·  3Комментарии  ·  Источник: microsoft/terminal

Я обсуждал это пару раз в разных темах раньше, но я думаю, что никогда не делал для этого реальной проблемы.

Идея режима conpty passthrough заключается в том, что клиентское приложение командной строки, которое _знает_, что будет использовать только последовательности VT (и __не__ API) для модификации консоли, может установить специальный режим ENABLE_PASSTHROUGH_MODE . Если conpty активен, консоль _остановит_ рендеринг поверх conpty, и все, что будет записано в консоль, будет отправлено прямо в терминал.

  • Это будет особенно хорошо работать для чего-то вроде wsl , где будет говорить только VT.
  • Это _не_ работает для cmd.exe из-за сильной зависимости cmd.exe от API.
  • Windows Powershell снова очень сильно нуждается в API, но, возможно, Powershell Core, который является кроссплатформенным, мог бы его использовать.

Это имеет некоторые шероховатости, которые должны быть решены.

  • [ ] Что происходит, когда приложение закрывается, а сквозной режим отключен? Буферы терминала и conpty больше не будут эквивалентны!

    • Я играл с идеей, что conpty может передавать последовательности, а также сам их обрабатывать, чтобы терминал и conpty оставались синхронизированными.

  • [ ] Что произойдет, если кто-то попытается вызвать Console API в сквозном режиме?

    • Я думаю, мы просто заставляем их терпеть неудачу. Все за исключением Get/SetConsoleMode и чтением ввода/записи вывода.

    • Нам также, вероятно, потребуется иметь возможность считывать события изменения размера.

Для этого нужно написать настоящую спецификацию, но, вероятно, перед этим нужно создать прототип.

Area-Server Issue-Feature Needs-Triage Product-Conpty Resolution-Duplicate

Самый полезный комментарий

_о мой бог, я подал на дудку, теперь вы можете взять и четвертовать меня_

Все 3 Комментарий

Это может быть номер 1173?

_о мой бог, я подал на дудку, теперь вы можете взять и четвертовать меня_

mfw "нарисуй и четвертуй меня сейчас": 🤔😱

Была ли эта страница полезной?
0 / 5 - 0 рейтинги