|
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