Открытое бета-тестирование: все тарифы со скидкой 100% на время тестирования. Нашли изъян или есть идея — напишите нам.

Код на холсте: схема, редактор, LSP

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

Схема кода

«Данные → 🗂 Схема кода…»: выберите агента команды, его папку (mount из agent.json, режим rw, если планируете править) и путь внутри, обычно lib. Агент разбирает файлы у себя и присылает только структуру. На холст ложится группа «Код: агент/папка/путь»: файлы группами, классы карточками с членами, рёбра импорта пунктиром и рёбра наследования.

Повторное чтение обновляет группу на месте: новые файлы добавляются, исчезнувшие гаснут, расставленное вами остаётся. Для Dart структуру разбирает агент. Для языков, описанных в f2plw, агент присылает тексты файлов, разбирает сайдкар сервера, на холст ложатся таблицы языка карточками, а их строки членами.

Редактор файлов

У карточки файла или класса в инспекторе есть секция «Код». «⌨ Код…» открывает файл в редакторе на нужной строке.

ВозможностьКак
ВкладкиCtrl+Tab, «+ файл…» открывает соседний файл схемы по пути
СохранитьCtrl+S записывает файл агенту, папка должна быть в режиме rw
ЗакрытьCtrl+W, Esc с несохранённым предупреждает
МультикареткаCtrl+D добавляет следующее вхождение, Ctrl+Shift+L все, Esc снимает
ОтступыTab и Shift+Tab, Enter сохраняет отступ
КомментарийCtrl+/
ПереходCtrl+G к строке, Ctrl+Shift+O к структуре файла
Переносытумблер ↩, код без переносов прокручивается по горизонтали
Проверка«✓» запускает анализатор у агента, маркеры в поле слева, первая проблема в подвале

Подсветка выбирается по расширению: dart, php, python, js и ts, sh, css, html, json, yaml, sql и языки f2plw. Каретки коллег, открывших тот же файл, видны поверх текста.

Сервер языка через агента

Если в agent.json описан сервер языка, редактор получает от него живые подсказки:

"lsp": {
  "dart": "dart language-server --protocol=lsp",
  "php": "intelephense --stdio"
}

Агент поднимает процесс на пару «папка и язык» при первом обращении и гасит его через десять минут простоя. Облако не выбирает команду, только язык из списка. В редакторе после паузы в правке приходят диагностики, Ctrl+Space дополняет в точке каретки, F12 ведёт к определению, Ctrl+Q показывает подсказку о символе, F2 переименовывает символ во всей папке. Текст файла передаётся агенту и обратно, на сервере не хранится.

Языки f2plw в редакторе

Файл языка, описанного в f2plw, открывается с подсветкой plw:<ЯЗЫК>. После каждой паузы в правке редактор отправляет текст на проверку сайдкару и красит лексемы по состояниям разбора: комментарии, строки, числа, слова языка. Проблемы получают позицию, состояние и список ожидаемого. Ctrl+Space сначала показывает, что допустимо в текущем состоянии, затем слова языка и документа. Файлы больше четырёхсот строк проверяются кусками, после правки заново идут только изменившиеся.

Код прямо на холсте

У карточки файла есть «▦ На холст»: рядом появляется узел «📄 Код файла» с подсвеченным текстом. F2 или двойной щелчок открывает правку на месте с теми же отступами, Ctrl+Enter применяет, Esc отменяет. В инспекторе «💾 Сохранить» записывает файл агенту, «↻ Перечитать» берёт свежий текст, «✓ Проверить» спрашивает сайдкар или сервер языка, «⌨ В редакторе» открывает тот же файл во вкладке. Из палитры «📄 Код файла» кладётся пустой узел для кода без файла, текст из него передаётся рёбрами куда угодно.

Права

Чтение структуры и файлов требует способности cap.file, запись и серверы языков дополнительно требуют права писать в комнате и способности cap.shell. Команды у агента ограничены его собственным allow-списком.

← Команды, права и кабинет