- 
                Notifications
    You must be signed in to change notification settings 
- Fork 90
Open
Description
I've recently had cause to install jdtls myself, rather than using lsp-mode's auto-install faculty. Unfortunately, this can get a little messy. The issue at hand is the function lsp-java--locate-server-jar, and the directory layout of jdtls when it's installed by alternative tools. Specifically,  lsp-mode's installation creates a structure like this:
# ~.emacs.d/.cache/lsp/eclipse.jdt.ls/
drwxr-xr-x@ - rdonaldson 19 Sep 16:03 bin                                                                                       drwxr-xr-x@ - rdonaldson 19 Sep 16:03 boot-server                                                                               drwxr-xr-x@ - rdonaldson 19 Sep 16:03 bundles
drwxr-xr-x@ - rdonaldson 19 Sep 16:15 config_linux
drwxr-xr-x@ - rdonaldson 19 Sep 16:03 config_mac
drwxr-xr-x@ - rdonaldson 19 Sep 16:03 config_ss_linux                                                                           drwxr-xr-x@ - rdonaldson 19 Sep 16:03 config_ss_mac                                                                             drwxr-xr-x@ - rdonaldson 19 Sep 16:03 config_ss_win
drwxr-xr-x@ - rdonaldson 19 Sep 16:03 config_win
drwxr-xr-x@ - rdonaldson 19 Sep 16:03 features
drwxr-xr-x@ - rdonaldson 19 Sep 16:03 java-decompiler
drwxr-xr-x@ - rdonaldson 19 Sep 16:03 java-test
drwxr-xr-x@ - rdonaldson 19 Sep 16:03 plugins    Tools I'm using are creating layouts like so:
├── bin
│  ├── jdtls
│  └── jdtls.py
└── share
   └── java
      └── jdtls
         ├── config_linux
         ├── features
         └── pluginsWhile this installation is valid, it breaks JAR detection, so LSP won't start -- even though it can find the "server command".
I can see a couple very reasonable solutions here, and I'm happy to implement whichever solution y'all prefer.
- Right now, jar location searches in lsp-java-server-install-dir; we could add a newdefcustomforlsp-java-server-jar-locationand check there first if non-nil.
- We could add a new defcustomfor the path prefix of the JAR location within the install dir -- something like(defcustom lsp-java-server-jar-subpath "plugins").
- We could make a new defcustomfor the JAR location function itself, setting the current function as the default implementation.
Thanks so much for the excellent tools, y'all.
Metadata
Metadata
Assignees
Labels
No labels