Понял, задача — сделать процесс создания классов в Java максимально автоматизированным, чтобы он не требовал ручного ввода путей и минимизировал количество действий, как это реализовано в IntelliJ IDEA. Попробуем усовершенствовать процесс.
Решение с помощью nvim-jdtls
Плагин nvim-jdtls
на самом деле поддерживает возможность создания классов и интерфейсов, аналогичную IntelliJ, но для этого нужно задействовать встроенные функции сервера jdtls
.
1. Команда для создания Java класса через LSP
jdtls
предоставляет возможность вызывать стандартные команды LSP, включая создание классов и интерфейсов. Мы можем использовать функционал, встроенный в jdtls
, чтобы сделать это.
Попробуйте следующее:
-
Создание команды LSP для нового класса или интерфейса
Добавьте в вашу конфигурацию Lua следующее:
- Настройка правильного расположения файла
Чтобы файл создавался в нужном пакете, рекомендуется использовать функциюjava.project.new
с корректной настройкойroot_dir
и структуры проекта.
2. Настройка структуры проекта
Чтобы это работало корректно, структура вашего проекта должна быть правильно определена:
root_dir
должен быть установлен на корень проекта (там, где находитсяpom.xml
илиbuild.gradle
).- Убедитесь, что
jdtls
понимает, где ваш корень проекта. Это можно сделать с помощью настройки:
3. Использование nvim-telescope
для выбора пакета
Для удобного выбора пакета можно использовать Telescope
в связке с командой создания класса:
- Установите
telescope-file-browser.nvim
:
- Настройте Telescope для поиска по пакетам и создания класса в нужном месте:
Теперь комбинация клавиш откроет окно Telescope
, где можно выбрать нужный пакет, после чего в выбранном пакете создастся Java класс.
Итог
Эти шаги позволят вам автоматически создавать файлы классов и интерфейсов в нужном пакете без ручного ввода путей. Если вас интересует более глубокая интеграция, например, с возможностью использовать шаблоны классов или интерфейсов, дайте знать — это тоже можно реализовать с помощью дополнительных Lua-скриптов.