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

Расширение VS Code

Расширение Elide для VS Code 1.105 и новее: синхронизация проекта для интеллектуальной поддержки кода Kotlin и Java, боковая панель Elide, code lens, тесты, отладка, задачи и настройки.

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

Расширение Elide превращает любую папку с elide.pkl в проект VS Code: оно синхронизирует зависимости и наборы исходников с языковым сервером Kotlin, а запуск, тестирование и отладку выполняет через CLI elide.

Требования

ТребованиеПримечания
VS Code 1.105 и новееНастольный VS Code или удалённая либо серверная сборка с локальной файловой системой.
Elide 1.5 и новееИщется в elide.home, $ELIDE_HOME, каталогах установки, затем в PATH. Для Elide 1.6 нужно расширение 0.6.0 и новее.
Kotlin by JetBrainsJetBrains.kotlin-server; устанавливается вместе с расширением. Ответьте на его вопросы при первом запуске.
JDKДля интеллектуальной поддержки кода; задайте elide.jdk.home или $JAVA_HOME.

Расширению нужно доверенное рабочее пространство: синхронизация запускает CLI elide из рабочего пространства.

Установка

curl -LOJ "https://plugins.elide.dev/vscode/files?id=elide.elide"
code --install-extension elide-*.vsix

Help → Get Started → Get started with Elide проводит через установку, проект, синхронизацию, запуск и тесты.

Синхронизация проекта

Папка с elide.pkl синхронизируется при открытии: Elide разрешает манифест, устанавливает зависимости, если lock-файл устарел, и записывает workspace.json для языкового сервера Kotlin. Добавьте workspace.json в .gitignore.

VS CodeSync and the Elide sidebar0:19Add a dependency to elide.pkl, reload when prompted, find it under Dependencies.
Строка состоянияЗначение
Elide с галочкойСинхронизировано
Elide с индикатором загрузкиИдёт синхронизация
Elide: out of dateИзменился elide.pkl или разрешённые зависимости
Elide цветом ошибкиСинхронизация не удалась; журнал CLI — в Elide: Show Output

Щелчок по элементу в строке состояния открывает меню Elide: синхронизировать, выполнить команду, запустить все тесты, открыть elide.pkl или вывод. Когда elide.pkl меняется, расширение предлагает перезагрузить проект (elide.sync.onManifestChange).

Боковая панель Elide

Представление Elide на панели действий показывает каждый проект:

ГруппаСтрокиДействия
EntrypointsЗаписи jvm.main, entrypoint и scriptsRun, Debug
Tasksbuild, test, install и Build targets из elide build --inspectRun, Debug для целей, которые принимают --debugger
Source setsКаждый набор исходников и его корни
DependenciesРазрешённые библиотекиПоказать в файловом менеджере

Интеллектуальная поддержка кода

Автодополнение, навигацию и диагностику для Kotlin и Java обеспечивает языковой сервер Kotlin, который импортирует синхронизированный workspace.json: по модулю на набор исходников, каждую библиотеку с исходниками, JDK и параметры Kotlin из манифеста.

VS CodeKotlin code intelligence0:12After a sync, the Kotlin language server completes project members and shows inlay hints.
  • Для объявленных пакетов Maven устанавливаются jar-файлы с исходниками, поэтому Go to Definition открывает код библиотеки (elide.install.classifiers).
  • JDK берётся из elide.jdk.home, затем из jvm.javaHome, $JAVA_HOME или установленного JDK, подходящего под jvm.target.
  • В рабочей копии может оставаться каталог .idea от IntelliJ: расширение задаёт intellij.buildTool значение json в настройках рабочего пространства, и каждый редактор читает свою модель.

Запуск

Code lens запускают то, что объявляет проект:

ГдеCode lens
Над функцией main для JVMRun with Elide, Debug with Elide
jvm.main и entrypoint в elide.pklRun, Debug
Записи scriptsRun script
Записи artifactsBuild; у бинарных файлов Native Image также Run и Debug
VS CodeRun with Elide0:08The code lens above main runs the entrypoint with elide run in a task terminal.

Запуски — это задачи VS Code типа elide; ошибки компилятора попадают в Problems с указанием файла и строки.

КомандаДействие
Elide: Run Elide Command…Запускает build, test, install или run <entrypoint> как задачу.
Elide: Sync Project(s)Повторяет синхронизацию.
Elide: Show MenuМеню строки состояния.
Elide: New Project…Создаёт проект из шаблона установленной CLI.
Elide: Add Workspace Member…Создаёт проект внутри текущего и добавляет его в workspace.members.
Elide: Open generated Kotlin LSP workspaceОткрывает workspace.json.
Elide: Show OutputПоказывает вывод CLI и журнал синхронизации.

