#eclipse_jdtls can be a real pita

!MESSAGE file:///[clipped]/Groups.java does not resolve to a ICompilationUnit

In 2019: "After cleaning the language server workspace,..."

Yeah, clear the workspace early and often.

Probably: My .classpath was wrecked. I fixed it in the project directory, but, hey, the language server seems to prefer to use some shit cache, even through multiple restarts.

I know it is maintained by volunteers, but 😩 .

https://github.com/redhat-developer/vscode-java/issues/667#issuecomment-500679147

#java #languageserver

Does not resolve to a ICompilationUnit Β· Issue #667 Β· redhat-developer/vscode-java

RedHat Language for Java is just not working No linter, no code suggestions, no "popups" on hovering, anything I'm able to get the following error: [Error - 21:08:10] 08-Oct-2018 21:08:10 file:///h...

GitHub

Never start Emacs Eglot for a Java project without a .git/ directory.

This drove me nuts now a second time. Without the .git/ directory, eglot doesn't know where the project's root directory is. Eclipse-jdtls goes all stupid, ignores .classpath, .project and all the package names are marked as wrong.

There are surely ways to tell Eglot where the project root is, but in the end there will be git anyway. Just don't to start your project without. 😜

#eglot #emacs #jdtls #eclipse_jdtls #git

Eglot and eclipse-jdtls, a dream team.

Jdtls sends a non-standard message "language/eventNotification ... Preview features enabled at an invalid source release level 21", non-standard insofar as it is not mentioned in the LSP-specification: https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/

At least Eglot lists the message in its message buffer.

Even me reading the message did not reckon it means: WE'RE ALL SCREWED UP, but keep running and pretend to be OK.

#eclipse_jdtls #jdtls #eclipse #emacs #eglot

Specification

This document describes the 3.17.x version of the language server protocol. An implementation for node of the 3.17.x version of the protocol can be found here.