File tree 4 files changed +28
-10
lines changed
clojure/com/github/clojure_lsp/intellij
4 files changed +28
-10
lines changed Original file line number Diff line number Diff line change 1
1
(ns com.github.clojure-lsp.intellij.client
2
+ (:require
3
+ [clojure.walk :as walk])
2
4
(:import
5
+ [com.github.clojure_lsp.intellij ClojureLanguageServer]
3
6
[com.intellij.openapi.project Project]
4
- [com.redhat.devtools.lsp4ij LanguageServerManager]
7
+ [com.redhat.devtools.lsp4ij LanguageServerItem LanguageServerManager]
5
8
[com.redhat.devtools.lsp4ij.commands CommandExecutor LSPCommandContext]
6
9
[java.util List]
7
10
[org.eclipse.lsp4j Command]))
12
15
(when-let [manager (LanguageServerManager/getInstance project)]
13
16
(keyword (.toString (.getServerStatus manager " clojure-lsp" )))))
14
17
18
+ (defn server-info [^Project project]
19
+ (when-let [manager (LanguageServerManager/getInstance project)]
20
+ (when-let [server (.getServer ^LanguageServerItem @(.getLanguageServer manager " clojure-lsp" ))]
21
+ (some->> (.serverInfo ^ClojureLanguageServer server)
22
+ deref
23
+ (into {})
24
+ walk/keywordize-keys))))
25
+
15
26
(defn execute-command [^String name ^String text ^List args ^Project project]
16
27
(-> (CommandExecutor/executeCommand
17
28
(doto (LSPCommandContext. (Command. text name args) project)
Original file line number Diff line number Diff line change 5
5
(:require
6
6
[clojure.pprint :as pprint]
7
7
[clojure.string :as str]
8
+ [com.github.clojure-lsp.intellij.client :as lsp-client]
8
9
[com.github.clojure-lsp.intellij.config :as config]
9
10
[com.github.clojure-lsp.intellij.db :as db]
10
11
[com.github.clojure-lsp.intellij.server :as server]
14
15
[seesaw.mig :as s.mig])
15
16
(:import
16
17
[com.github.clojure_lsp.intellij.extension SettingsState]
17
- [com.intellij.openapi.project Project]
18
18
[com.intellij.ui IdeBorderFactory]
19
19
[java.awt Toolkit]
20
20
[java.awt.datatransfer StringSelection]))
93
93
:foreground (s.color/color 110 110 110 )) " wrap" ]]
94
94
(remove nil?)))))
95
95
96
- ; ; TODO
97
- (defn ^:private server-info! [^Project project])
98
-
99
96
(defn -createComponent [_]
100
97
(let [project (first (db/all-projects ))
101
- server-info (server-info! project)
98
+ server-info (lsp-client/ server-info project)
102
99
component (build-component server-info (db/get-in project [:settings ]))]
103
100
(reset! component* component)
104
101
component))
Original file line number Diff line number Diff line change 18
18
[com.redhat.devtools.lsp4ij.server OSProcessStreamConnectionProvider]
19
19
[java.io File]
20
20
[java.util List]
21
- [org.eclipse.lsp4j InitializeParams]
22
- [org.eclipse.lsp4j.services LanguageServer]))
21
+ [org.eclipse.lsp4j InitializeParams]))
23
22
24
23
(set! *warn-on-reflection* true )
25
24
40
39
(defn -createLanguageClient [_ ^Project project]
41
40
(LanguageClientImpl. project))
42
41
43
- ; ; TODO custom server methods
44
- ( defn -getServerInterface [_] LanguageServer )
42
+ ( defn -getServerInterface [_]
43
+ com.github.clojure_lsp.intellij.ClojureLanguageServer )
45
44
46
45
(defn ^:private install-server [project]
47
46
(swap! server assoc :status :installing )
Original file line number Diff line number Diff line change
1
+ package com.github.clojure_lsp.intellij
2
+
3
+ import org.eclipse.lsp4j.jsonrpc.services.JsonRequest
4
+ import org.eclipse.lsp4j.services.LanguageServer
5
+ import java.util.concurrent.CompletableFuture
6
+
7
+ interface ClojureLanguageServer : LanguageServer {
8
+
9
+ @JsonRequest(" clojure/serverInfo/raw" )
10
+ fun serverInfo (): CompletableFuture <Object >
11
+ }
You can’t perform that action at this time.
0 commit comments