В .vscode/tasks.json:

{ "type": "elide", "command": "test", "args": ["src/api"], "options": { "bail": 3 } }
ПолеЗначение
commandbuild, run, test или install
argsПозиционные аргументы: цели сборки, пути к тестам, точка входа
optionsПараметры CLI: { "no-cache": true } добавляет --no-cache; false убирает унаследованный параметр
flagsФлаги сборки -f NAME[=VALUE]
programArgsАргументы после --
env, projectОкружение; корень проекта относительно папки рабочего пространства

Тестирование

Тесты JUnit из тестовых наборов исходников появляются в представлении Testing со значками на полях у каждого класса и метода. Запуск вызывает elide test --reporter=tap для выбранных тестов и сообщает о каждом тесте по мере завершения; у упавшего теста показываются сообщение проверки и ссылка на строку с ошибкой.

VS CodeTests in the Testing view0:10JUnit tests run through elide test and report per test.

Профиль Debug запускает те же тесты под отладчиком.

Run with Coverage запускает выбранное с --coverage и показывает результат на полях редактора и в представлении Test Coverage: JavaScript и TypeScript — из LCOV, Java и Kotlin — из XML-отчёта JaCoCo. Включите XML-отчёт в elide.pkl:

import "elide:Coverage.pkl" as Coverage

coverage {
  jvm {
    reports { Coverage.xmlReport() }
  }
}
VS CodeRun with Coverage0:10Run the tests with coverage and read covered lines in the gutter and the Test Coverage view.

Отладка

Debug with Elide запускает elide run --debugger и подключается к нему. Точки останова в исходниках Kotlin и Java останавливают программу; завершение сеанса останавливает Elide.

VS CodeDebug with Elide0:13Stop on a breakpoint and inspect variables in a Kotlin program run by Elide.

В .vscode/launch.json:

{
  "type": "elide",
  "request": "launch",
  "name": "Elide: Run (debug)",
  "entrypoint": "src/main/kotlin/shop/Main.kt"
}
ПолеЗначение
commandrun (по умолчанию), test или build с targets
entrypointФайл, скрипт или точка входа; если пусто, берётся из манифеста
argsАргументы программы
elideArgs, options, flags, env, projectКак для задач

elide.debug.adapter выбирает отладчик: intellij (по умолчанию, из расширения Kotlin) или java (Debugger for Java). Отладчик слушает порт 5005, поэтому одновременно работает только один сеанс. Об отладке JavaScript, TypeScript и Python через CDP и DAP см. Отладка.

Native Image

Тип запуска elide-native собирает артефакт Native Image и отлаживает бинарный файл в GDB через расширение C/C++ (ms-vscode.cpptools):

{ "type": "elide-native", "request": "launch", "name": "Elide: Debug Native Image", "artifact": "bin" }

Для точек останова на уровне исходного кода добавьте -g в options.flags артефакта в elide.pkl; отладочная информация создаётся только в Linux. program отлаживает существующий бинарный файл, build: false пропускает сборку.

Рабочие пространства

Манифест с workspace.members синхронизируется как одна сборка. Каждый участник — отдельный проект в боковой панели, представлении Testing, задачах и конфигурациях запуска, а интеллектуальная поддержка кода следует зависимостям project("name") между участниками без сборки. При открытии каталога участника расширение предлагает открыть корень рабочего пространства. См. Рабочие пространства.

Настройки

НастройкаПо умолчаниюДействие
elide.home""Корень установки Elide. Если пусто: $ELIDE_HOME, каталоги установки, затем elide в PATH.
elide.jdk.home""JDK для интеллектуальной поддержки кода.
elide.sync.onStartuptrueСинхронизировать при открытии рабочего пространства.
elide.sync.onManifestChange"prompt"always, prompt или never.
elide.kotlinLsp.writeWorkspaceJsontrueЗаписывать workspace.json.
elide.install.classifiers["sources"]Дополнительные jar-файлы для каждого пакета Maven: sources, docs.
elide.flags[]Флаги -f NAME[=VALUE] для каждого вызова, включая синхронизацию.
elide.build.options{}Параметры elide build по умолчанию; аналогично elide.run.options, elide.test.options и elide.install.options.
elide.codeLens.enabledtrueПоказывать code lens Run и Debug.
elide.debug.adapter"intellij"intellij или java.
elide.debug.nativeMiMode"auto"gdb, lldb или auto для сеансов Native Image.
elide.debug.miDebuggerPath""Бинарный файл GDB или lldb-mi для сеансов Native Image.

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