File tree Expand file tree Collapse file tree 4 files changed +28
-10
lines changed
clojure/com/github/clojure_lsp/intellij Expand file tree Collapse file tree 4 files changed +28
-10
lines changed Original file line number Diff line number Diff line change 11(ns com.github.clojure-lsp.intellij.client
2+ (:require
3+ [clojure.walk :as walk])
24 (:import
5+ [com.github.clojure_lsp.intellij ClojureLanguageServer]
36 [com.intellij.openapi.project Project]
4- [com.redhat.devtools.lsp4ij LanguageServerManager]
7+ [com.redhat.devtools.lsp4ij LanguageServerItem LanguageServerManager]
58 [com.redhat.devtools.lsp4ij.commands CommandExecutor LSPCommandContext]
69 [java.util List]
710 [org.eclipse.lsp4j Command]))
1215 (when-let [manager (LanguageServerManager/getInstance project)]
1316 (keyword (.toString (.getServerStatus manager " clojure-lsp" )))))
1417
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+
1526(defn execute-command [^String name ^String text ^List args ^Project project]
1627 (-> (CommandExecutor/executeCommand
1728 (doto (LSPCommandContext. (Command. text name args) project)
Original file line number Diff line number Diff line change 55 (:require
66 [clojure.pprint :as pprint]
77 [clojure.string :as str]
8+ [com.github.clojure-lsp.intellij.client :as lsp-client]
89 [com.github.clojure-lsp.intellij.config :as config]
910 [com.github.clojure-lsp.intellij.db :as db]
1011 [com.github.clojure-lsp.intellij.server :as server]
1415 [seesaw.mig :as s.mig])
1516 (:import
1617 [com.github.clojure_lsp.intellij.extension SettingsState]
17- [com.intellij.openapi.project Project]
1818 [com.intellij.ui IdeBorderFactory]
1919 [java.awt Toolkit]
2020 [java.awt.datatransfer StringSelection]))
9393 :foreground (s.color/color 110 110 110 )) " wrap" ]]
9494 (remove nil?)))))
9595
96- ; ; TODO
97- (defn ^:private server-info! [^Project project])
98-
9996(defn -createComponent [_]
10097 (let [project (first (db/all-projects ))
101- server-info (server-info! project)
98+ server-info (lsp-client/ server-info project)
10299 component (build-component server-info (db/get-in project [:settings ]))]
103100 (reset! component* component)
104101 component))
Original file line number Diff line number Diff line change 1818 [com.redhat.devtools.lsp4ij.server OSProcessStreamConnectionProvider]
1919 [java.io File]
2020 [java.util List]
21- [org.eclipse.lsp4j InitializeParams]
22- [org.eclipse.lsp4j.services LanguageServer]))
21+ [org.eclipse.lsp4j InitializeParams]))
2322
2423(set! *warn-on-reflection* true )
2524
4039(defn -createLanguageClient [_ ^Project project]
4140 (LanguageClientImpl. project))
4241
43- ; ; TODO custom server methods
44- ( defn -getServerInterface [_] LanguageServer )
42+ ( defn -getServerInterface [_]
43+ com.github.clojure_lsp.intellij.ClojureLanguageServer )
4544
4645(defn ^:private install-server [project]
4746 (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