Skip to content

Commit b75dd44

Browse files
committed
Fix status bar
1 parent b29789d commit b75dd44

24 files changed

+170
-158
lines changed

.lsp/config.edn

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,5 @@
1-
{:cljfmt {:indents {proxy+ [[:block 2] [:inner 1]]}}}
1+
{:cljfmt {:indents {proxy+ [[:block 2] [:inner 1]]}}
2+
:project-specs [{:classpath-cmd ["./gradlew" "-q" "classpath"]
3+
:project-path "build.gradle.kts"}
4+
{:classpath-cmd ["clojure" "-Spath"]
5+
:project-path "deps.edn"}]}

build.gradle.kts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,12 @@ java {
7474
sourceCompatibility = JavaVersion.VERSION_17
7575
}
7676

77+
tasks.register("classpath") {
78+
doFirst {
79+
println(sourceSets["main"].compileClasspath.asPath)
80+
}
81+
}
82+
7783
tasks {
7884
compileKotlin {
7985
kotlinOptions {

deps.edn

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,5 @@
11
{:paths ["src/main/clojure"]
2-
:mvn/repos {"intellij-1" {:url "https://cache-redirector.jetbrains.com/intellij-dependencies"}
3-
"intellij-2" {:url "https://www.jetbrains.com/intellij-repository/releases"}}
4-
:deps {org.clojure/clojure {:mvn/version "1.11.1"}
5-
com.github.ericdallo/clj4intellij {:mvn/version "0.5.4"}
6-
seesaw/seesaw {:mvn/version "1.5.0"}
7-
camel-snake-kebab/camel-snake-kebab {:mvn/version "0.4.3"}
8-
com.github.clojure-lsp/clojure-lsp {:mvn/version "2024.03.01-11.37.51"}
9-
markdown-clj/markdown-clj {:mvn/version "1.12.1"}
10-
com.rpl/proxy-plus {:mvn/version "0.0.9"}}
11-
:aliases {:dev {:deps {nrepl/nrepl {:mvn/version "1.0.0"}
12-
com.jetbrains.intellij.platform/ide-impl {:mvn/version "213.7172.48"
13-
:exclusions [org.jetbrains.kotlin/kotlin-stdlib-jdk8
14-
org.jetbrains.kotlin/kotlin-reflect
15-
org.jetbrains.kotlinx/kotlinx-coroutines-jdk8
16-
org.jetbrains.kotlinx/kotlinx-serialization-json-jvm
17-
org.jetbrains.kotlinx/kotlinx-serialization-core-jvm
18-
19-
com.jetbrains.intellij.platform/external-system-impl
20-
com.jetbrains.intellij.platform/service-container
21-
com.jetbrains.intellij.platform/statistics-devkit
22-
com.jetbrains.infra/download-pgp-verifier]}}}
23-
:build {:extra-paths ["src/main/resources"]
2+
:aliases {:build {:extra-paths ["src/main/resources"]
243
:deps {io.github.clojure/tools.build {:git/tag "v0.8.1"
254
:git/sha "7d40500"}
265
slipset/deps-deploy {:mvn/version "0.2.0"}}

src/main/clojure/com/github/clojure_lsp/intellij/action/implementations.clj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
(set! *warn-on-reflection* true)
2525

2626
(defn show-implementations [^Editor editor line character]
27-
(if-let [client (lsp-client/connected-client (.getProject editor))]
27+
(if-let [client (lsp-client/connected-server (.getProject editor))]
2828
(let [implementations @(lsp-client/request! client [:textDocument/implementation
2929
{:text-document {:uri (editor/editor->uri editor)}
3030
:position {:line line

src/main/clojure/com/github/clojure_lsp/intellij/action/refactors.clj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
(defn execute-refactor-action [command-name ^AnActionEvent event]
1616
(when-let [editor ^Editor (.getData event CommonDataKeys/EDITOR)]
17-
(if-let [client (lsp-client/connected-client (.getProject editor))]
17+
(if-let [client (lsp-client/connected-server (.getProject editor))]
1818
(let [[line character] (util/editor->cursor-position editor)]
1919
(tasks/run-background-task!
2020
(.getProject editor)

src/main/clojure/com/github/clojure_lsp/intellij/action/references.clj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@
5757

5858
(defn find-references-action [^AnActionEvent event]
5959
(when-let [editor ^Editor (.getData event CommonDataKeys/EDITOR)]
60-
(if-let [client (lsp-client/connected-client (.getProject editor))]
60+
(if-let [client (lsp-client/connected-server (.getProject editor))]
6161
(let [[line character] (util/editor->cursor-position editor)]
6262
(show-references editor line character client))
6363
(.showErrorHint (HintManager/getInstance) ^Editor editor "LSP not connected" HintManager/RIGHT))))

src/main/clojure/com/github/clojure_lsp/intellij/client.clj

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@
1010
[lsp4clj.lsp.responses :as lsp.responses]
1111
[lsp4clj.protocols.endpoint :as protocols.endpoint])
1212
(:import
13-
[com.intellij.openapi.project Project]))
13+
[com.intellij.openapi.project Project]
14+
[com.redhat.devtools.lsp4ij LanguageServerManager]))
1415

1516
(set! *warn-on-reflection* true)
1617

@@ -145,6 +146,10 @@
145146
(defn notify! [client [method body]]
146147
(protocols.endpoint/send-notification client (subs (str method) 1) body))
147148

148-
(defn connected-client [^Project project]
149-
(when (identical? :connected (db/get-in project [:status]))
150-
(db/get-in project [:client])))
149+
(defn connected-server [^Project project]
150+
(when-let [manager (LanguageServerManager/getInstance project)]
151+
@(.getLanguageServer manager "clojure-lsp")))
152+
153+
(defn server-status [^Project project]
154+
(when-let [manager (LanguageServerManager/getInstance project)]
155+
(keyword (.toString (.getServerStatus manager "clojure-lsp")))))

src/main/clojure/com/github/clojure_lsp/intellij/db.clj

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@
1111
(def ^:private empty-project
1212
{:status :disconnected
1313
:downloaded-server-path nil
14-
:client nil
1514
:server-process nil
15+
:server nil
1616
:project nil
1717
:diagnostics {}
1818
:settings {:trace-level "off"
19-
:server-path nil}})
19+
:server-path nil}
20+
:on-status-changed-fns []})
2021

21-
(defonce db* (atom {:projects {}
22-
:on-status-changed-fns []}))
22+
(defonce db* (atom {:projects {}}))
2323

2424
(defn empty-db? []
2525
(empty? (:projects @db*)))
@@ -38,9 +38,9 @@
3838

3939
(defn init-db-for-project [^Project project]
4040
(swap! db* update :projects (fn [projects]
41-
(if (clojure.core/get projects (.getBasePath project))
41+
(if (clojure.core/get-in projects [(.getBasePath project) :project])
4242
projects
43-
(assoc projects (.getBasePath project) (assoc empty-project :project project))))))
43+
(update projects (.getBasePath project) #(merge (assoc empty-project :project project) %))))))
4444

4545
(defn await-field [project field fn]
4646
(async/thread

src/main/clojure/com/github/clojure_lsp/intellij/extension/code_action.clj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
(defonce code-action-name->title* (atom {}))
1616

1717
(defn ^:private req-code-actions [project uri [line character]]
18-
(when-let [client (lsp-client/connected-client project)]
18+
(when-let [client (lsp-client/connected-server project)]
1919
(let [diagnostics (->> (db/get-in project [:diagnostics uri])
2020
(filterv (fn [{{:keys [start end]} :range}]
2121
(and (<= (:line start) line (:line end))

src/main/clojure/com/github/clojure_lsp/intellij/extension/code_lens.clj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@
9595

9696
(defn -getCollectorFor [_ _file ^Editor editor _settings ^InlayHintsSink sink]
9797
(let [uri (editor/editor->uri editor)]
98-
(when-let [client (lsp-client/connected-client (.getProject editor))]
98+
(when-let [client (lsp-client/connected-server (.getProject editor))]
9999
;; For some reason `(PresentationFactory. editor)` does not work
100100
(proxy+ [editor] FactoryInlayHintsCollector
101101
(collect [^FactoryInlayHintsCollector this _ _ _]

0 commit comments

Comments
 (0)