Терминал в JetBrains IDE перевели на библиотеку libghostty
Терминал в JetBrains IDE перевели на библиотеку libghostty. Фото: из архива компании
Причиной смены движка стал рост нагрузки на терминал: ИИ-агенты вроде Claude Code и Codex, полноэкранные приложения вроде Neovim и tmux, системные мониторы и панели мониторинга опираются на современные терминальные протоколы, которые прежний эмулятор JediTerm никогда не поддерживал.
Теперь libghostty берёт на себя парсинг и управление состоянием терминала, тогда как IDE по-прежнему отвечает за рендеринг и высокоуровневые интеграции.
На практике это означает, что многострочные подсказки и сочетания клавиш работают согласно документации: благодаря протоколу клавиатуры Kitty приложения различают Enter, Shift+Enter и Ctrl+Enter, а также могут запрашивать события отпускания и повтора нажатия, причём Shift+Enter начинает новую строку вместо отправки неполного сообщения, а старая настройка с отправкой Esc+CR больше не нужна и игнорируется.
Терминал также следует теме оформления IDE и уведомляет приложения о её смене, поэтому Claude Code, OpenCode, Pi, Neovim и tmux переключаются автоматически, а программы получают возможность задавать цвета расширенной палитры от 16 до 255, тогда как цвета от 0 до 15 остаются под управлением темы IDE.
Новый движок обрабатывает почти 50 управляющих последовательностей, которые JediTerm игнорировал или считывал неправильно, включая REP, SGR-цвета с двоеточиями и неизвестные строки APC, SOS и PM, а также поддерживает левые и правые поля, защищённые области, управление табуляцией, режим вставки, XTSAVE/XTRESTORE, прокрутку и очистку Kitty и отчёты мыши X10.
В результате линии и границы больше не отображаются некорректно, цветной вывод не показывает лишних двоеточий, а невидимый код не проступает в виде текста. Библиотека уже умеет обрабатывать буфер обмена OSC 52, уведомления рабочего стола, индикаторы выполнения ConEmu, графику Kitty и стилизованные подчёркивания — IDE осталось только подключить эти возможности, и они должны появиться быстрее, чем в случае с JediTerm.
Движок включён по умолчанию в сборках 2026.3 EAP и останется включённым в бета-версиях, Release Candidate и стабильном релизе; при необходимости можно вернуться к JediTerm, отключив функцию terminal.use.ghostty.emulator в реестре. Администрация JetBrains благодарит команду Ghostty, которая предложила сотрудничество на конференции в прошлом году, и отмечает вклад Митчелла Хашимото, Тима Калверхауса и всех участников проекта.
Упомянутый сервис
Комментариев пока не было