Встроенный чат
Как менять выделенный код прямо в редакторе WorkAI: Cmd+I открывает поле запроса у строки, правка приходит диффом, принять — Enter, откатить — Esc.
Выделите фрагмент кода, нажмите ⌘I (Ctrl+I на Windows и Linux) — прямо в редакторе, над выделением, откроется поле запроса. Опишите правку словами, и WorkAI изменит именно этот фрагмент: результат применится в файл как дифф, который вы принимаете или откатываете, не переходя в панель чата.
Как вызвать
Три способа, все делают одно и то же:
- ⌘I / Ctrl+I при фокусе в редакторе;
- пункт встроенного чата в контекстном меню редактора (правый клик по выделению);
- команда Встроенный чат: начать встроенный чат в палитре команд.
Если выделения нет, запрос применяется к позиции курсора — фрагмент кода тогда не задан, и правка будет менее точной. Полезнее сначала выделить то, что хотите изменить.
Поле ввода можно вернуть себе с клавиатуры, не трогая мышь: ⌘↓ / Ctrl+↓, если курсор выше поля, и ⌘↑ / Ctrl+↑, если ниже.
Как принять или откатить правку
Изменения приходят в сам файл и подсвечиваются как дифф — добавленные и удалённые строки видно на месте, а не в отдельном окне сравнения. Пока правка не принята, доступны:
- Enter в пустом поле ввода или ⌘⏎ / Ctrl+⏎ — принять правку и закрыть окно (доступно, когда запрос уже отработал и в файле есть изменения);
- Esc в поле ввода — закрыть и вернуть код к исходному виду;
- Esc во время выполнения запроса — прервать его; уже применённые изменения при этом откатываются, а окно закрывается.
Если ответ уже пришёл, но не устроил, есть ещё два действия рядом с полем: Rephrase — вернуть ваш запрос в поле для переформулировки, и Ask in Chat — перенести этот же разговор в панель чата, если задача оказалась крупнее одного фрагмента.
Отдельно принимать или отклонять части диффа встроенный чат не даёт: сессия принимается или откатывается целиком.
Чем это отличается от чата в панели
Встроенный чат намеренно узкий. Он работает с одним открытым файлом и вашим выделением, не запускает инструменты агента — ни терминал, ни поиск по проекту, ни правку соседних файлов. Это разговор в режиме «Обсуждение» о конкретном куске кода.
Поэтому для «переименуй переменную и подтяни аргументы», «разбей на две функции», «добавь обработку ошибки» — берите ⌘I. Для задач, которые затрагивают несколько файлов или требуют изучить проект, идите в агента, а перед крупными изменениями — в Планирование.
Быстрая починка ошибки
Если в выделении или под курсором есть проблема от анализатора или компилятора, в подсказке над подчёркнутым местом появляется действие Исправить. Оно открывает то же поле, но уже с прикреплённым текстом ошибки и готовым запросом — запрос уходит сразу, вручную ничего писать не нужно.
Диагностика из выделенного диапазона прикрепляется к запросу и при обычном вызове ⌘I: если в выделении есть ошибки, поле откроется с уже прикреплёнными проблемами и заготовкой запроса — её можно отправить как есть или заменить своим текстом.
На какой модели это работает
На тех же моделях WorkAI, что и чат: во встроенном чате есть свой выбор модели. Модель по умолчанию задаётся отдельной настройкой inlineChat.defaultModel, независимо от модели, выбранной в чате. Если вы меняли модель прямо в окне встроенного чата, дальше используется этот выбор, а не настройка. Что за модели и как они тарифицируются — на странице Автовыбор модели и в разделе про модели и цены.
Если файл уже правит агент
Когда файл входит в текущую сессию агента и его правки ещё не приняты, ⌘I по умолчанию ведёт себя иначе: вместо отдельного окна он открывает панель чата и прикрепляет к запросу выделенный фрагмент. Так две правки одного файла не конфликтуют друг с другом. Разобраться с уже предложенными изменениями помогает Проверка кода.
Jupyter Notebook
В Jupyter Notebook ⌘I открывает то же поле, что и в обычном файле, но правка ограничена текущей ячейкой. Выделите код в ячейке (или поставьте курсор), опишите изменение — дифф придёт в исходник этой ячейки, а не во весь .ipynb.
Принять и откатить — те же клавиши: Enter в пустом поле или ⌘⏎ / Ctrl+⏎, Esc чтобы вернуть ячейку как была. Рядом появляется ещё одно действие — Принять и выполнить: правку принимают и сразу запускают ячейку. Само поле ячейку не исполняет.
Пока сессия открыта в одной ячейке, ⌘I в другой принимает предыдущую правку. Две незакрытые сессии в одном .ipynb одновременно не живут — не начинайте новую, если дифф в первой ещё не смотрели.
Ограничение то же, что у встроенного чата в файле: без терминала, без поиска по проекту и без правок соседних ячеек. Нужно пройтись по всем ячейкам или подтянуть данные из других файлов — это уже агент.