Я работаю над IDE на базе Neovim для Java, основанной на установке SpaceVim. Чтобы настроить все должным образом, потребовалось немало времени, но я почти у цели. Языковой сервер JDTLS настроен и работает. Когда я открываю Java-файл, я получаю все ожидаемые преимущества, включая автозаполнение в реальном времени и проверку синтаксиса.
Моя текущая проблема связана с отладчиком. В SpaceVim включен уровень «отладки», а «Vimspector» настроен как плагин отладки. Я запустил :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-файл. Я знаю, что он работает, потому что в противном случае я бы не получил проверку синтаксиса в реальном времени и т. д. Я могу увидеть, какой порт он прослушивает, с помощью netstat -lnt. Но номер порта каждый раз меняется. Более того, хотя поиск и ввод его позволяют запустить отладчик, возникают ошибки. Такое ощущение, что я где-то что-то упускаю. Любое направление в направлении рабочего решения приветствуется.
Подробнее здесь:
https://stackoverflow.com/questions/791 ... n-vim-nvim