|
20 | 20 | [com.intellij.openapi.vfs LocalFileSystem VirtualFile]
|
21 | 21 | [com.redhat.devtools.lsp4ij LSPIJUtils ServerStatus]
|
22 | 22 | [com.redhat.devtools.lsp4ij.client LanguageClientImpl]
|
23 |
| - [com.redhat.devtools.lsp4ij.client.features LSPClientFeatures LSPProgressFeature] |
| 23 | + [com.redhat.devtools.lsp4ij.client.features EditorBehaviorFeature LSPClientFeatures LSPProgressFeature] |
24 | 24 | [com.redhat.devtools.lsp4ij.installation LanguageServerInstallerBase]
|
25 | 25 | [com.redhat.devtools.lsp4ij.server OSProcessStreamConnectionProvider]
|
26 | 26 | [java.io File]
|
|
88 | 88 | (LSPIJUtils/findResourceFor uri)))
|
89 | 89 |
|
90 | 90 | (defn -createClientFeatures [_]
|
91 |
| - (doto |
92 |
| - (proxy+ [] LSPClientFeatures |
93 |
| - (keepServerAlive [_] true) |
94 |
| - (initializeParams [_ ^InitializeParams params] |
95 |
| - (.setWorkDoneToken params "clojure-lsp-startup") |
96 |
| - (.setInitializationOptions params {"dependency-scheme" "jar" |
97 |
| - "hover" {"arity-on-same-line?" true}})) |
98 |
| - (findFileByUri ^VirtualFile [_ ^String uri] |
99 |
| - (find-file-by-uri uri)) |
100 |
| - (handleServerStatusChanged [^LSPClientFeatures this ^ServerStatus server-status] |
101 |
| - (let [status (keyword (.toString server-status))] |
102 |
| - (db/assoc-in (.getProject this) [:status] status) |
103 |
| - (run! #(% status) (db/get-in (.getProject this) [:on-status-changed-fns]))))) |
104 |
| - (.setProgressFeature (proxy+ [] LSPProgressFeature |
| 91 | + (let [lsp-client-features (proxy+ [] LSPClientFeatures |
| 92 | + (keepServerAlive [_] true) |
| 93 | + (initializeParams [_ ^InitializeParams params] |
| 94 | + (.setWorkDoneToken params "clojure-lsp-startup") |
| 95 | + (.setInitializationOptions params {"dependency-scheme" "jar" |
| 96 | + "hover" {"arity-on-same-line?" true}})) |
| 97 | + (findFileByUri ^VirtualFile [_ ^String uri] |
| 98 | + (find-file-by-uri uri)) |
| 99 | + (handleServerStatusChanged [^LSPClientFeatures this ^ServerStatus server-status] |
| 100 | + (let [status (keyword (.toString server-status))] |
| 101 | + (db/assoc-in (.getProject this) [:status] status) |
| 102 | + (run! #(% status) (db/get-in (.getProject this) [:on-status-changed-fns])))))] |
| 103 | + (.setProgressFeature lsp-client-features |
| 104 | + (proxy+ [] LSPProgressFeature |
105 | 105 | (updateMessage [_ ^String message ^ProgressIndicator indicator]
|
106 | 106 | (.setText indicator (str "LSP: " message)))))
|
107 |
| - (.setServerInstaller (proxy+ [] LanguageServerInstallerBase |
| 107 | + (.setServerInstaller lsp-client-features |
| 108 | + (proxy+ [] LanguageServerInstallerBase |
108 | 109 | (getInstallationTaskTitle [_] "LSP: installing clojure-lsp")
|
109 | 110 | (progressCheckingServerInstalled [_ indicator] (tasks/set-progress indicator "LSP: checking for clojure-lsp"))
|
110 | 111 | (progressInstallingServer [_ indicator] (tasks/set-progress indicator "LSP: downloading clojure-lsp"))
|
|
119 | 120 | (when-not @server-installing*
|
120 | 121 | (reset! server-installing* true)
|
121 | 122 | (reset! server-path* (server/install-server! (.getProject (.getClientFeatures this))))
|
122 |
| - (reset! server-installing* false))))))) |
| 123 | + (reset! server-installing* false))))) |
| 124 | + (.setEditorBehaviorFeature lsp-client-features |
| 125 | + (proxy+ [lsp-client-features] EditorBehaviorFeature |
| 126 | + (isEnableSemanticTokensFileViewProvider [_ _] true))) |
| 127 | + lsp-client-features)) |
0 commit comments