This article is a checklist to show what capabilities NeoVim as Java IDE has. I don't have a formulated list in my mind. I use IntelliJ on daily basis and I consider its features as basic and default things. They aren't.
The point of this list is seeing if NeoVim as Java IDE is ready for to be used in corporate environment or not.
On the other hand, if I decide to start a project to provide better tooling for NeoVim java then this article is a good start to identify requirements.
The configurations I am going to try out are based on LunarVim.
This article is continuously updated.
The reference is always IntelliJ.
Code formatting
annotation placement for fields is configurable
annotation placement for classes/types are configurable
import order
lexical order
raw order
import grouping
JDK packages
Own packages
static imports
spaces between import group
Code formatting check
File management
add a new class/interface/record
package name added
class/interface/record/enum name added
Test execution
Debugging
IntelliSense
- when type is added its import automatically added
Snippets
Refactoring
Build systems support
Maven
adding package
showing the available versions of the given package
intellisense for the package name
intellisense for the package id
pom.xml reload
checks if the configuration is correct
when configuration changes (for example a new sources directory has been added) the configuration has to be reloaded and LSP has to pick up the java source files from the new added directory.
package configuration
- intellisense to the package specifics