Background
By default, eglot-java doesn't use the Eclipse JDT LS startup scripts (jdtls binary).
Problem
By default, eglot-java dynamically modifies the eglot-server-programs variable for launching the Eclipse JDT LS server.
Some users might not realize that, even though it's documented (Package headers and GitHub project README), and that will result into both frustration and time wasted.
Scenario 1 - eglot changes how LSP servers can be mapped to programming modes
Scenario 2 - users have already configured eglot-server-programs to their liking for jdtls
Request
Changes
There's an existing variable that controls how eglot-java dynamically modifies the value of eglot-server-programs.
eglot-java-eglot-server-programs-manual-updates is a variable defined in ‘eglot-java.el’.
Its value is nil
Do not try to automatically update eglot-server-programs
The change will change the default value of eglot-java-eglot-server-programs-manual-updates to t. The project documentation will also need to be updated to reflect that
Expected Impacts
- Potentially negligible for the vast majority of new users.
- People typically installed
eglot-java when they do not want an involved configuration
- By that time, they might already have an awareness of
jdtls startup scripts and mostly value eglot-java for its ability to automatically install the Eclipse JDT LS server.
- Potentially annoying for existing users, as it may break their existing customization
- Any custom JVM arguments would be ignored when switching to the jdtls script
- Windows or Mac OS users don't necessarily have
Python installed and they might not be aware that the jdtls script needs it...
Caveats
I don't feel that eglot java defaults are that good myself: see joaotavora/eglot#1008 (comment). Either way, it's probably better to have an explicit user opt-in (eglot-java magic), instead of people continuously running into configuration issues...
Background
By default,
eglot-javadoesn't use the Eclipse JDT LS startup scripts (jdtlsbinary).jdtlsstartup scripts existed (See Put this bash script into the appropriate location eclipse-jdtls/eclipse.jdt.ls#1823)jdtlsstartup scripts require aPythoninstallationPythonis typically pre-installed on Linux, as many programs use thatPythonis not pre-installedPythonis also not bundled anymore as of MacOS Monterey 12.3Problem
By default,
eglot-javadynamically modifies theeglot-server-programsvariable for launching the Eclipse JDT LS server.Some users might not realize that, even though it's documented (Package headers and GitHub project README), and that will result into both frustration and time wasted.
Scenario 1 - eglot changes how LSP servers can be mapped to programming modes
eglotwon't be able to start the LSP server, with obscure error emacs-lisp messagesScenario 2 - users have already configured eglot-server-programs to their liking for jdtls
Request
Changes
There's an existing variable that controls how
eglot-javadynamically modifies the value ofeglot-server-programs.The change will change the default value of
eglot-java-eglot-server-programs-manual-updatestot. The project documentation will also need to be updated to reflect thatExpected Impacts
eglot-javawhen they do not want an involved configurationjdtlsstartup scripts and mostly valueeglot-javafor its ability to automatically install the Eclipse JDT LS server.Pythoninstalled and they might not be aware that thejdtlsscript needs it...Caveats
I don't feel that
eglotjava defaults are that good myself: see joaotavora/eglot#1008 (comment). Either way, it's probably better to have an explicit user opt-in (eglot-javamagic), instead of people continuously running into configuration issues...