Skip to content

Use jdtls startup script by default? #44

Description

@yveszoundi

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...

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedExtra attention is neededquestionFurther information is requested

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions