Subject: bug#72477: 29.4; Completion at point fails with Eclipse JDT

From: Cay Horstmann <[email-masked]>
Date: Mon, 5 Aug 2024 17:02:26 +0200

I am running emacs version 29.4, eglot version 1.17, ivy version 20240524.1139, Eclipse JDT version 1.38.0

In a minimal Java program,

```
public class Hello {
     public static void main(String[] args) {
     }
}
```

start eglot, enter `System.` into the body (in a new line after the second `{`). Hit the key bound to `completion-at-point`. The following backtrace appears:

```
Debugger entered--Lisp error: (wrong-number-of-arguments #<subr sort> 3)
   sort((#("class : Class<java.lang.Sy..." 0 1 (eglot--lsp-item ...)) #("err : PrintStream" 0 1 (eglot--lsp-item ...)) #("in : InputStream" 0 1 (eglot--lsp-item ...)) #("out : PrintStream" 0 1 (eglot--lsp-item ...)) #("arraycopy(Object src, int ..." 0 1 (eglot--lsp-item ...)) #("clearProperty(String key) ..." 0 1 (eglot--lsp-item ...)) #("console() : Console" 0 1 (eglot--lsp-item ...)) #("currentTimeMillis() : long" 0 1 (eglot--lsp-item ...)) #("exit(int status) : void" 0 1 (eglot--lsp-item ...)) #("gc() : void" 0 1 (eglot--lsp-item ...)) #("getLogger(String name) : L..." 0 1 (eglot--lsp-item ...)) #("getLogger(String name, Res..." 0 1 (eglot--lsp-item ...)) #("getProperties() : Properti..." 0 1 (eglot--lsp-item ...)) #("getProperty(String key) : ..." 0 1 (eglot--lsp-item ...)) #("getProperty(String key, St..." 0 1 (eglot--lsp-item ...)) #("getSecurityManager() : Sec..." 0 1 (eglot--lsp-item ...)) #("getenv() : Map<String,Stri..." 0 1 (eglot--lsp-item ...)) #("getenv(String name) : Stri..." 0 1 (eglot--lsp-item ...)) #("identityHashCode(Object x)..." 0 1 (eglot--lsp-item ...)) #("inheritedChannel() : Chann..." 0 1 (eglot--lsp-item ...)) #("lineSeparator() : String" 0 1 (eglot--lsp-item ...)) #("load(String filename) : vo..." 0 1 (eglot--lsp-item ...)) #("loadLibrary(String libname..." 0 1 (eglot--lsp-item ...)) #("mapLibraryName(String libn..." 0 1 (eglot--lsp-item ...)) #("nanoTime() : long" 0 1 (eglot--lsp-item ...)) #("runFinalization() : void" 0 1 (eglot--lsp-item ...)) ...) :key length)
   ivy--shorter-matches-first("" (#("class : Class<java.lang.Sy..." 0 1 (eglot--lsp-item ...)) #("err : PrintStream" 0 1 (eglot--lsp-item ...)) #("in : InputStream" 0 1 (eglot--lsp-item ...)) #("out : PrintStream" 0 1 (eglot--lsp-item ...)) #("arraycopy(Object src, int ..." 0 1 (eglot--lsp-item ...)) #("clearProperty(String key) ..." 0 1 (eglot--lsp-item ...)) #("console() : Console" 0 1 (eglot--lsp-item ...)) #("currentTimeMillis() : long" 0 1 (eglot--lsp-item ...)) #("exit(int status) : void" 0 1 (eglot--lsp-item ...)) #("gc() : void" 0 1 (eglot--lsp-item ...)) #("getLogger(String name) : L..." 0 1 (eglot--lsp-item ...)) #("getLogger(String name, Res..." 0 1 (eglot--lsp-item ...)) #("getProperties() : Properti..." 0 1 (eglot--lsp-item ...)) #("getProperty(String key) : ..." 0 1 (eglot--lsp-item ...)) #("getProperty(String key, St..." 0 1 (eglot--lsp-item ...)) #("getSecurityManager() : Sec..." 0 1 (eglot--lsp-item ...)) #("getenv() : Map<String,Stri..." 0 1 (eglot--lsp-item ...)) #("getenv(String name) : Stri..." 0 1 (eglot--lsp-item ...)) #("identityHashCode(Object x)..." 0 1 (eglot--lsp-item ...)) #("inheritedChannel() : Chann..." 0 1 (eglot--lsp-item ...)) #("lineSeparator() : String" 0 1 (eglot--lsp-item ...)) #("load(String filename) : vo..." 0 1 (eglot--lsp-item ...)) #("loadLibrary(String libname..." 0 1 (eglot--lsp-item ...)) #("mapLibraryName(String libn..." 0 1 (eglot--lsp-item ...)) #("nanoTime() : long" 0 1 (eglot--lsp-item ...)) #("runFinalization() : void" 0 1 (eglot--lsp-item ...)) ...))
   ivy--sort("" (#("class : Class<java.lang.Sy..." 0 1 (eglot--lsp-item ...)) #("err : PrintStream" 0 1 (eglot--lsp-item ...)) #("in : InputStream" 0 1 (eglot--lsp-item ...)) #("out : PrintStream" 0 1 (eglot--lsp-item ...)) #("arraycopy(Object src, int ..." 0 1 (eglot--lsp-item ...)) #("clearProperty(String key) ..." 0 1 (eglot--lsp-item ...)) #("console() : Console" 0 1 (eglot--lsp-item ...)) #("currentTimeMillis() : long" 0 1 (eglot--lsp-item ...)) #("exit(int status) : void" 0 1 (eglot--lsp-item ...)) #("gc() : void" 0 1 (eglot--lsp-item ...)) #("getLogger(String name) : L..." 0 1 (eglot--lsp-item ...)) #("getLogger(String name, Res..." 0 1 (eglot--lsp-item ...)) #("getProperties() : Properti..." 0 1 (eglot--lsp-item ...)) #("getProperty(String key) : ..." 0 1 (eglot--lsp-item ...)) #("getProperty(String key, St..." 0 1 (eglot--lsp-item ...)) #("getSecurityManager() : Sec..." 0 1 (eglot--lsp-item ...)) #("getenv() : Map<String,Stri..." 0 1 (eglot--lsp-item ...)) #("getenv(String name) : Stri..." 0 1 (eglot--lsp-item ...)) #("identityHashCode(Object x)..." 0 1 (eglot--lsp-item ...)) #("inheritedChannel() : Chann..." 0 1 (eglot--lsp-item ...)) #("lineSeparator() : String" 0 1 (eglot--lsp-item ...)) #("load(String filename) : vo..." 0 1 (eglot--lsp-item ...)) #("loadLibrary(String libname..." 0 1 (eglot--lsp-item ...)) #("mapLibraryName(String libn..." 0 1 (eglot--lsp-item ...)) #("nanoTime() : long" 0 1 (eglot--lsp-item ...)) #("runFinalization() : void" 0 1 (eglot--lsp-item ...)) ...))
   ivy--filter("" (#("class : Class<java.lang.Sy..." 0 1 (eglot--lsp-item ...)) #("err : PrintStream" 0 1 (eglot--lsp-item ...)) #("in : InputStream" 0 1 (eglot--lsp-item ...)) #("out : PrintStream" 0 1 (eglot--lsp-item ...)) #("arraycopy(Object src, int ..." 0 1 (eglot--lsp-item ...)) #("clearProperty(String key) ..." 0 1 (eglot--lsp-item ...)) #("console() : Console" 0 1 (eglot--lsp-item ...)) #("currentTimeMillis() : long" 0 1 (eglot--lsp-item ...)) #("exit(int status) : void" 0 1 (eglot--lsp-item ...)) #("gc() : void" 0 1 (eglot--lsp-item ...)) #("getLogger(String name) : L..." 0 1 (eglot--lsp-item ...)) #("getLogger(String name, Res..." 0 1 (eglot--lsp-item ...)) #("getProperties() : Properti..." 0 1 (eglot--lsp-item ...)) #("getProperty(String key) : ..." 0 1 (eglot--lsp-item ...)) #("getProperty(String key, St..." 0 1 (eglot--lsp-item ...)) #("getSecurityManager() : Sec..." 0 1 (eglot--lsp-item ...)) #("getenv() : Map<String,Stri..." 0 1 (eglot--lsp-item ...)) #("getenv(String name) : Stri..." 0 1 (eglot--lsp-item ...)) #("identityHashCode(Object x)..." 0 1 (eglot--lsp-item ...)) #("inheritedChannel() : Chann..." 0 1 (eglot--lsp-item ...)) #("lineSeparator() : String" 0 1 (eglot--lsp-item ...)) #("load(String filename) : vo..." 0 1 (eglot--lsp-item ...)) #("loadLibrary(String libname..." 0 1 (eglot--lsp-item ...)) #("mapLibraryName(String libn..." 0 1 (eglot--lsp-item ...)) #("nanoTime() : long" 0 1 (eglot--lsp-item ...)) #("runFinalization() : void" 0 1 (eglot--lsp-item ...)) ...))
   ivy--reset-state(#s(ivy-state :prompt "(): " :collection (#("class : Class<java.lang.System>" 0 1 (eglot--lsp-item ...)) #("err : PrintStream" 0 1 (eglot--lsp-item ...)) #("in : InputStream" 0 1 (eglot--lsp-item ...)) #("out : PrintStream" 0 1 (eglot--lsp-item ...)) #("arraycopy(Object src, int srcPos..." 0 1 (eglot--lsp-item ...)) #("clearProperty(String key) : Stri..." 0 1 (eglot--lsp-item ...)) #("console() : Console" 0 1 (eglot--lsp-item ...)) #("currentTimeMillis() : long" 0 1 (eglot--lsp-item ...)) #("exit(int status) : void" 0 1 (eglot--lsp-item ...)) #("gc() : void" 0 1 (eglot--lsp-item ...)) #("getLogger(String name) : Logger" 0 1 (eglot--lsp-item ...)) #("getLogger(String name, ResourceB..." 0 1 (eglot--lsp-item ...)) #("getProperties() : Properties" 0 1 (eglot--lsp-item ...)) #("getProperty(String key) : String" 0 1 (eglot--lsp-item ...)) #("getProperty(String key, String d..." 0 1 (eglot--lsp-item ...)) #("getSecurityManager() : SecurityM..." 0 1 (eglot--lsp-item ...)) #("getenv() : Map<String,String>" 0 1 (eglot--lsp-item ...)) #("getenv(String name) : String" 0 1 (eglot--lsp-item ...)) #("identityHashCode(Object x) : int" 0 1 (eglot--lsp-item ...)) #("inheritedChannel() : Channel" 0 1 (eglot--lsp-item ...)) #("lineSeparator() : String" 0 1 (eglot--lsp-item ...)) #("load(String filename) : void" 0 1 (eglot--lsp-item ...)) #("loadLibrary(String libname) : vo..." 0 1 (eglot--lsp-item ...)) #("mapLibraryName(String libname) :..." 0 1 (eglot--lsp-item ...)) #("nanoTime() : long" 0 1 (eglot--lsp-item ...)) #("runFinalization() : void" 0 1 (eglot--lsp-item ...)) #("setErr(PrintStream err) : void" 0 1 (eglot--lsp-item ...)) #("setIn(InputStream in) : void" 0 1 (eglot--lsp-item ...)) #("setOut(PrintStream out) : void" 0 1 (eglot--lsp-item ...)) #("setProperties(Properties props) ..." 0 1 (eglot--lsp-item ...)) #("setProperty(String key, String v..." 0 1 (eglot--lsp-item ...)) #("setSecurityManager(SecurityManag..." 0 1 (eglot--lsp-item ...)) ...) :predicate nil :require-match nil :initial-input "" :history nil :preselect nil :keymap nil :update-fn nil :sort nil :frame #<frame Emacs - /tmp/foo/Hello.java 0x5fadee03ad10> :window #<window 3 on Hello.java> :buffer #<buffer Hello.java> :text nil :action (1 ("o" ivy-completion-in-region-action "default") ("i" ivy--action-insert "insert") ("w" ivy--action-copy "copy")) :unwind #f(compiled-function () #<bytecode 0x19d6778d48452914>) :re-builder ivy--regex-fuzzy :matcher nil :dynamic-collection nil :display-transformer-fn nil :directory "/tmp/foo/" :caller ivy-completion-in-region :current nil :def nil :ignore t :multi-action nil :extra-props nil))
   ivy-read("(): " (#("class : Class<java.lang.Sy..." 0 1 (eglot--lsp-item ...)) #("err : PrintStream" 0 1 (eglot--lsp-item ...)) #("in : InputStream" 0 1 (eglot--lsp-item ...)) #("out : PrintStream" 0 1 (eglot--lsp-item ...)) #("arraycopy(Object src, int ..." 0 1 (eglot--lsp-item ...)) #("clearProperty(String key) ..." 0 1 (eglot--lsp-item ...)) #("console() : Console" 0 1 (eglot--lsp-item ...)) #("currentTimeMillis() : long" 0 1 (eglot--lsp-item ...)) #("exit(int status) : void" 0 1 (eglot--lsp-item ...)) #("gc() : void" 0 1 (eglot--lsp-item ...)) #("getLogger(String name) : L..." 0 1 (eglot--lsp-item ...)) #("getLogger(String name, Res..." 0 1 (eglot--lsp-item ...)) #("getProperties() : Properti..." 0 1 (eglot--lsp-item ...)) #("getProperty(String key) : ..." 0 1 (eglot--lsp-item ...)) #("getProperty(String key, St..." 0 1 (eglot--lsp-item ...)) #("getSecurityManager() : Sec..." 0 1 (eglot--lsp-item ...)) #("getenv() : Map<String,Stri..." 0 1 (eglot--lsp-item ...)) #("getenv(String name) : Stri..." 0 1 (eglot--lsp-item ...)) #("identityHashCode(Object x)..." 0 1 (eglot--lsp-item ...)) #("inheritedChannel() : Chann..." 0 1 (eglot--lsp-item ...)) #("lineSeparator() : String" 0 1 (eglot--lsp-item ...)) #("load(String filename) : vo..." 0 1 (eglot--lsp-item ...)) #("loadLibrary(String libname..." 0 1 (eglot--lsp-item ...)) #("mapLibraryName(String libn..." 0 1 (eglot--lsp-item ...)) #("nanoTime() : long" 0 1 (eglot--lsp-item ...)) #("runFinalization() : void" 0 1 (eglot--lsp-item ...)) ...) :predicate nil :initial-input "" :action ivy-completion-in-region-action :unwind #f(compiled-function () #<bytecode 0x19d6778d48452914>) :caller ivy-completion-in-region)
   ivy-completion-in-region(#<marker at 81 in Hello.java> 81 #f(compiled-function (pattern pred action) #<bytecode -0x16070cc7ae58fb49>) nil)
   completion-in-region(#<marker at 81 in Hello.java> 81 #f(compiled-function (pattern pred action) #<bytecode -0x16070cc7ae58fb49>) nil)
   completion-at-point()
   funcall-interactively(completion-at-point)
   call-interactively(completion-at-point nil nil)
   command-execute(completion-at-point)
```

