От vim-javacomplete2 к jc.nvim

С появлением LSP пришло время завершить развитие моего плагина для разработки на java в vim. Прощай vim-javacomplete2, с тобой было весело.

Но, так как я хотел сохранить свой рабочий процесс при работе с java приложениями, я решил перенести функционал из vim-jc2 в новый плагин jc.nvim.

И так, встречайте jc.nvim – neovim плагин для работы с java, с поддержкой LSP.

Старый функционал

Понятно, что основная задача плагина это автодополнение кода при его написании. Теперь эта функция работает ещё лучше, так как под капотом работает LSP сервер Eclipse. jc.nvim заботится о том, чтобы запустить сервер с нужными параметрами.

Для сохранения мышечной памяти своих пальцев я перенёс некоторый функционал из старого плагина. Такие, как:

Дополнительный функционал

Автоматическая установка внешних утилит

При активации плагин проверит наличие необходимых и опциональных утилит для java разработки.

В первую очередь будет предпринята попытка установить JDT.LS сервер, с помощью nvim-lsp-installer.

Затем, при необходимости будет установлено JDT.LS дополнение java-debug для возможности отладки приложений.

Так же, при необходимости будет скачана и собрана утилита jol для анализа объектов.

Отладка с Vimspector

Плагин позволяет использовать Vimspector для отладки приложений. Для этого существуют несколько команд:

Рефакторинг

С помощью nvim-jtdls реализованы извлечения методов и переменных. Чтобы использовать эти методы существуют команды:

Утилиты

Использование

Для быстрого старта достаточна следующая конфигурация:

call plug#begin('~/.vim/plugged') 

Plug 'neovim/nvim-lspconfig'
Plug 'hrsh7th/nvim-cmp' 
Plug 'hrsh7th/cmp-nvim-lsp'
Plug 'williamboman/nvim-lsp-installer'
Plug 'puremourning/vimspector'
Plug 'mfussenegger/nvim-jdtls'
Plug 'artur-shaik/jc.nvim'

call plug#end()

lua require('jc').setup{}

После установки всех дополнений и перезагрузки vim‘а, при открытии java файла jc.nvim проверит наличие всех необходимых утилит и при необходимости установит недостающие.