Я работаю над IDE на базе Neovim для Java, основанной на установке SpaceVim. Чтобы настроить все должным образом, потребовалось немало времени, но я почти у цели. Языковой сервер JDTLS настроен и работает. Когда я открываю Java-файл, я получаю все ожидаемые преимущества, включая автозаполнение в реальном времени и проверку синтаксиса.
Моя текущая проблема связана с отладчиком. В SpaceVim включен уровень «отладки», и я хотел бы использовать «vimspector» в качестве плагина отладки, чтобы он был настроен в
~/.SpaceVim.d/init.toml. Я запустил :VimspectorInstall vscode-java-debug из Neovim, и похоже, что указанный гаджет установлен правильно. У меня есть Java-приложение, которое я использую для тестирования, созданное с помощью Apache Maven, следующим образом:
Код: Выделить всё
mvn archetype:generate -DgroupId=my.test.app \
-DartifactId=hello \
-DarchetypeArtifactId=maven-archetype-quickstart \
-DinteractiveMode=false
В корне каталога этого приложения у меня есть следующий файл
.vimspector.json:
Код: Выделить всё
{
"configurations": {
"Java Attach": {
"adapter": "vscode-java",
"filetypes": [ "java" ],
"configuration": {
"request": "attach",
"hostName": "localhost",
"port": "${port}",
"sourcePaths": [
"${workspaceRoot}/src/main/java",
"${workspaceRoot}/src/test/java"
]
}
}
}
}
При открытом исходном файле Java и попытке запустить отладчик ([SPC] d c) мне предлагается ввести номер порта. Это логично, поскольку я не указал его в файле конфигурации выше. И вот здесь я застрял. Каким-то образом, исходя из моей конфигурации, nvim «знает», как взаимодействовать с сервером jdtls всякий раз, когда загружается Java-файл, для целей синтаксиса и форматирования. Я знаю, что это работает, потому что иначе я бы не получил проверку синтаксиса в реальном времени и т. д. Но Vimspector, похоже, не может делать то же самое изначально. Я подозреваю, что это как-то связано с файлом .vimspector.json, указанным выше, который, вероятно, не совсем подходит для моей установки. Предполагая, что это проблема с портом, я могу увидеть, какой порт он прослушивает, с помощью команды netstat -lnt. Но номер порта каждый раз меняется. Более того, хотя поиск и ввод его позволяют запустить отладчик, возникают ошибки. Значит я где-то что-то упускаю. Любое направление в направлении рабочего решения приветствуется.
Подробнее здесь:
https://stackoverflow.com/questions/791 ... n-vim-nvim