Код на холсте: схема, редактор, 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-списком.
← Команды, права и кабинет Проект: задания, мета-язык, цепочка сборки →