Работа в удалённых окружениях¶
Koda работает с проектом там же, где открыт сам проект. Если вы открываете его не на своём компьютере, а в удалённом окружении, важно понимать это правило: команды, чтение и запись файлов, поиск, индексация и настройки выполняются на той стороне, где находится проект, а не на вашей машине.
Отдельная настройка для этого обычно не нужна — достаточно установить Koda в нужном месте и проверить доступ к сервису изнутри окружения.
Что выбрать¶
У каждого окружения — своя страница, а внутри неё есть отдельные разделы для VS Code и IntelliJ.
-
WSL
Проект лежит в Linux-окружении внутри Windows, а Koda работает там же — в WSL.
-
Dev Containers
Проект открыт в контейнере, описанном спецификацией containers.dev и файлом
devcontainer.json. -
Remote SSH
Проект лежит на удалённой машине, к которой вы подключаетесь по SSH.
-
GitHub Codespaces
Проект разворачивается в облачном окружении GitHub, настроенном тем же файлом
devcontainer.json.
Общие принципы¶
Независимо от окружения и IDE действуют несколько правил:
- Koda нужно установить на той стороне, где открыт проект, а не только на своём компьютере.
- Файлы, терминал и поиск работают в окружении проекта.
- Индекс кодовой базы и настройки хранятся на стороне проекта, в каталоге
~/.kodaэтого окружения. - Изнутри окружения должен быть доступ к
api.kodacode.ru— иначе Koda не сможет обращаться к моделям. - Настройки, сделанные на вашем компьютере, не переносятся в удалённое окружение автоматически.
Как это устроено в JetBrains¶
В IDE на платформе IntelliJ удалённая работа строится на Remote Development. На удалённой стороне запускается бэкенд IDE: он читает и индексирует проект, собирает, запускает и отлаживает код. На вашем компьютере работает JetBrains Client — тонкий клиент, который даёт полный доступ ко всем функциям IDE, но не хранит исходный код.
JetBrains Gateway — это лёгкий лаунчер: он связывает удалённый сервер с вашим компьютером, скачивает нужные компоненты на бэкенд и открывает проект в JetBrains Client.
Зачем это нужно:
- работать с проектом на другой операционной системе, чем ваша;
- использовать более мощное железо, чем ваш компьютер;
- держать на ноутбуке только клиент, не размещая исходный код локально;
- работать откуда угодно, оставляя код на серверах компании.
Открыть JetBrains Gateway можно одним из способов:
- из JetBrains Toolbox App — он управляет версиями IDE и вашими проектами;
- из окна приветствия IntelliJ IDEA — раздел Remote Development;
- как отдельное приложение, скачанное с сайта JetBrains.
В IntelliJ IDEA функция Remote Development работает через плагин Remote Development Gateway. В IntelliJ IDEA Ultimate он идёт в комплекте и включён по умолчанию.
Через эти точки входа доступны разные окружения:
- удалённый хост по SSH — см. страницу «Remote SSH»;
- Dev Container, запущенный на удалённой машине — см. страницу «Dev Containers»;
- WSL — поддерживается в JetBrains Gateway нативно, см. страницу «WSL»;
- облачные среды разработки — GitHub Codespaces, Google Cloud, Gitpod, Amazon CodeCatalyst, Coder и другие, — см. страницу «GitHub Codespaces».
Koda в этом случае устанавливается в бэкенд IDE — туда же, где работает бэкенд и лежит проект.
Плагины в бэкенд
Плагин Koda ставится в бэкенд IDE — из JetBrains Marketplace так же, как любой другой плагин.
При установке плагина в настройках видно, где он установлен: на удалённом хосте, в JetBrains Client или в обоих местах.
Плагины в бэкенд ставятся для каждого проекта отдельно: при подключении к новому проекту нужный плагин нужно установить заново.
Если бэкенд был настроен вручную, плагин можно добавить и из командной строки: bin/remote-dev-server.sh installPlugins <путь к проекту> <ID плагина>.
Бэкенд и контроль¶
В JetBrains Client на главной панели инструментов видно имя бэкенда и показатели памяти и задержки. По клику на имя бэкенда открывается окно управления, где можно проверить состояние удалённого сервера:
- Performance — загрузка процессора, потребление памяти и диска, а также задержка (ping) между клиентом и сервером;
- Ports — список проброшенных портов;
- Output — последние строки лога с удалённого сервера, что помогает увидеть ошибки;
- Settings — увеличение размера кучи (heap) и перезапуск бэкенда.
При первом открытии проекта IntelliJ IDEA предложит добавить SDK проекта — его можно настроить в диалоге Project Structure, и он будет скачан на удалённый сервер.
Память бэкенда (-Xmx) настраивается в файле idea64.vmoptions на удалённом сервере, после чего бэкенд нужно перезапустить.