Here are the eglot events:
```
[jsonrpc] D[16:49:23.973] Running language server: jdtls
[jsonrpc] e[16:49:23.974] --> initialize[1] {"jsonrpc":"2.0","id":1,"method":"initialize","params":{"processId":367171,"clientInfo":{"name":"Eglot","version":"1.17"},"rootPath":"/tmp/foo/","rootUri":"file:///tmp/foo","initializationOptions":{"settings":{"java":{"format":{"enabled":true,"settings":{"url":"file:///data/cay/bin/cay-eclipse.formatter.xml","profile":"cay"}}},"configuration":{"runtimes":[{"name":"JavaSE-11","path":"/data/apps/jdk-11"},{"name":"JavaSE-17","path":"/data/apps/jdk-17"},{"name":"JavaSE-21","path":"/data/apps/jdk-21","default":true}]}}},"capabilities":{"workspace":{"applyEdit":true,"executeCommand":{"dynamicRegistration":false},"workspaceEdit":{"documentChanges":true},"didChangeWatchedFiles":{"dynamicRegistration":true},"symbol":{"dynamicRegistration":false},"configuration":true,"workspaceFolders":true},"textDocument":{"synchronization":{"dynamicRegistration":false,"willSave":true,"willSaveWaitUntil":true,"didSave":true},"completion":{"dynamicRegistration":false,"completionItem":{"snippetSupport":true,"deprecatedSupport":true,"resolveSupport":{"properties":["documentation","details","additionalTextEdits"]},"tagSupport":{"valueSet":[1]}},"contextSupport":true},"hover":{"dynamicRegistration":false,"contentFormat":["markdown","plaintext"]},"signatureHelp":{"dynamicRegistration":false,"signatureInformation":{"parameterInformation":{"labelOffsetSupport":true},"documentationFormat":["markdown","plaintext"],"activeParameterSupport":true}},"references":{"dynamicRegistration":false},"definition":{"dynamicRegistration":false,"linkSupport":true},"declaration":{"dynamicRegistration":false,"linkSupport":true},"implementation":{"dynamicRegistration":false,"linkSupport":true},"typeDefinition":{"dynamicRegistration":false,"linkSupport":true},"documentSymbol":{"dynamicRegistration":false,"hierarchicalDocumentSymbolSupport":true,"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]}},"documentHighlight":{"dynamicRegistration":false},"codeAction":{"dynamicRegistration":false,"resolveSupport":{"properties":["edit","command"]},"dataSupport":true,"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}},"isPreferredSupport":true},"formatting":{"dynamicRegistration":false},"rangeFormatting":{"dynamicRegistration":false},"rename":{"dynamicRegistration":false},"inlayHint":{"dynamicRegistration":false},"publishDiagnostics":{"relatedInformation":false,"codeDescriptionSupport":false,"tagSupport":{"valueSet":[1,2]}}},"window":{"showDocument":{"support":true},"workDoneProgress":true},"general":{"positionEncodings":["utf-32","utf-8","utf-16"]},"experimental":{}},"workspaceFolders":[{"uri":"file:///tmp/foo","name":"/tmp/foo/"}]}}
[stderr]  WARNING: Using incubator modules: jdk.incubator.vector
[stderr]  Aug 05, 2024 4:49:24 PM org.apache.aries.spifly.BaseActivator log
[stderr]  INFO: Registered provider ch.qos.logback.classic.servlet.LogbackServletContainerInitializer of service jakarta.servlet.ServletContainerInitializer in bundle ch.qos.logback.classic
[stderr]  Aug 05, 2024 4:49:24 PM org.apache.aries.spifly.BaseActivator log
[stderr]  INFO: Registered provider ch.qos.logback.classic.spi.LogbackServiceProvider of service org.slf4j.spi.SLF4JServiceProvider in bundle ch.qos.logback.classic
[jsonrpc] e[16:49:25.978] <-- window/workDoneProgress/create[2] {"jsonrpc":"2.0","id":"2","method":"window/workDoneProgress/create","params":{"token":"4b66e10a-2e5b-4dc7-bbc1-b52eb6297d6d"}}
[jsonrpc] e[16:49:25.978] --> window/workDoneProgress/create[2] {"jsonrpc":"2.0","id":"2","result":null}
[jsonrpc] e[16:49:25.978] <-- window/workDoneProgress/create[1] {"jsonrpc":"2.0","id":"1","method":"window/workDoneProgress/create","params":{"token":"095c1384-7285-46c8-abf6-39b0ff8cd739"}}
[jsonrpc] e[16:49:25.978] --> window/workDoneProgress/create[1] {"jsonrpc":"2.0","id":"1","result":null}
[jsonrpc] e[16:49:25.980] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"4b66e10a-2e5b-4dc7-bbc1-b52eb6297d6d","value":{"kind":"begin","title":"Synchronizing projects","message":"Synchronizing projects"}}}
[jsonrpc] e[16:49:25.981] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"095c1384-7285-46c8-abf6-39b0ff8cd739","value":{"kind":"begin","title":"Look up for installed JVMs","message":"Look up for installed JVMs"}}}
[jsonrpc] e[16:49:25.982] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"095c1384-7285-46c8-abf6-39b0ff8cd739","value":{"kind":"report","message":"Look up for installed JVMs - 0% ","percentage":0}}}
[jsonrpc] e[16:49:25.982] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"4b66e10a-2e5b-4dc7-bbc1-b52eb6297d6d","value":{"kind":"report","message":"Synchronizing projects - 0% ","percentage":0}}}
[jsonrpc] e[16:49:25.982] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"4b66e10a-2e5b-4dc7-bbc1-b52eb6297d6d","value":{"kind":"end","message":"Synchronizing projects"}}}
[jsonrpc] e[16:49:25.983] <-- window/workDoneProgress/create[3] {"jsonrpc":"2.0","id":"3","method":"window/workDoneProgress/create","params":{"token":"db35f3c9-1f6a-4f84-bcc5-36dd6e3b7b3a"}}
[jsonrpc] e[16:49:25.983] --> window/workDoneProgress/create[3] {"jsonrpc":"2.0","id":"3","result":null}
[jsonrpc] e[16:49:25.983] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"db35f3c9-1f6a-4f84-bcc5-36dd6e3b7b3a","value":{"kind":"begin","title":"Synchronizing projects","message":"Synchronizing projects"}}}
[jsonrpc] e[16:49:26.024] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"db35f3c9-1f6a-4f84-bcc5-36dd6e3b7b3a","value":{"kind":"report","message":"Synchronizing projects - 0% ","percentage":0}}}
[jsonrpc] e[16:49:26.025] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"db35f3c9-1f6a-4f84-bcc5-36dd6e3b7b3a","value":{"kind":"end","message":"Synchronizing projects"}}}
[jsonrpc] e[16:49:26.025] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"095c1384-7285-46c8-abf6-39b0ff8cd739","value":{"kind":"end","message":"/usr/lib/jvm/java-11-openjdk-amd64"}}}
[jsonrpc] e[16:49:26.026] <-- window/workDoneProgress/create[4] {"jsonrpc":"2.0","id":"4","method":"window/workDoneProgress/create","params":{"token":"24b27d58-408b-4186-8b12-91c0f0fc3a7c"}}
[jsonrpc] e[16:49:26.026] --> window/workDoneProgress/create[4] {"jsonrpc":"2.0","id":"4","result":null}
[jsonrpc] e[16:49:26.026] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"24b27d58-408b-4186-8b12-91c0f0fc3a7c","value":{"kind":"begin","title":"Building","message":"Building"}}}
[jsonrpc] e[16:49:26.026] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"24b27d58-408b-4186-8b12-91c0f0fc3a7c","value":{"kind":"report","message":"Building - 0% ","percentage":0}}}
[jsonrpc] e[16:49:26.026] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"24b27d58-408b-4186-8b12-91c0f0fc3a7c","value":{"kind":"end","message":"Building"}}}
[jsonrpc] e[16:49:26.026] <-- language/status {"jsonrpc":"2.0","method":"language/status","params":{"type":"Starting","message":"Init..."}}
[jsonrpc] e[16:49:26.026] <-- language/status {"jsonrpc":"2.0","method":"language/status","params":{"type":"Starting","message":"0% Starting Java Language Server"}}
[jsonrpc] e[16:49:26.026] <-- window/workDoneProgress/create[5] {"jsonrpc":"2.0","id":"5","method":"window/workDoneProgress/create","params":{"token":"1b105c13-2b69-4a94-8c5b-2688a86a04f7"}}
[jsonrpc] e[16:49:26.026] --> window/workDoneProgress/create[5] {"jsonrpc":"2.0","id":"5","result":null}
[jsonrpc] e[16:49:26.026] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"1b105c13-2b69-4a94-8c5b-2688a86a04f7","value":{"kind":"begin","title":"Initialize Workspace","message":"Initialize Workspace"}}}
[jsonrpc] e[16:49:26.027] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"1b105c13-2b69-4a94-8c5b-2688a86a04f7","value":{"kind":"report","message":"Initialize Workspace - 0% ","percentage":0}}}
[jsonrpc] e[16:49:26.028] <-- initialize[1] {"jsonrpc":"2.0","id":1,"result":{"capabilities":{"textDocumentSync":{"openClose":true,"change":2,"willSave":true,"willSaveWaitUntil":true,"save":{"includeText":true}},"hoverProvider":true,"completionProvider":{"resolveProvider":true,"triggerCharacters":[".","@","#","*"," "]},"signatureHelpProvider":{"triggerCharacters":["(",","]},"definitionProvider":true,"typeDefinitionProvider":true,"implementationProvider":true,"referencesProvider":true,"documentHighlightProvider":true,"documentSymbolProvider":true,"workspaceSymbolProvider":true,"codeActionProvider":{"codeActionKinds":["quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"],"resolveProvider":true},"codeLensProvider":{"resolveProvider":true},"documentFormattingProvider":true,"documentRangeFormattingProvider":true,"documentOnTypeFormattingProvider":{"firstTriggerCharacter":";","moreTriggerCharacter":["\n","}"]},"renameProvider":{"prepareProvider":true},"foldingRangeProvider":true,"declarationProvider":true,"executeCommandProvider":{"commands":["java.project.import","java.project.changeImportedProjects","java.navigate.openTypeHierarchy","java.project.resolveStackTraceLocation","java.edit.handlePasteEvent","java.edit.stringFormatting","java.project.getSettings","java.project.resolveWorkspaceSymbol","java.project.upgradeGradle","java.project.createModuleInfo","java.vm.getAllInstalls","java.edit.organizeImports","java.project.refreshDiagnostics","java.project.removeFromSourcePath","java.project.listSourcePaths","java.project.updateSettings","java.project.getAll","java.reloadBundles","java.project.isTestFile","java.project.resolveText","java.project.getClasspaths","java.navigate.resolveTypeHierarchy","java.edit.smartSemicolonDetection","java.project.updateSourceAttachment","java.project.updateClassPaths","java.decompile","java.protobuf.generateSources","java.project.resolveSourceAttachment","java.project.updateJdk","java.project.addToSourcePath","java.completion.onDidSelect"]},"workspace":{"workspaceFolders":{"supported":true,"changeNotifications":true}},"typeHierarchyProvider":true,"callHierarchyProvider":true,"selectionRangeProvider":true,"semanticTokensProvider":{"legend":{"tokenTypes":["namespace","class","interface","enum","enumMember","type","typeParameter","method","property","variable","parameter","modifier","keyword","annotation","annotationMember","record","recordComponent"],"tokenModifiers":["abstract","static","readonly","deprecated","declaration","documentation","public","private","protected","native","generic","typeArgument","importDeclaration","constructor"]},"range":false,"full":{"delta":false},"documentSelector":[{"language":"java","scheme":"file"},{"language":"java","scheme":"jdt"}]},"inlayHintProvider":true}}}
[jsonrpc] e[16:49:26.028] --> initialized {"jsonrpc":"2.0","method":"initialized","params":{}}
[jsonrpc] e[16:49:26.029] --> textDocument/didOpen {"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"uri":"file:///tmp/foo/Hello.java","version":0,"languageId":"java","text":"public class Hello {\n    public static void main(String[] args) {\n    }\n}\n"}}}
[jsonrpc] e[16:49:26.036] <-- window/workDoneProgress/create[6] {"jsonrpc":"2.0","id":"6","method":"window/workDoneProgress/create","params":{"token":"d1445c95-c0ad-4c26-bbec-b5a9ece1373a"}}
[jsonrpc] e[16:49:26.036] --> window/workDoneProgress/create[6] {"jsonrpc":"2.0","id":"6","result":null}
[jsonrpc] e[16:49:26.036] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"d1445c95-c0ad-4c26-bbec-b5a9ece1373a","value":{"kind":"begin","title":"Repository registry initialization","message":"Repository registry initialization"}}}
[jsonrpc] e[16:49:26.036] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"d1445c95-c0ad-4c26-bbec-b5a9ece1373a","value":{"kind":"end","message":"Repository registry initialization"}}}
[jsonrpc] e[16:49:26.038] --> textDocument/inlayHint[2] {"jsonrpc":"2.0","id":2,"method":"textDocument/inlayHint","params":{"textDocument":{"uri":"file:///tmp/foo/Hello.java"},"range":{"start":{"line":0,"character":0},"end":{"line":4,"character":0}}}}
[jsonrpc] e[16:49:26.039] <-- language/status {"jsonrpc":"2.0","method":"language/status","params":{"type":"ProjectStatus","message":"OK"}}
[jsonrpc] e[16:49:26.048] <-- language/status {"jsonrpc":"2.0","method":"language/status","params":{"type":"Starting","message":"100% Starting Java Language Server"}}
[jsonrpc] e[16:49:26.048] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"1b105c13-2b69-4a94-8c5b-2688a86a04f7","value":{"kind":"end","message":"Initialize Workspace"}}}
[jsonrpc] e[16:49:26.048] <-- language/status {"jsonrpc":"2.0","method":"language/status","params":{"type":"Started","message":"Ready"}}
[jsonrpc] e[16:49:26.048] <-- window/workDoneProgress/create[7] {"jsonrpc":"2.0","id":"7","method":"window/workDoneProgress/create","params":{"token":"2bffdec2-86e8-47b3-9bc7-81229c98e72f"}}
[jsonrpc] e[16:49:26.048] --> window/workDoneProgress/create[7] {"jsonrpc":"2.0","id":"7","result":null}
[jsonrpc] e[16:49:26.048] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"2bffdec2-86e8-47b3-9bc7-81229c98e72f","value":{"kind":"begin","title":"Synchronizing projects","message":"Synchronizing projects"}}}
[jsonrpc] e[16:49:26.048] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"2bffdec2-86e8-47b3-9bc7-81229c98e72f","value":{"kind":"report","message":"Synchronizing projects - 0% ","percentage":0}}}
[jsonrpc] e[16:49:26.048] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"2bffdec2-86e8-47b3-9bc7-81229c98e72f","value":{"kind":"end","message":"Synchronizing projects"}}}
[jsonrpc] e[16:49:26.048] <-- window/workDoneProgress/create[8] {"jsonrpc":"2.0","id":"8","method":"window/workDoneProgress/create","params":{"token":"876b3a32-3fc8-4dbe-9658-cae10741faaa"}}
[jsonrpc] e[16:49:26.048] --> window/workDoneProgress/create[8] {"jsonrpc":"2.0","id":"8","result":null}
[jsonrpc] e[16:49:26.048] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"876b3a32-3fc8-4dbe-9658-cae10741faaa","value":{"kind":"begin","title":"Synchronizing projects","message":"Synchronizing projects"}}}
[jsonrpc] e[16:49:26.048] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"876b3a32-3fc8-4dbe-9658-cae10741faaa","value":{"kind":"report","message":"Synchronizing projects - 0% ","percentage":0}}}
[jsonrpc] e[16:49:26.048] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"876b3a32-3fc8-4dbe-9658-cae10741faaa","value":{"kind":"end","message":"Synchronizing projects"}}}
[jsonrpc] e[16:49:26.049] <-- window/workDoneProgress/create[9] {"jsonrpc":"2.0","id":"9","method":"window/workDoneProgress/create","params":{"token":"abaf7845-a2bb-414e-a5b3-4cdc89f4db1e"}}
[jsonrpc] e[16:49:26.049] --> window/workDoneProgress/create[9] {"jsonrpc":"2.0","id":"9","result":null}
[jsonrpc] e[16:49:26.049] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"abaf7845-a2bb-414e-a5b3-4cdc89f4db1e","value":{"kind":"begin","title":"Synchronizing projects","message":"Synchronizing projects"}}}
[jsonrpc] e[16:49:26.049] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"abaf7845-a2bb-414e-a5b3-4cdc89f4db1e","value":{"kind":"report","message":"Synchronizing projects - 0% ","percentage":0}}}
[jsonrpc] e[16:49:26.049] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"abaf7845-a2bb-414e-a5b3-4cdc89f4db1e","value":{"kind":"end","message":"Synchronizing projects"}}}
[jsonrpc] e[16:49:26.058] <-- language/status {"jsonrpc":"2.0","method":"language/status","params":{"type":"Starting","message":"100% Starting Java Language Server"}}
[jsonrpc] e[16:49:26.078] <-- client/registerCapability[10] {"jsonrpc":"2.0","id":"10","method":"client/registerCapability","params":{"registrations":[{"id":"93f6773e-4fdf-45a5-80b6-53a03a853fd1","method":"workspace/didChangeWorkspaceFolders"}]}}
[jsonrpc] e[16:49:26.096] --> client/registerCapability[10] {"jsonrpc":"2.0","id":"10","result":null}
[jsonrpc] e[16:49:26.096] <-- language/status {"jsonrpc":"2.0","method":"language/status","params":{"type":"ServiceReady","message":"ServiceReady"}}
[jsonrpc] e[16:49:26.096] <-- window/workDoneProgress/create[11] {"jsonrpc":"2.0","id":"11","method":"window/workDoneProgress/create","params":{"token":"37101b42-a8ff-4b05-9c82-5ebfaaf2e020"}}
[jsonrpc] e[16:49:26.096] --> window/workDoneProgress/create[11] {"jsonrpc":"2.0","id":"11","result":null}
[jsonrpc] e[16:49:26.096] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"37101b42-a8ff-4b05-9c82-5ebfaaf2e020","value":{"kind":"begin","title":"Building","message":"Building"}}}
[jsonrpc] e[16:49:26.096] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"37101b42-a8ff-4b05-9c82-5ebfaaf2e020","value":{"kind":"report","message":"Building - 0% ","percentage":0}}}
[jsonrpc] e[16:49:26.096] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"37101b42-a8ff-4b05-9c82-5ebfaaf2e020","value":{"kind":"end","message":"Building"}}}
[jsonrpc] e[16:49:26.097] <-- client/registerCapability[12] {"jsonrpc":"2.0","id":"12","method":"client/registerCapability","params":{"registrations":[{"id":"435e729b-f9a8-43e9-b7fd-aae0788aeedf","method":"workspace/didChangeWatchedFiles","registerOptions":{"watchers":[{"globPattern":"**/*.java"},{"globPattern":"**/.project"},{"globPattern":"**/.classpath"},{"globPattern":"**/.settings/*.prefs"},{"globPattern":"**/src/**"},{"globPattern":"**/*.gradle"},{"globPattern":"**/*.gradle.kts"},{"globPattern":"**/gradle.properties"},{"globPattern":"**/pom.xml"},{"globPattern":"/data/cay/bin/cay-eclipse.formatter.xml"}]}}]}}
[jsonrpc] e[16:49:26.148] --> client/registerCapability[12] {"jsonrpc":"2.0","id":"12","result":null}
[jsonrpc] e[16:49:26.148] <-- window/logMessage {"jsonrpc":"2.0","method":"window/logMessage","params":{"type":1,"message":"Aug 5, 2024, 4:49:26 PM Project \u0027foo_caeb84bf\u0027 is not open.\nProject \u0027foo_caeb84bf\u0027 is not open.\norg.eclipse.core.internal.resources.ResourceException(/foo_caeb84bf)[372]: java.lang.Exception: Project \u0027foo_caeb84bf\u0027 is not open.\n\tat org.eclipse.core.internal.resources.ResourceException.provideStackTrace(ResourceException.java:42)\n\tat org.eclipse.core.internal.resources.ResourceException.\u003cinit\u003e(ResourceException.java:38)\n\tat org.eclipse.core.internal.resources.Project.checkAccessible(Project.java:186)\n\tat org.eclipse.core.internal.resources.Resource.findMarkers(Resource.java:1026)\n\tat org.eclipse.jdt.ls.core.internal.handlers.WorkspaceDiagnosticsHandler.getProblemMarkers(WorkspaceDiagnosticsHandler.java:268)\n\tat org.eclipse.jdt.ls.core.internal.handlers.WorkspaceDiagnosticsHandler.publishDiagnostics(WorkspaceDiagnosticsHandler.java:253)\n\tat org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer$2.run(JDTLanguageServer.java:334)\n\tat org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)\n"}}
[jsonrpc] e[16:49:26.150] --> textDocument/didChange {"jsonrpc":"2.0","method":"textDocument/didChange","params":{"textDocument":{"uri":"file:///tmp/foo/Hello.java","version":1},"contentChanges":[{"range":{"start":{"line":1,"character":44},"end":{"line":1,"character":44}},"rangeLength":0,"text":"\n"}]}}
[jsonrpc] e[16:49:26.150] --> textDocument/onTypeFormatting[3] {"jsonrpc":"2.0","id":3,"method":"textDocument/onTypeFormatting","params":{"textDocument":{"uri":"file:///tmp/foo/Hello.java"},"options":{"tabSize":3,"insertSpaces":true,"insertFinalNewline":true,"trimFinalNewlines":true},"position":{"line":2,"character":0},"ch":"\n"}}
[jsonrpc] e[16:49:26.638]   <-- textDocument/publishDiagnostics {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:///tmp/jdtls-0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33/foo_caeb84bf","diagnostics":[]}}
[jsonrpc] e[16:49:26.658]   <-- textDocument/onTypeFormatting[3] {"jsonrpc":"2.0","id":3,"result":[]}
[jsonrpc] e[16:49:26.667] --> workspace/didChangeWatchedFiles {"jsonrpc":"2.0","method":"workspace/didChangeWatchedFiles","params":{"changes":[{"uri":"file:///tmp/foo/[email-masked]%3A1722663627","type":1}]}}
[jsonrpc] e[16:49:26.734] <-- textDocument/inlayHint[2] {"jsonrpc":"2.0","id":2,"result":[]}
[jsonrpc] e[16:49:27.045] <-- window/workDoneProgress/create[13] {"jsonrpc":"2.0","id":"13","method":"window/workDoneProgress/create","params":{"token":"888574f2-7aa9-4e7c-b69e-a0ee61d5518b"}}
[jsonrpc] e[16:49:27.045] --> window/workDoneProgress/create[13] {"jsonrpc":"2.0","id":"13","result":null}
[jsonrpc] e[16:49:27.045] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"888574f2-7aa9-4e7c-b69e-a0ee61d5518b","value":{"kind":"begin","title":"Validate documents","message":"Validate documents"}}}
[jsonrpc] e[16:49:27.046] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"888574f2-7aa9-4e7c-b69e-a0ee61d5518b","value":{"kind":"report","message":"Validate documents - 0% ","percentage":0}}}
[jsonrpc] e[16:49:27.068] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"888574f2-7aa9-4e7c-b69e-a0ee61d5518b","value":{"kind":"end","message":"Validate documents"}}}
[jsonrpc] e[16:49:27.068] <-- window/workDoneProgress/create[14] {"jsonrpc":"2.0","id":"14","method":"window/workDoneProgress/create","params":{"token":"44c44c13-4660-409e-8ae4-083d7f735a49"}}
[jsonrpc] e[16:49:27.068] --> window/workDoneProgress/create[14] {"jsonrpc":"2.0","id":"14","result":null}
[jsonrpc] e[16:49:27.068] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"44c44c13-4660-409e-8ae4-083d7f735a49","value":{"kind":"begin","title":"Building","message":"Building"}}}
[jsonrpc] e[16:49:27.068] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"44c44c13-4660-409e-8ae4-083d7f735a49","value":{"kind":"report","message":"Building - 0% ","percentage":0}}}
[jsonrpc] e[16:49:27.136] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"44c44c13-4660-409e-8ae4-083d7f735a49","value":{"kind":"end","message":"Building"}}}
[jsonrpc] e[16:49:27.158] <-- textDocument/publishDiagnostics {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:///tmp/jdtls-0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33/foo_caeb84bf","diagnostics":[]}}
[jsonrpc] e[16:49:27.158] <-- window/workDoneProgress/create[15] {"jsonrpc":"2.0","id":"15","method":"window/workDoneProgress/create","params":{"token":"96ec1eca-3a68-4974-ae23-c886b53987d6"}}
[jsonrpc] e[16:49:27.158] --> window/workDoneProgress/create[15] {"jsonrpc":"2.0","id":"15","result":null}
[jsonrpc] e[16:49:27.158] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"96ec1eca-3a68-4974-ae23-c886b53987d6","value":{"kind":"begin","title":"Update classpath Job","message":"Update classpath Job"}}}
[jsonrpc] e[16:49:27.158] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"96ec1eca-3a68-4974-ae23-c886b53987d6","value":{"kind":"report","message":"Update classpath Job - 0% ","percentage":0}}}
[jsonrpc] e[16:49:27.158] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"96ec1eca-3a68-4974-ae23-c886b53987d6","value":{"kind":"end","message":"Update classpath Job"}}}
[jsonrpc] i[16:49:27.167] [4] deferring request ':textDocument/hover'
[jsonrpc] i[16:49:27.167] [5] deferring request ':textDocument/documentHighlight'
[jsonrpc] i[16:49:27.167] [6] deferring request ':textDocument/signatureHelp'
[jsonrpc] e[16:49:27.167] --> textDocument/didChange {"jsonrpc":"2.0","method":"textDocument/didChange","params":{"textDocument":{"uri":"file:///tmp/foo/Hello.java","version":2},"contentChanges":[{"range":{"start":{"line":2,"character":0},"end":{"line":2,"character":0}},"rangeLength":0,"text":"       "}]}}
[jsonrpc] i[16:49:27.167] re-attempting deferred requests (6 5 4)
[jsonrpc] e[16:49:27.168] --> textDocument/signatureHelp[6] {"jsonrpc":"2.0","id":6,"method":"textDocument/signatureHelp","params":{"textDocument":{"uri":"file:///tmp/foo/Hello.java"},"position":{"line":2,"character":7}}}
[jsonrpc] e[16:49:27.168] --> textDocument/documentHighlight[5] {"jsonrpc":"2.0","id":5,"method":"textDocument/documentHighlight","params":{"textDocument":{"uri":"file:///tmp/foo/Hello.java"},"position":{"line":2,"character":7}}}
[jsonrpc] e[16:49:27.168] --> textDocument/hover[4] {"jsonrpc":"2.0","id":4,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///tmp/foo/Hello.java"},"position":{"line":2,"character":7}}}
[jsonrpc] e[16:49:27.171] --> textDocument/inlayHint[7] {"jsonrpc":"2.0","id":7,"method":"textDocument/inlayHint","params":{"textDocument":{"uri":"file:///tmp/foo/Hello.java"},"range":{"start":{"line":1,"character":0},"end":{"line":5,"character":0}}}}
[jsonrpc] e[16:49:27.176] <-- window/workDoneProgress/create[16] {"jsonrpc":"2.0","id":"16","method":"window/workDoneProgress/create","params":{"token":"2ef2268a-b766-46e7-a0db-316a09449b83"}}
[jsonrpc] e[16:49:27.176] --> window/workDoneProgress/create[16] {"jsonrpc":"2.0","id":"16","result":null}
[jsonrpc] e[16:49:27.176] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"2ef2268a-b766-46e7-a0db-316a09449b83","value":{"kind":"begin","title":"Validate documents","message":"Validate documents"}}}
[jsonrpc] e[16:49:27.176] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"2ef2268a-b766-46e7-a0db-316a09449b83","value":{"kind":"report","message":"Validate documents - 0% ","percentage":0}}}
[jsonrpc] e[16:49:27.177] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"2ef2268a-b766-46e7-a0db-316a09449b83","value":{"kind":"end","message":"Validate documents"}}}
[jsonrpc] e[16:49:27.316] <-- textDocument/inlayHint[7] {"jsonrpc":"2.0","id":7,"result":[]}
[jsonrpc] e[16:49:27.357] <-- textDocument/signatureHelp[6] {"jsonrpc":"2.0","id":6,"result":{"signatures":[]}}
[jsonrpc] e[16:49:27.357] <-- textDocument/hover[4] {"jsonrpc":"2.0","id":4,"result":{"contents":""}}
[jsonrpc] e[16:49:27.357] <-- textDocument/documentHighlight[5] {"jsonrpc":"2.0","id":5,"result":[]}
[jsonrpc] e[16:49:27.778] <-- window/workDoneProgress/create[17] {"jsonrpc":"2.0","id":"17","method":"window/workDoneProgress/create","params":{"token":"45c4bd6f-7b21-4d51-828f-06ae093daa7c"}}
[jsonrpc] e[16:49:27.778] --> window/workDoneProgress/create[17] {"jsonrpc":"2.0","id":"17","result":null}
[jsonrpc] e[16:49:27.778] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"45c4bd6f-7b21-4d51-828f-06ae093daa7c","value":{"kind":"begin","title":"Publish Diagnostics","message":"Publish Diagnostics"}}}
[jsonrpc] e[16:49:27.778] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"45c4bd6f-7b21-4d51-828f-06ae093daa7c","value":{"kind":"report","message":"Publish Diagnostics - 0% ","percentage":0}}}
[jsonrpc] e[16:49:27.799] <-- textDocument/publishDiagnostics {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:///tmp/foo/Hello.java","diagnostics":[]}}
[jsonrpc] e[16:49:27.820] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"45c4bd6f-7b21-4d51-828f-06ae093daa7c","value":{"kind":"end","message":"Publish Diagnostics"}}}
[jsonrpc] e[16:49:28.148] <-- window/workDoneProgress/create[18] {"jsonrpc":"2.0","id":"18","method":"window/workDoneProgress/create","params":{"token":"92e025a6-e24a-41b0-a032-4c81d750923f"}}
[jsonrpc] e[16:49:28.148] --> window/workDoneProgress/create[18] {"jsonrpc":"2.0","id":"18","result":null}
[jsonrpc] e[16:49:28.148] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"92e025a6-e24a-41b0-a032-4c81d750923f","value":{"kind":"begin","title":"Building","message":"Building"}}}
[jsonrpc] e[16:49:28.148] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"92e025a6-e24a-41b0-a032-4c81d750923f","value":{"kind":"report","message":"Building - 0% ","percentage":0}}}
[jsonrpc] e[16:49:28.179] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"92e025a6-e24a-41b0-a032-4c81d750923f","value":{"kind":"end","message":"Building"}}}
[jsonrpc] e[16:49:29.875] --> textDocument/didChange {"jsonrpc":"2.0","method":"textDocument/didChange","params":{"textDocument":{"uri":"file:///tmp/foo/Hello.java","version":8},"contentChanges":[{"range":{"start":{"line":2,"character":7},"end":{"line":2,"character":7}},"rangeLength":0,"text":"S"},{"range":{"start":{"line":2,"character":8},"end":{"line":2,"character":8}},"rangeLength":0,"text":"y"},{"range":{"start":{"line":2,"character":9},"end":{"line":2,"character":9}},"rangeLength":0,"text":"s"},{"range":{"start":{"line":2,"character":10},"end":{"line":2,"character":10}},"rangeLength":0,"text":"t"},{"range":{"start":{"line":2,"character":11},"end":{"line":2,"character":11}},"rangeLength":0,"text":"e"},{"range":{"start":{"line":2,"character":12},"end":{"line":2,"character":12}},"rangeLength":0,"text":"m"}]}}
[jsonrpc] e[16:49:29.875] --> textDocument/hover[8] {"jsonrpc":"2.0","id":8,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///tmp/foo/Hello.java"},"position":{"line":2,"character":13}}}
[jsonrpc] e[16:49:29.875] --> textDocument/documentHighlight[9] {"jsonrpc":"2.0","id":9,"method":"textDocument/documentHighlight","params":{"textDocument":{"uri":"file:///tmp/foo/Hello.java"},"position":{"line":2,"character":13}}}
[jsonrpc] e[16:49:29.875] --> textDocument/signatureHelp[10] {"jsonrpc":"2.0","id":10,"method":"textDocument/signatureHelp","params":{"textDocument":{"uri":"file:///tmp/foo/Hello.java"},"position":{"line":2,"character":13}}}
[jsonrpc] e[16:49:29.877] --> textDocument/inlayHint[11] {"jsonrpc":"2.0","id":11,"method":"textDocument/inlayHint","params":{"textDocument":{"uri":"file:///tmp/foo/Hello.java"},"range":{"start":{"line":2,"character":0},"end":{"line":5,"character":0}}}}
[jsonrpc] e[16:49:29.882] <-- window/workDoneProgress/create[19] {"jsonrpc":"2.0","id":"19","method":"window/workDoneProgress/create","params":{"token":"46170d61-7c5f-4e4d-aebd-41b26d302cec"}}
[jsonrpc] e[16:49:29.882] --> window/workDoneProgress/create[19] {"jsonrpc":"2.0","id":"19","result":null}
[jsonrpc] e[16:49:29.882] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"46170d61-7c5f-4e4d-aebd-41b26d302cec","value":{"kind":"begin","title":"Validate documents","message":"Validate documents"}}}
[jsonrpc] e[16:49:29.882] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"46170d61-7c5f-4e4d-aebd-41b26d302cec","value":{"kind":"report","message":"Validate documents - 0% ","percentage":0}}}
[jsonrpc] e[16:49:29.890] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"46170d61-7c5f-4e4d-aebd-41b26d302cec","value":{"kind":"end","message":"Validate documents"}}}
[jsonrpc] e[16:49:29.912] <-- textDocument/inlayHint[11] {"jsonrpc":"2.0","id":11,"result":[]}
[jsonrpc] e[16:49:29.912] <-- textDocument/signatureHelp[10] {"jsonrpc":"2.0","id":10,"result":{"signatures":[]}}
[jsonrpc] e[16:49:29.912] <-- textDocument/documentHighlight[9] {"jsonrpc":"2.0","id":9,"result":[{"range":{"start":{"line":2,"character":7},"end":{"line":2,"character":13}},"kind":2}]}
[jsonrpc] e[16:49:30.050] <-- textDocument/hover[8] {"jsonrpc":"2.0","id":8,"result":{"contents":[]}}
[jsonrpc] e[16:49:30.341] <-- window/workDoneProgress/create[20] {"jsonrpc":"2.0","id":"20","method":"window/workDoneProgress/create","params":{"token":"db12ce63-d2a8-48f3-ba89-5692b98719c0"}}
[jsonrpc] e[16:49:30.341] --> window/workDoneProgress/create[20] {"jsonrpc":"2.0","id":"20","result":null}
[jsonrpc] e[16:49:30.341] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"db12ce63-d2a8-48f3-ba89-5692b98719c0","value":{"kind":"begin","title":"Publish Diagnostics","message":"Publish Diagnostics"}}}
[jsonrpc] e[16:49:30.341] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"db12ce63-d2a8-48f3-ba89-5692b98719c0","value":{"kind":"report","message":"Publish Diagnostics - 0% ","percentage":0}}}
[jsonrpc] e[16:49:30.364] <-- textDocument/publishDiagnostics {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:///tmp/foo/Hello.java","diagnostics":[{"range":{"start":{"line":2,"character":7},"end":{"line":2,"character":13}},"severity":1,"code":"1610612976","source":"Java","message":"Syntax error, insert \"VariableDeclarators\" to complete LocalVariableDeclaration"},{"range":{"start":{"line":2,"character":7},"end":{"line":2,"character":13}},"severity":1,"code":"1610612976","source":"Java","message":"Syntax error, insert \";\" to complete BlockStatements"}]}}
[jsonrpc] e[16:49:30.365] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"db12ce63-d2a8-48f3-ba89-5692b98719c0","value":{"kind":"end","message":"Publish Diagnostics"}}}
[jsonrpc] i[16:49:30.472] [12] deferring request ':textDocument/hover'
[jsonrpc] i[16:49:30.472] [13] deferring request ':textDocument/documentHighlight'
[jsonrpc] i[16:49:30.473] [14] deferring request ':textDocument/signatureHelp'
[jsonrpc] e[16:49:30.473] --> textDocument/didChange {"jsonrpc":"2.0","method":"textDocument/didChange","params":{"textDocument":{"uri":"file:///tmp/foo/Hello.java","version":9},"contentChanges":[{"range":{"start":{"line":2,"character":13},"end":{"line":2,"character":13}},"rangeLength":0,"text":"."}]}}
[jsonrpc] i[16:49:30.473] re-attempting deferred requests (14 13 12)
[jsonrpc] e[16:49:30.473] --> textDocument/signatureHelp[14] {"jsonrpc":"2.0","id":14,"method":"textDocument/signatureHelp","params":{"textDocument":{"uri":"file:///tmp/foo/Hello.java"},"position":{"line":2,"character":14}}}
[jsonrpc] e[16:49:30.473] --> textDocument/documentHighlight[13] {"jsonrpc":"2.0","id":13,"method":"textDocument/documentHighlight","params":{"textDocument":{"uri":"file:///tmp/foo/Hello.java"},"position":{"line":2,"character":14}}}
[jsonrpc] e[16:49:30.473] --> textDocument/hover[12] {"jsonrpc":"2.0","id":12,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///tmp/foo/Hello.java"},"position":{"line":2,"character":14}}}
[jsonrpc] e[16:49:30.483] --> textDocument/inlayHint[15] {"jsonrpc":"2.0","id":15,"method":"textDocument/inlayHint","params":{"textDocument":{"uri":"file:///tmp/foo/Hello.java"},"range":{"start":{"line":2,"character":0},"end":{"line":5,"character":0}}}}
[jsonrpc] e[16:49:30.483] <-- textDocument/hover[12] {"jsonrpc":"2.0","id":12,"result":{"contents":""}}
[jsonrpc] e[16:49:30.504] <-- textDocument/documentHighlight[13] {"jsonrpc":"2.0","id":13,"result":[]}
[jsonrpc] e[16:49:30.504] <-- textDocument/signatureHelp[14] {"jsonrpc":"2.0","id":14,"result":{"signatures":[]}}
[jsonrpc] e[16:49:30.546] <-- window/workDoneProgress/create[21] {"jsonrpc":"2.0","id":"21","method":"window/workDoneProgress/create","params":{"token":"65891d9a-3701-4198-9183-7b940fafec04"}}
[jsonrpc] e[16:49:30.546] --> window/workDoneProgress/create[21] {"jsonrpc":"2.0","id":"21","result":null}
[jsonrpc] e[16:49:30.546] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"65891d9a-3701-4198-9183-7b940fafec04","value":{"kind":"begin","title":"Validate documents","message":"Validate documents"}}}
[jsonrpc] e[16:49:30.546] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"65891d9a-3701-4198-9183-7b940fafec04","value":{"kind":"report","message":"Validate documents - 0% ","percentage":0}}}
[jsonrpc] e[16:49:30.546] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"65891d9a-3701-4198-9183-7b940fafec04","value":{"kind":"end","message":"Validate documents"}}}
[jsonrpc] e[16:49:30.546] <-- textDocument/inlayHint[15] {"jsonrpc":"2.0","id":15,"result":[]}
[jsonrpc] e[16:49:30.985] <-- window/workDoneProgress/create[22] {"jsonrpc":"2.0","id":"22","method":"window/workDoneProgress/create","params":{"token":"268feefc-022e-4aa2-a811-d60e041824f7"}}
[jsonrpc] e[16:49:30.985] --> window/workDoneProgress/create[22] {"jsonrpc":"2.0","id":"22","result":null}
[jsonrpc] e[16:49:30.985] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"268feefc-022e-4aa2-a811-d60e041824f7","value":{"kind":"begin","title":"Publish Diagnostics","message":"Publish Diagnostics"}}}
[jsonrpc] e[16:49:30.987] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"268feefc-022e-4aa2-a811-d60e041824f7","value":{"kind":"report","message":"Publish Diagnostics - 0% ","percentage":0}}}
[jsonrpc] e[16:49:31.009] <-- textDocument/publishDiagnostics {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:///tmp/foo/Hello.java","diagnostics":[{"range":{"start":{"line":2,"character":7},"end":{"line":2,"character":13}},"severity":1,"code":"1610612976","source":"Java","message":"Syntax error, insert \"VariableDeclarators\" to complete LocalVariableDeclaration"},{"range":{"start":{"line":2,"character":7},"end":{"line":2,"character":13}},"severity":1,"code":"1610612976","source":"Java","message":"Syntax error, insert \";\" to complete BlockStatements"}]}}
[jsonrpc] e[16:49:31.010] <-- $/progress {"jsonrpc":"2.0","method":"$/progress","params":{"token":"268feefc-022e-4aa2-a811-d60e041824f7","value":{"kind":"end","message":"Publish Diagnostics"}}}
[jsonrpc] e[16:49:31.340] --> textDocument/hover[16] {"jsonrpc":"2.0","id":16,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///tmp/foo/Hello.java"},"position":{"line":2,"character":14}}}
[jsonrpc] e[16:49:31.340] --> textDocument/documentHighlight[17] {"jsonrpc":"2.0","id":17,"method":"textDocument/documentHighlight","params":{"textDocument":{"uri":"file:///tmp/foo/Hello.java"},"position":{"line":2,"character":14}}}
[jsonrpc] e[16:49:31.341] --> textDocument/signatureHelp[18] {"jsonrpc":"2.0","id":18,"method":"textDocument/signatureHelp","params":{"textDocument":{"uri":"file:///tmp/foo/Hello.java"},"position":{"line":2,"character":14}}}
[jsonrpc] e[16:49:31.342] <-- textDocument/documentHighlight[17] {"jsonrpc":"2.0","id":17,"result":[]}
[jsonrpc] e[16:49:31.363] <-- textDocument/signatureHelp[18] {"jsonrpc":"2.0","id":18,"result":{"signatures":[]}}
[jsonrpc] e[16:49:31.363] <-- textDocument/hover[16] {"jsonrpc":"2.0","id":16,"result":{"contents":""}}
[jsonrpc] e[16:49:37.173] --> textDocument/completion[19] {"jsonrpc":"2.0","id":19,"method":"textDocument/completion","params":{"textDocument":{"uri":"file:///tmp/foo/Hello.java"},"position":{"line":2,"character":14},"context":{"triggerKind":1}}}
[jsonrpc] e[16:49:37.283]   <-- textDocument/completion[19] {"jsonrpc":"2.0","id":19,"result":{"isIncomplete":false,"items":[{"label":"class : Class\u003cjava.lang.System\u003e","kind":5,"detail":"class : Class\u003cjava.lang.System\u003e","sortText":"999999178","filterText":"class","insertText":"class","insertTextFormat":2,"insertTextMode":2,"textEdit":{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"newText":"class"},"command":{"title":"","command":"java.completion.onDidSelect","arguments":["0","0"]},"data":{"pid":"0","rid":"0"}},{"label":"err : PrintStream","kind":21,"detail":"System.err : PrintStream","sortText":"999999178","filterText":"err","insertText":"err","insertTextFormat":2,"insertTextMode":2,"textEdit":{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"newText":"err"},"command":{"title":"","command":"java.completion.onDidSelect","arguments":["0","1"]},"data":{"pid":"1","rid":"0"}},{"label":"in : InputStream","kind":21,"detail":"System.in : InputStream","sortText":"999999178","filterText":"in","insertText":"in","insertTextFormat":2,"insertTextMode":2,"textEdit":{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"newText":"in"},"command":{"title":"","command":"java.completion.onDidSelect","arguments":["0","2"]},"data":{"pid":"2","rid":"0"}},{"label":"out : PrintStream","kind":21,"detail":"System.out : PrintStream","sortText":"999999178","filterText":"out","insertText":"out","insertTextFormat":2,"insertTextMode":2,"textEdit":{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"newText":"out"},"command":{"title":"","command":"java.completion.onDidSelect","arguments":["0","3"]},"data":{"pid":"3","rid":"0"}},{"label":"arraycopy(Object src, int srcPos, Object dest, int destPos, int length) : void","kind":2,"detail":"System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length) : void","sortText":"999999179","filterText":"arraycopy(${1:src}, ${2:srcPos}, ${3:dest}, ${4:destPos}, ${5:length});","insertText":"arraycopy","insertTextFormat":2,"insertTextMode":2,"textEdit":{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"newText":"arraycopy(${1:src}, ${2:srcPos}, ${3:dest}, ${4:destPos}, ${5:length});"},"command":{"title":"","command":"java.completion.onDidSelect","arguments":["0","4"]},"data":{"pid":"4","rid":"0"}},{"label":"clearProperty(String key) : String","kind":2,"detail":"System.clearProperty(String key) : String","sortText":"999999179","filterText":"clearProperty(${1:key})","insertText":"clearProperty","insertTextFormat":2,"insertTextMode":2,"textEdit":{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"newText":"clearProperty(${1:key})"},"command":{"title":"","command":"java.completion.onDidSelect","arguments":["0","5"]},"data":{"pid":"5","rid":"0"}},{"label":"console() : Console","kind":2,"detail":"System.console() : Console","sortText":"999999179","filterText":"console()","insertText":"console","insertTextFormat":2,"insertTextMode":2,"textEdit":{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"newText":"console()"},"command":{"title":"","command":"java.completion.onDidSelect","arguments":["0","6"]},"data":{"pid":"6","rid":"0"}},{"label":"currentTimeMillis() : long","kind":2,"detail":"System.currentTimeMillis() : long","sortText":"999999179","filterText":"currentTimeMillis()","insertText":"currentTimeMillis","insertTextFormat":2,"insertTextMode":2,"textEdit":{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"newText":"currentTimeMillis()"},"command":{"title":"","command":"java.completion.onDidSelect","arguments":["0","7"]},"data":{"pid":"7","rid":"0"}},{"label":"exit(int status) : void","kind":2,"detail":"System.exit(int status) : void","sortText":"999999179","filterText":"exit(${1:status});","insertText":"exit","insertTextFormat":2,"insertTextMode":2,"textEdit":{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"newText":"exit(${1:status});"},"command":{"title":"","command":"java.completion.onDidSelect","arguments":["0","8"]},"data":{"pid":"8","rid":"0"}},{"label":"gc() : void","kind":2,"detail":"System.gc() : void","sortText":"999999179","filterText":"gc();","insertText":"gc","insertTextFormat":2,"insertTextMode":2,"textEdit":{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"newText":"gc();"},"command":{"title":"","command":"java.completion.onDidSelect","arguments":["0","9"]},"data":{"pid":"9","rid":"0"}},{"label":"getLogger(String name) : Logger","kind":2,"detail":"System.getLogger(String name) : Logger","sortText":"999999179","filterText":"getLogger(${1:name})","insertText":"getLogger","insertTextFormat":2,"insertTextMode":2,"textEdit":{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"newText":"getLogger(${1:name})"},"command":{"title":"","command":"java.completion.onDidSelect","arguments":["0","10"]},"data":{"pid":"10","rid":"0"}},{"label":"getLogger(String name, ResourceBundle bundle) : Logger","kind":2,"detail":"System.getLogger(String name, ResourceBundle bundle) : Logger","sortText":"999999179","filterText":"getLogger(${1:name}, ${2:bundle})","insertText":"getLogger","insertTextFormat":2,"insertTextMode":2,"textEdit":{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"newText":"getLogger(${1:name}, ${2:bundle})"},"command":{"title":"","command":"java.completion.onDidSelect","arguments":["0","11"]},"data":{"pid":"11","rid":"0"}},{"label":"getProperties() : Properties","kind":2,"detail":"System.getProperties() : Properties","sortText":"999999179","filterText":"getProperties()","insertText":"getProperties","insertTextFormat":2,"insertTextMode":2,"textEdit":{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"newText":"getProperties()"},"command":{"title":"","command":"java.completion.onDidSelect","arguments":["0","12"]},"data":{"pid":"12","rid":"0"}},{"label":"getProperty(String key) : String","kind":2,"detail":"System.getProperty(String key) : String","sortText":"999999179","filterText":"getProperty(${1:key})","insertText":"getProperty","insertTextFormat":2,"insertTextMode":2,"textEdit":{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"newText":"getProperty(${1:key})"},"command":{"title":"","command":"java.completion.onDidSelect","arguments":["0","13"]},"data":{"pid":"13","rid":"0"}},{"label":"getProperty(String key, String def) : String","kind":2,"detail":"System.getProperty(String key, String def) : String","sortText":"999999179","filterText":"getProperty(${1:key}, ${2:def})","insertText":"getProperty","insertTextFormat":2,"insertTextMode":2,"textEdit":{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"newText":"getProperty(${1:key}, ${2:def})"},"command":{"title":"","command":"java.completion.onDidSelect","arguments":["0","14"]},"data":{"pid":"14","rid":"0"}},{"label":"getSecurityManager() : SecurityManager","kind":2,"tags":[1],"detail":"System.getSecurityManager() : SecurityManager","sortText":"999999179","filterText":"getSecurityManager()","insertText":"getSecurityManager","insertTextFormat":2,"insertTextMode":2,"textEdit":{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"newText":"getSecurityManager()"},"command":{"title":"","command":"java.completion.onDidSelect","arguments":["0","15"]},"data":{"pid":"15","rid":"0"}},{"label":"getenv() : Map\u003cString,String\u003e","kind":2,"detail":"System.getenv() : Map\u003cString,String\u003e","sortText":"999999179","filterText":"getenv()","insertText":"getenv","insertTextFormat":2,"insertTextMode":2,"textEdit":{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"newText":"getenv()"},"command":{"title":"","command":"java.completion.onDidSelect","arguments":["0","16"]},"data":{"pid":"16","rid":"0"}},{"label":"getenv(String name) : String","kind":2,"detail":"System.getenv(String name) : String","sortText":"999999179","filterText":"getenv(${1:name})","insertText":"getenv","insertTextFormat":2,"insertTextMode":2,"textEdit":{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"newText":"getenv(${1:name})"},"command":{"title":"","command":"java.completion.onDidSelect","arguments":["0","17"]},"data":{"pid":"17","rid":"0"}},{"label":"identityHashCode(Object x) : int","kind":2,"detail":"System.identityHashCode(Object x) : int","sortText":"999999179","filterText":"identityHashCode(${1:x})","insertText":"identityHashCode","insertTextFormat":2,"insertTextMode":2,"textEdit":{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"newText":"identityHashCode(${1:x})"},"command":{"title":"","command":"java.completion.onDidSelect","arguments":["0","18"]},"data":{"pid":"18","rid":"0"}},{"label":"inheritedChannel() : Channel","kind":2,"detail":"System.inheritedChannel() : Channel","sortText":"999999179","filterText":"inheritedChannel()","insertText":"inheritedChannel","insertTextFormat":2,"insertTextMode":2,"textEdit":{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"newText":"inheritedChannel()"},"command":{"title":"","command":"java.completion.onDidSelect","arguments":["0","19"]},"data":{"pid":"19","rid":"0"}},{"label":"lineSeparator() : String","kind":2,"detail":"System.lineSeparator() : String","sortText":"999999179","filterText":"lineSeparator()","insertText":"lineSeparator","insertTextFormat":2,"insertTextMode":2,"textEdit":{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"newText":"lineSeparator()"},"command":{"title":"","command":"java.completion.onDidSelect","arguments":["0","20"]},"data":{"pid":"20","rid":"0"}},{"label":"load(String filename) : void","kind":2,"detail":"System.load(String filename) : void","sortText":"999999179","filterText":"load(${1:filename});","insertText":"load","insertTextFormat":2,"insertTextMode":2,"textEdit":{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"newText":"load(${1:filename});"},"command":{"title":"","command":"java.completion.onDidSelect","arguments":["0","21"]},"data":{"pid":"21","rid":"0"}},{"label":"loadLibrary(String libname) : void","kind":2,"detail":"System.loadLibrary(String libname) : void","sortText":"999999179","filterText":"loadLibrary(${1:libname});","insertText":"loadLibrary","insertTextFormat":2,"insertTextMode":2,"textEdit":{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"newText":"loadLibrary(${1:libname});"},"command":{"title":"","command":"java.completion.onDidSelect","arguments":["0","22"]},"data":{"pid":"22","rid":"0"}},{"label":"mapLibraryName(String libname) : String","kind":2,"detail":"System.mapLibraryName(String libname) : String","sortText":"999999179","filterText":"mapLibraryName(${1:libname})","insertText":"mapLibraryName","insertTextFormat":2,"insertTextMode":2,"textEdit":{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"newText":"mapLibraryName(${1:libname})"},"command":{"title":"","command":"java.completion.onDidSelect","arguments":["0","23"]},"data":{"pid":"23","rid":"0"}},{"label":"nanoTime() : long","kind":2,"detail":"System.nanoTime() : long","sortText":"999999179","filterText":"nanoTime()","insertText":"nanoTime","insertTextFormat":2,"insertTextMode":2,"textEdit":{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"newText":"nanoTime()"},"command":{"title":"","command":"java.completion.onDidSelect","arguments":["0","24"]},"data":{"pid":"24","rid":"0"}},{"label":"runFinalization() : void","kind":2,"tags":[1],"detail":"System.runFinalization() : void","sortText":"999999179","filterText":"runFinalization();","insertText":"runFinalization","insertTextFormat":2,"insertTextMode":2,"textEdit":{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"newText":"runFinalization();"},"command":{"title":"","command":"java.completion.onDidSelect","arguments":["0","25"]},"data":{"pid":"25","rid":"0"}},{"label":"setErr(PrintStream err) : void","kind":2,"detail":"System.setErr(PrintStream err) : void","sortText":"999999179","filterText":"setErr(${1:err});","insertText":"setErr","insertTextFormat":2,"insertTextMode":2,"textEdit":{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"newText":"setErr(${1:err});"},"command":{"title":"","command":"java.completion.onDidSelect","arguments":["0","26"]},"data":{"pid":"26","rid":"0"}},{"label":"setIn(InputStream in) : void","kind":2,"detail":"System.setIn(InputStream in) : void","sortText":"999999179","filterText":"setIn(${1:in});","insertText":"setIn","insertTextFormat":2,"insertTextMode":2,"textEdit":{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"newText":"setIn(${1:in});"},"command":{"title":"","command":"java.completion.onDidSelect","arguments":["0","27"]},"data":{"pid":"27","rid":"0"}},{"label":"setOut(PrintStream out) : void","kind":2,"detail":"System.setOut(PrintStream out) : void","sortText":"999999179","filterText":"setOut(${1:out});","insertText":"setOut","insertTextFormat":2,"insertTextMode":2,"textEdit":{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"newText":"setOut(${1:out});"},"command":{"title":"","command":"java.completion.onDidSelect","arguments":["0","28"]},"data":{"pid":"28","rid":"0"}},{"label":"setProperties(Properties props) : void","kind":2,"detail":"System.setProperties(Properties props) : void","sortText":"999999179","filterText":"setProperties(${1:props});","insertText":"setProperties","insertTextFormat":2,"insertTextMode":2,"textEdit":{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"newText":"setProperties(${1:props});"},"command":{"title":"","command":"java.completion.onDidSelect","arguments":["0","29"]},"data":{"pid":"29","rid":"0"}},{"label":"setProperty(String key, String value) : String","kind":2,"detail":"System.setProperty(String key, String value) : String","sortText":"999999179","filterText":"setProperty(${1:key}, ${2:value})","insertText":"setProperty","insertTextFormat":2,"insertTextMode":2,"textEdit":{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"newText":"setProperty(${1:key}, ${2:value})"},"command":{"title":"","command":"java.completion.onDidSelect","arguments":["0","30"]},"data":{"pid":"30","rid":"0"}},{"label":"setSecurityManager(SecurityManager sm) : void","kind":2,"tags":[1],"detail":"System.setSecurityManager(SecurityManager sm) : void","sortText":"999999179","filterText":"setSecurityManager(${1:sm});","insertText":"setSecurityManager","insertTextFormat":2,"insertTextMode":2,"textEdit":{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"newText":"setSecurityManager(${1:sm});"},"command":{"title":"","command":"java.completion.onDidSelect","arguments":["0","31"]},"data":{"pid":"31","rid":"0"}},{"label":"LoggerFinder - java.lang.System","kind":7,"detail":"java.lang.System.LoggerFinder","sortText":"999999180","filterText":"LoggerFinder","insertText":"LoggerFinder","insertTextFormat":2,"insertTextMode":2,"textEdit":{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"newText":"LoggerFinder"},"command":{"title":"","command":"java.completion.onDidSelect","arguments":["0","32"]},"data":{"pid":"32","rid":"0"}},{"label":"Logger - java.lang.System","kind":8,"detail":"java.lang.System.Logger","sortText":"999999180","filterText":"Logger","insertText":"Logger","insertTextFormat":2,"insertTextMode":2,"textEdit":{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"newText":"Logger"},"command":{"title":"","command":"java.completion.onDidSelect","arguments":["0","33"]},"data":{"pid":"33","rid":"0"}}]}}
```

