It appears that the Java Language Server "jdtls" unfortunately requires a "-data" flag to be passed along with some directory to function properly. Otherwise it fails or only provides primitive syntax checking, and no completion or other warnings. This was discussed on the Eglot issue tracker [0]. The following patch would invoke the server properly, passing project-specific cache directory for the program to use. I use `xdg-cache-home' to determine what directory to use, but didn't want to load it at the top of the file. Are there any strong opinions on that question?