Перейти к содержимому

Расширение Zed

Расширение Elide для Zed: elide lsp как языковой сервер Java, адаптер отладки Elide для JavaScript, TypeScript и Python и отладка из задач Zed.

На этой странице

Расширение Elide для Zed добавляет elide lsp как языковой сервер Java и адаптер отладки Elide для JavaScript, TypeScript и Python. Любая задача Zed, которая запускает elide run или elide test, также появляется на вкладке Debug отладчика.

Требования

ТребованиеЗачем
Elide 1.6.0 и новее в PATHРасширение запускает elide; другой путь можно задать в настройках.
Расширение Java для ZedОно определяет язык Java.
Расширение PklПодсвечивает elide.pkl. Необязательно.
elide setup pythonТолько для отладки Python.

Установка

Установите его как расширение для разработки; для этого нужен Rust через rustup:

git clone https://github.com/elide-dev/zed elide-zed

В Zed откройте Extensions, выберите Install Dev Extension и укажите каталог elide-zed.

Языковой сервер Java

Укажите elide в списке language_servers для Java в settings.json. Чтобы использовать его вместо jdtls:

{
  "languages": {
    "Java": { "language_servers": ["elide", "!jdtls", "..."] }
  }
}

["elide", "jdtls"] оставляет оба; ["!elide", "..."] отключает Elide. Сервер читает корень рабочего пространства, который передаёт Zed, и elide.pkl в нём делает его проектом Elide, поэтому зависимости разрешаются. Сервер поддерживает диагностику, автодополнение, подсказки при наведении, навигацию, переименование, форматирование, действия с кодом, inlay-подсказки и семантические токены; полный список приведён на странице Другие редакторы.

Чтобы запустить конкретный бинарный файл или передать дополнительные флаги:

{
  "lsp": {
    "elide": {
      "binary": { "path": "/opt/elide/bin/elide", "arguments": ["lsp"] }
    }
  }
}

arguments заменяет значение по умолчанию ["lsp"].

Отладка

Откройте отладчик командой debugger: start (F4) и выберите сценарий из .zed/debug.json, задачу на вкладке Debug или Launch с адаптером Elide. launch запускает elide run --debugger=dap (или elide test с "command": "test") и подключается; attach подключается к программе, которая уже слушает порт:

[
  { "label": "Debug app.ts", "adapter": "Elide", "request": "launch", "program": "app.ts" },
  { "label": "Debug this file", "adapter": "Elide", "request": "launch", "program": "$ZED_FILE" },
  { "label": "Debug tests", "adapter": "Elide", "request": "launch", "command": "test", "args": ["app.test.ts"] },
  { "label": "Attach", "adapter": "Elide", "request": "attach", "tcp_connection": { "host": "127.0.0.1", "port": 4711 } }
]
Поле launchЗначение
programФайл для запуска относительно cwd.
argsАргументы после program.
cwdРабочий каталог; по умолчанию корень worktree.
envДополнительные переменные окружения.
commandrun (по умолчанию) или test.
elideArgsФлаги Elide перед program, например ["--max-mem=512m"].
host, portСлушатель DAP; по умолчанию 127.0.0.1 и свободный порт (4711 для подключения).

Вывод программы появляется в консоли отладки. Чтобы подключиться, запустите программу сами:

elide run --debugger=dap app.py

Чтобы сделать Elide отладчиком по умолчанию для полей редактора и окна нового процесса для языка:

{ "languages": { "TypeScript": { "debuggers": ["Elide"] } } }

Ограничения

  • Отладка Java и Kotlin (JDWP) не поддерживается: Zed отлаживает Java только через расширение Java.

Была ли эта страница полезной?