The warnings buffer has:

```
⛔ Warning (eglot): Server tried to register unsupported capability `workspace/didChangeWorkspaceFolders'
```

Here is the eglot configuration in .emacs:

```
(require 'eglot)

(add-hook 'java-mode-hook
       (lambda ()
         (setq indent-tabs-mode nil)
         (setq tab-width 3)
         (setq require-final-newline t)
         (setq delete-trailing-lines t)
         (remove-hook 'eglot-connect-hook #'eglot-signal-didChangeConfiguration t)))
;; https://github.com/joaotavora/eglot/discussions/1222
;; https://github.com/eclipse-jdtls/eclipse.jdt.ls/issues/3108#issuecomment-2018589030

(define-key eglot-mode-map (kbd "C-c r") #'eglot-rename)

(add-to-list 'eglot-server-programs
              `(java-mode . ("jdtls"
                             :initializationOptions
                             (:settings
                              (:java
                               (:format
                                (:enabled t
                                          :settings
                                          (:url "file:///data/cay/bin/cay-eclipse.formatter.xml"
                                                :profile "cay")))
                               :configuration
                               (:runtimes
                                [(:name "JavaSE-11" :path "/data/apps/jdk-11")
                                 (:name "JavaSE-17" :path "/data/apps/jdk-17")
                                 (:name "JavaSE-21" :path "/data/apps/jdk-21" :default t)]))
                              ))
                          ))
```

--

Cay S. Horstmann | https://horstmann.com