Comments (24)
Found the bug!
the issue hapens because: after 2023.08.06-00.28.06
we had a huge performnace improvement excluding keywords analysis from external files, files that are not part of the project code, the problem is that we are considering the root deps.edn as external because it's not included in the the classpath (clj -Spath
), but we know it's a valid project file, I think we can fix it considering it somehow, I'll check that
from clojure-lsp.
It should be fixed on master/nightly build!
from clojure-lsp.
Same, also using Neovim 0.9.5
from clojure-lsp.
@julienvincent Hi, running in deps.edn buffer command "clojure-mode" should help.
I've had that issue just like you (and I'm using newest clojure-lsp). And after one use it's automatically choosing clojure-mode for future .edn buffers.
from clojure-lsp.
@Kaspazza What do you mean run a "clojure-mode" command?
from clojure-lsp.
If you are using doom emacs and you have Clojure in your doom config enabled it’s default it’s M-x clojure-mode
https://github.com/clojure-emacs/clojure-mode
from clojure-lsp.
@julienvincent I really can't repro this and not sure it's aclojure-lsp fault, most likely it's on client side, do you have a repro where I can try? clojure-lsp edn files works great to me.
from clojure-lsp.
I'm not sure how to fully verify where the issue is - all I can say is that the only variable I am changing in my config is the version of clojure-lsp
I have installed and that is enough to reproduce this issue.
Also to clarify I think this issue is only showing up for deps.edn
files and not arbitrary .edn
files.
@ericdallo I'm not sure how would be best for me to provide a repro. I can reproduce it reliably with my Neovim config (located here: https://github.com/julienvincent/config.nvim). If you are comfortable with Neovim you could use that to reproduce it:
- Clone the repo to
~/.config/nvim
- Open neovim
- Run
:MasonInstall clojure-lsp
(which will install the latest)
Then :MasonInstall [email protected]
and the problem goes away.
If you can suggest a better way to try reproduce let me know I'd be happy to try.
from clojure-lsp.
@julienvincent I still think it could be a client issue (neovim), but if you can reliable confirm it's fixed rolling back to that version we can double check, checking the changelog the only thing I can see that could affect that is this change where we now ignore analytsis elements for extenal deps (not project code), but a deps.edn file should be considered project code, and if you manually open it it should be linted as well and fill color so not sure it's realy that.
My suggestion is to get client<->server logs so we can confirm clojure-lsp is not responding to any textDocument/semanticTokens/full
request.
from clojure-lsp.
@ericdallo I ran the server with --trace-level verbose
and these are the logs produced:
Clojure-LSP Logs
2024-01-31T14:36:00.783Z DEBUG [clojure-lsp.server:55] - [Trace - 2024-01-31T14:36:00.783Z] Sending notification '$/progress'
Params: {
"token" : "enable-progress",
"value" : {
"kind" : "report",
"message" : "Finding kondo config",
"percentage" : 5
}
}
2024-01-31T14:36:00.784Z DEBUG [clojure-lsp.server:55] - [Trace - 2024-01-31T14:36:00.783Z] Sending notification '$/progress'
Params: {
"token" : "enable-progress",
"value" : {
"kind" : "report",
"message" : "Finding cache",
"percentage" : 10
}
}
2024-01-31T14:36:01.138Z INFO [clojure-lsp.db:77] - [DB] Reading transit analysis cache from /Users/julienvincent/code/scratch/repl/.lsp/.cache/db.transit.json db took 354ms
2024-01-31T14:36:01.260Z INFO [clojure-lsp.dep-graph:269] - :maintain-dep-graph 118ms
2024-01-31T14:36:01.269Z INFO [clojure-lsp.startup:254] - [Startup] Using cached classpath #{"/Users/julienvincent/.m2/repository/io/opentelemetry/instrumentation/opentelemetry-resources/1.27.0-alpha/opentelemetry-resources-1.27.0-alpha.jar" "/Users/julienvincent/.m2/repository/transit-engineering/gatekeeper-client/2.1.3.0/gatekeeper-client-2.1.3.0.jar" "/Users/julienvincent/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib/1.6.20/kotlin-stdlib-1.6.20.jar" "/Users/julienvincent/.m2/repository/io/opentelemetry/opentelemetry-sdk-common/1.29.0/opentelemetry-sdk-common-1.29.0.jar" "/Users/julienvincent/.m2/repository/io/opentelemetry/opentelemetry-api/1.29.0/opentelemetry-api-1.29.0.jar" "/Users/julienvincent/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.15.2/jackson-databind-2.15.2.jar" "/Users/julienvincent/.m2/repository/org/mongodb/bson/4.11.1/bson-4.11.1.jar" "/Users/julienvincent/.m2/repository/borkdude/edamame/1.3.23/edamame-1.3.23.jar" "/Users/julienvincent/.m2/repository/org/apache/httpcomponents/httpcore-nio/4.4.10/httpcore-nio-4.4.10.jar" "/Users/julienvincent/.m2/repository/tick/tick/0.7.5/tick-0.7.5.jar" "/Users/julienvincent/.m2/repository/io/opentelemetry/opentelemetry-exporter-otlp-common/1.29.0/opentelemetry-exporter-otlp-common-1.29.0.jar" "/Users/julienvincent/.m2/repository/org/apache/commons/commons-pool2/2.12.0/commons-pool2-2.12.0.jar" "/Users/julienvincent/.m2/repository/com/github/steffan-westcott/clj-otel-instrumentation-resources/0.2.3/clj-otel-instrumentation-resources-0.2.3.jar" "/Users/julienvincent/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.15.2/jackson-datatype-jsr310-2.15.2.jar" "/Users/julienvincent/.m2/repository/http-kit/http-kit/2.7.0/http-kit-2.7.0.jar" "/Users/julienvincent/.m2/repository/transit-engineering/opx/0.0.1.0/opx-0.0.1.0.jar" "/Users/julienvincent/.m2/repository/org/slf4j/log4j-over-slf4j/1.7.36/log4j-over-slf4j-1.7.36.jar" "/Users/julienvincent/.m2/repository/transit-engineering/op.clj/1.82.0.3/op.clj-1.82.0.3.jar" "/Users/julienvincent/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.15.2/jackson-core-2.15.2.jar" "/Users/julienvincent/.m2/repository/com/fzakaria/slf4j-timbre/0.4.0/slf4j-timbre-0.4.0.jar" "/Users/julienvincent/.m2/repository/com/github/strojure/zmap/1.3.26/zmap-1.3.26.jar" "/Users/julienvincent/.m2/repository/com/taoensso/nippy/3.3.0/nippy-3.3.0.jar" "/Users/julienvincent/.m2/repository/transit-platform/kid.clj/1.77.1/kid.clj-1.77.1.jar" "/Users/julienvincent/.m2/repository/org/codehaus/mojo/animal-sniffer-annotations/1.21/animal-sniffer-annotations-1.21.jar" "/Users/julienvincent/.m2/repository/io/opentelemetry/opentelemetry-semconv/1.29.0-alpha/opentelemetry-semconv-1.29.0-alpha.jar" "/Users/julienvincent/.m2/repository/com/taoensso/timbre/6.3.1/timbre-6.3.1.jar" "/Users/julienvincent/.m2/repository/transit-engineering/accounts-client/4.0.0.0/accounts-client-4.0.0.0.jar" "/Users/julienvincent/.m2/repository/com/widdindustries/time-literals/0.1.10/time-literals-0.1.10.jar" "/Users/julienvincent/.m2/repository/metosin/malli/0.13.0/malli-0.13.0.jar" "/Users/julienvincent/.m2/repository/org/jetbrains/annotations/13.0/annotations-13.0.jar" "/Users/julienvincent/.m2/repository/com/taoensso/carmine/3.3.2/carmine-3.3.2.jar" "/Users/julienvincent/.m2/repository/com/google/android/annotations/4.1.1.4/annotations-4.1.1.4.jar" "/Users/julienvincent/.m2/repository/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar" "/Users/julienvincent/.m2/repository/kepler16/glitch.clj/3.0.0.0/glitch.clj-3.0.0.0.jar" "/Users/julienvincent/.m2/repository/io/opentelemetry/opentelemetry-sdk-logs/1.29.0/opentelemetry-sdk-logs-1.29.0.jar" "/Users/julienvincent/.m2/repository/org/clojure/data.csv/1.0.1/data.csv-1.0.1.jar" "/Users/julienvincent/.m2/repository/clj-tuple/clj-tuple/0.2.2/clj-tuple-0.2.2.jar" "/Users/julienvincent/.m2/repository/potemkin/potemkin/0.4.5/potemkin-0.4.5.jar" "/Users/julienvincent/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-common/1.6.20/kotlin-stdlib-common-1.6.20.jar" "/Users/julienvincent/.m2/repository/io/opentelemetry/opentelemetry-exporter-otlp/1.29.0/opentelemetry-exporter-otlp-1.29.0.jar" "/Users/julienvincent/.m2/repository/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar" "/Users/julienvincent/.m2/repository/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar" "/Users/julienvincent/.m2/repository/transit-engineering/schema/0.2.0.3/schema-0.2.0.3.jar" "/Users/julienvincent/.m2/repository/org/apache/httpcomponents/httpclient-cache/4.5.13/httpclient-cache-4.5.13.jar" "/Users/julienvincent/.m2/repository/io/opentelemetry/opentelemetry-sdk-trace/1.29.0/opentelemetry-sdk-trace-1.29.0.jar" "/Users/julienvincent/.m2/repository/io/grpc/grpc-context/1.52.1/grpc-context-1.52.1.jar" "/Users/julienvincent/.m2/repository/io/sentry/sentry/6.33.1/sentry-6.33.1.jar" "/Users/julienvincent/.m2/repository/io/opentelemetry/opentelemetry-sdk-extension-autoconfigure-spi/1.29.0/opentelemetry-sdk-extension-autoconfigure-spi-1.29.0.jar" "/Users/julienvincent/.m2/repository/mvxcvi/alphabase/2.1.1/alphabase-2.1.1.jar" "/Users/julienvincent/.m2/repository/mvxcvi/arrangement/2.1.0/arrangement-2.1.0.jar" "/Users/julienvincent/.m2/repository/io/opentelemetry/opentelemetry-sdk/1.29.0/opentelemetry-sdk-1.29.0.jar" "src" "/Users/julienvincent/.m2/repository/io/grpc/grpc-protobuf-lite/1.52.1/grpc-protobuf-lite-1.52.1.jar" "/Users/julienvincent/.m2/repository/io/perfmark/perfmark-api/0.25.0/perfmark-api-0.25.0.jar" "/Users/julienvincent/.m2/repository/com/google/errorprone/error_prone_annotations/2.14.0/error_prone_annotations-2.14.0.jar" "/Users/julienvincent/.m2/repository/org/clojure/spec.alpha/0.3.218/spec.alpha-0.3.218.jar" "/Users/julienvincent/.m2/repository/io/aviso/pretty/1.4.4/pretty-1.4.4.jar" "/Users/julienvincent/.m2/repository/com/github/rosejn/msgpack-cljc/2.0.359/msgpack-cljc-2.0.359.jar" "/Users/julienvincent/.m2/repository/io/opentelemetry/opentelemetry-exporter-sender-okhttp/1.29.0/opentelemetry-exporter-sender-okhttp-1.29.0.jar" "/Users/julienvincent/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.15.2/jackson-annotations-2.15.2.jar" "/Users/julienvincent/.m2/repository/com/widdindustries/cljs.java-time/0.1.20/cljs.java-time-0.1.20.jar" "/Users/julienvincent/.m2/repository/io/opentelemetry/instrumentation/opentelemetry-instrumentation-api-semconv/1.29.0-alpha/opentelemetry-instrumentation-api-semconv-1.29.0-alpha.jar" "/Users/julienvincent/.m2/repository/com/fasterxml/uuid/java-uuid-generator/4.1.0/java-uuid-generator-4.1.0.jar" "/Users/julienvincent/.m2/repository/mongo-driver-3/mongo-driver-3/0.7.0/mongo-driver-3-0.7.0.jar" "/Users/julienvincent/.m2/repository/io/opentelemetry/opentelemetry-extension-incubator/1.29.0-alpha/opentelemetry-extension-incubator-1.29.0-alpha.jar" "/Users/julienvincent/.m2/repository/io/grpc/grpc-protobuf/1.52.1/grpc-protobuf-1.52.1.jar" "/Users/julienvincent/.m2/repository/com/squareup/okio/okio-jvm/3.2.0/okio-jvm-3.2.0.jar" "/Users/julienvincent/.m2/repository/org/slf4j/slf4j-api/2.0.9/slf4j-api-2.0.9.jar" "/Users/julienvincent/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.6.20/kotlin-stdlib-jdk8-1.6.20.jar" "/Users/julienvincent/.m2/repository/org/slf4j/jcl-over-slf4j/2.0.9/jcl-over-slf4j-2.0.9.jar" "/Users/julienvincent/.m2/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar" "/Users/julienvincent/.m2/repository/io/grpc/grpc-core/1.52.1/grpc-core-1.52.1.jar" "/Users/julienvincent/.m2/repository/com/widdindustries/cljc.java-time/0.1.21/cljc.java-time-0.1.21.jar" "/Users/julienvincent/.m2/repository/org/slf4j/osgi-over-slf4j/1.7.36/osgi-over-slf4j-1.7.36.jar" "/Users/julienvincent/.m2/repository/org/mongodb/mongodb-driver-sync/4.11.1/mongodb-driver-sync-4.11.1.jar" "/Users/julienvincent/.m2/repository/com/google/code/gson/gson/2.9.0/gson-2.9.0.jar" "/Users/julienvincent/.m2/repository/io/grpc/grpc-netty-shaded/1.52.1/grpc-netty-shaded-1.52.1.jar" "/Users/julienvincent/.m2/repository/commons-codec/commons-codec/1.16.0/commons-codec-1.16.0.jar" "/Users/julienvincent/.m2/repository/org/mongodb/bson-record-codec/4.11.1/bson-record-codec-4.11.1.jar" "/Users/julienvincent/.m2/repository/org/clojure/tools.logging/1.2.4/tools.logging-1.2.4.jar" "/Users/julienvincent/.m2/repository/io/opentelemetry/instrumentation/opentelemetry-mongo-3.1/1.29.0-alpha/opentelemetry-mongo-3.1-1.29.0-alpha.jar" "/Users/julienvincent/.m2/repository/transit-engineering/mongo.clj/1.85.0.8/mongo.clj-1.85.0.8.jar" "/Users/julienvincent/.m2/repository/org/clojure/clojure/1.11.1/clojure-1.11.1.jar" "/Users/julienvincent/.m2/repository/camel-snake-kebab/camel-snake-kebab/0.4.3/camel-snake-kebab-0.4.3.jar" "/Users/julienvincent/.m2/repository/org/iq80/snappy/snappy/0.4/snappy-0.4.jar" "/Users/julienvincent/.m2/repository/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar" "/Users/julienvincent/.m2/repository/com/taoensso/encore/3.68.0/encore-3.68.0.jar" "/Users/julienvincent/.m2/repository/transit-engineering/kql/0.3.0.3/kql-0.3.0.3.jar" "/Users/julienvincent/.m2/repository/com/squareup/okhttp3/okhttp/4.11.0/okhttp-4.11.0.jar" "/Users/julienvincent/.m2/repository/org/clojure/core.rrb-vector/0.1.2/core.rrb-vector-0.1.2.jar" "/Users/julienvincent/.m2/repository/funcool/promesa/11.0.678/promesa-11.0.678.jar" "/Users/julienvincent/.m2/repository/org/clojure/core.specs.alpha/0.2.62/core.specs.alpha-0.2.62.jar" "/Users/julienvincent/.m2/repository/com/google/api/grpc/proto-google-common-protos/2.9.0/proto-google-common-protos-2.9.0.jar" "/Users/julienvincent/.m2/repository/com/google/protobuf/protobuf-java/3.21.7/protobuf-java-3.21.7.jar" "/Users/julienvincent/.m2/repository/org/lz4/lz4-java/1.8.0/lz4-java-1.8.0.jar" "/Users/julienvincent/.m2/repository/io/opentelemetry/instrumentation/opentelemetry-instrumentation-api/1.29.0/opentelemetry-instrumentation-api-1.29.0.jar" "/Users/julienvincent/.m2/repository/com/taoensso/truss/1.11.0/truss-1.11.0.jar" "/Users/julienvincent/.m2/repository/org/mongodb/mongodb-driver-core/4.11.1/mongodb-driver-core-4.11.1.jar" "/Users/julienvincent/.m2/repository/org/msgpack/msgpack-core/0.9.6/msgpack-core-0.9.6.jar" "/Users/julienvincent/.m2/repository/io/opentelemetry/opentelemetry-api-events/1.29.0-alpha/opentelemetry-api-events-1.29.0-alpha.jar" "/Users/julienvincent/.m2/repository/commons-io/commons-io/2.8.0/commons-io-2.8.0.jar" "/Users/julienvincent/.m2/repository/com/squareup/okio/okio/3.2.0/okio-3.2.0.jar" "/Users/julienvincent/.m2/repository/metosin/jsonista/0.3.8/jsonista-0.3.8.jar" "/Users/julienvincent/.m2/repository/io/opentelemetry/opentelemetry-sdk-metrics/1.29.0/opentelemetry-sdk-metrics-1.29.0.jar" "/Users/julienvincent/.m2/repository/transit-engineering/telemetry.clj/2.2.3.0/telemetry.clj-2.2.3.0.jar" "/Users/julienvincent/.m2/repository/riddley/riddley/0.1.12/riddley-0.1.12.jar" "/Users/julienvincent/.m2/repository/borkdude/dynaload/0.3.5/dynaload-0.3.5.jar" "/Users/julienvincent/.m2/repository/io/grpc/grpc-stub/1.52.1/grpc-stub-1.52.1.jar" "/Users/julienvincent/.m2/repository/io/opentelemetry/opentelemetry-exporter-common/1.29.0/opentelemetry-exporter-common-1.29.0.jar" "/Users/julienvincent/.m2/repository/com/github/steffan-westcott/clj-otel-api/0.2.3/clj-otel-api-0.2.3.jar" "/Users/julienvincent/.m2/repository/org/slf4j/jul-to-slf4j/1.7.36/jul-to-slf4j-1.7.36.jar" "/Users/julienvincent/.m2/repository/fipp/fipp/0.6.26/fipp-0.6.26.jar" "/Users/julienvincent/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.6.20/kotlin-stdlib-jdk7-1.6.20.jar" "/Users/julienvincent/.m2/repository/io/opentelemetry/opentelemetry-context/1.29.0/opentelemetry-context-1.29.0.jar" "/Users/julienvincent/.m2/repository/org/apache/httpcomponents/httpcore/4.4.14/httpcore-4.4.14.jar" "/Users/julienvincent/.m2/repository/org/tukaani/xz/1.9/xz-1.9.jar" "/Users/julienvincent/.m2/repository/com/taoensso/tufte/2.6.3/tufte-2.6.3.jar" "/Users/julienvincent/.m2/repository/clj-http/clj-http/3.12.3/clj-http-3.12.3.jar" "/Users/julienvincent/.m2/repository/com/google/guava/guava/31.1-android/guava-31.1-android.jar" "/Users/julienvincent/.m2/repository/org/apache/httpcomponents/httpmime/4.5.13/httpmime-4.5.13.jar" "/Users/julienvincent/.m2/repository/org/clojure/test.check/1.1.1/test.check-1.1.1.jar" "/Users/julienvincent/.m2/repository/com/github/steffan-westcott/clj-otel-sdk/0.2.3/clj-otel-sdk-0.2.3.jar" "/Users/julienvincent/.m2/repository/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar" "/Users/julienvincent/.m2/repository/org/clojure/tools.reader/1.3.6/tools.reader-1.3.6.jar" "/Users/julienvincent/.m2/repository/org/checkerframework/checker-qual/3.12.0/checker-qual-3.12.0.jar" "resources" "test" "/Users/julienvincent/.m2/repository/org/apache/httpcomponents/httpasyncclient/4.1.4/httpasyncclient-4.1.4.jar" "/Users/julienvincent/.m2/repository/babashka/fs/0.4.19/fs-0.4.19.jar" "/Users/julienvincent/.m2/repository/slingshot/slingshot/0.12.2/slingshot-0.12.2.jar" "/Users/julienvincent/.m2/repository/io/grpc/grpc-api/1.52.1/grpc-api-1.52.1.jar"}
2024-01-31T14:36:01.270Z INFO [clojure-lsp.source-paths:85] - [Startup] Using source-paths from classpath: ["/Users/julienvincent/code/scratch/repl/src" "/Users/julienvincent/code/scratch/repl/resources" "/Users/julienvincent/code/scratch/repl/test"]
2024-01-31T14:36:01.270Z INFO [clojure-lsp.startup:142] - Copying kondo configs from classpath to project if any...
2024-01-31T14:36:01.270Z DEBUG [clojure-lsp.server:55] - [Trace - 2024-01-31T14:36:01.270Z] Sending notification '$/progress'
Params: {
"token" : "enable-progress",
"value" : {
"kind" : "report",
"message" : "Copying kondo configs",
"percentage" : 15
}
}
2024-01-31T14:36:01.341Z WARN [clojure-lsp.kondo:363] - Non-fatal error from clj-kondo: Configs copied:
- .clj-kondo/babashka/fs
- .clj-kondo/com.github.steffan-westcott/clj-otel-api
- .clj-kondo/config.edn
- .clj-kondo/funcool/promesa
- .clj-kondo/hooks/transit
- .clj-kondo/http-kit/http-kit
- .clj-kondo/metosin/malli
- .clj-kondo/taoensso/encore
2024-01-31T14:36:01.341Z INFO [clojure-lsp.startup:144] - Copied kondo configs, took 71ms secs.
2024-01-31T14:36:01.341Z INFO [clojure-lsp.startup:290] - [Startup] Analyzing source paths for project root /Users/julienvincent/code/scratch/repl
2024-01-31T14:36:01.341Z DEBUG [clojure-lsp.server:55] - [Trace - 2024-01-31T14:36:01.341Z] Sending notification '$/progress'
Params: {
"token" : "enable-progress",
"value" : {
"kind" : "report",
"message" : "Resolving config paths",
"percentage" : 15
}
}
2024-01-31T14:36:01.342Z DEBUG [clojure-lsp.server:55] - [Trace - 2024-01-31T14:36:01.341Z] Sending notification '$/progress'
Params: {
"token" : "enable-progress",
"value" : {
"kind" : "report",
"message" : "Analyzing project files",
"percentage" : 20
}
}
2024-01-31T14:36:01.342Z INFO [clojure-lsp.startup:75] - [Startup] Project only paths analyzed by clj-depend, took 0ms
2024-01-31T14:36:01.345Z DEBUG [clojure-lsp.server:55] - [Trace - 2024-01-31T14:36:01.345Z] Sending notification '$/progress'
Params: {
"token" : "enable-progress",
"value" : {
"kind" : "report",
"message" : "Analyzing project files",
"percentage" : 27
}
}
2024-01-31T14:36:01.350Z DEBUG [clojure-lsp.server:55] - [Trace - 2024-01-31T14:36:01.350Z] Sending notification '$/progress'
Params: {
"token" : "enable-progress",
"value" : {
"kind" : "report",
"message" : "Analyzing project files",
"percentage" : 34
}
}
2024-01-31T14:36:01.353Z DEBUG [clojure-lsp.server:55] - [Trace - 2024-01-31T14:36:01.353Z] Sending notification '$/progress'
Params: {
"token" : "enable-progress",
"value" : {
"kind" : "report",
"message" : "Analyzing project files",
"percentage" : 41
}
}
2024-01-31T14:36:01.354Z DEBUG [clojure-lsp.server:55] - [Trace - 2024-01-31T14:36:01.354Z] Sending notification '$/progress'
Params: {
"token" : "enable-progress",
"value" : {
"kind" : "report",
"message" : "Analyzing project files",
"percentage" : 48
}
}
2024-01-31T14:36:01.357Z DEBUG [clojure-lsp.server:55] - [Trace - 2024-01-31T14:36:01.357Z] Sending notification '$/progress'
Params: {
"token" : "enable-progress",
"value" : {
"kind" : "report",
"message" : "Analyzing project files",
"percentage" : 55
}
}
2024-01-31T14:36:01.357Z DEBUG [clojure-lsp.server:55] - [Trace - 2024-01-31T14:36:01.357Z] Sending notification '$/progress'
Params: {
"token" : "enable-progress",
"value" : {
"kind" : "report",
"message" : "Analyzing project files",
"percentage" : 62
}
}
2024-01-31T14:36:01.358Z DEBUG [clojure-lsp.server:55] - [Trace - 2024-01-31T14:36:01.358Z] Sending notification '$/progress'
Params: {
"token" : "enable-progress",
"value" : {
"kind" : "report",
"message" : "Analyzing project files",
"percentage" : 69
}
}
2024-01-31T14:36:01.359Z DEBUG [clojure-lsp.server:55] - [Trace - 2024-01-31T14:36:01.359Z] Sending notification '$/progress'
Params: {
"token" : "enable-progress",
"value" : {
"kind" : "report",
"message" : "Analyzing project files",
"percentage" : 76
}
}
2024-01-31T14:36:01.360Z DEBUG [clojure-lsp.server:55] - [Trace - 2024-01-31T14:36:01.360Z] Sending notification '$/progress'
Params: {
"token" : "enable-progress",
"value" : {
"kind" : "report",
"message" : "Analyzing project files",
"percentage" : 83
}
}
2024-01-31T14:36:01.361Z DEBUG [clojure-lsp.server:55] - [Trace - 2024-01-31T14:36:01.361Z] Sending notification '$/progress'
Params: {
"token" : "enable-progress",
"value" : {
"kind" : "report",
"message" : "Analyzing project files",
"percentage" : 90
}
}
2024-01-31T14:36:01.361Z DEBUG [clojure-lsp.server:55] - [Trace - 2024-01-31T14:36:01.361Z] Sending notification '$/progress'
Params: {
"token" : "enable-progress",
"value" : {
"kind" : "report",
"message" : "Analyzing project files",
"percentage" : 98
}
}
2024-01-31T14:36:01.380Z INFO [clojure-lsp.dep-graph:269] - :maintain-dep-graph 0ms
2024-01-31T14:36:01.389Z INFO [clojure-lsp.kondo:242] - Linting whole project for unused-public-var took 11ms
2024-01-31T14:36:01.389Z WARN [clojure-lsp.kondo:363] - Non-fatal error from clj-kondo: No configs copied.
2024-01-31T14:36:01.390Z INFO [clojure-lsp.startup:71] - [Startup] Project only paths analyzed by clj-kondo, took 49ms
2024-01-31T14:36:01.391Z INFO [clojure-lsp.dep-graph:269] - :maintain-dep-graph 0ms
2024-01-31T14:36:01.391Z DEBUG [clojure-lsp.server:55] - [Trace - 2024-01-31T14:36:01.391Z] Sending notification '$/progress'
Params: {
"token" : "enable-progress",
"value" : {
"kind" : "report",
"message" : "Project analyzed",
"percentage" : 99
}
}
2024-01-31T14:36:01.392Z INFO [clojure-lsp.handlers:192] - [Startup] Analyzing test paths for project root file:///Users/julienvincent/code/scratch/repl
2024-01-31T14:36:01.392Z DEBUG [clojure-lsp.server:55] - [Trace - 2024-01-31T14:36:01.392Z] Sending notification '$/progress'
Params: {
"token" : "enable-progress",
"value" : {
"kind" : "report",
"message" : "Fetching Clojuredocs"
}
}
2024-01-31T14:36:01.392Z INFO [clojure-lsp.handlers:165] - :initialize 609ms
2024-01-31T14:36:01.392Z INFO [clojure-lsp.feature.clojuredocs:21] - [Clojuredocs] Refreshing clojuredocs cache...
2024-01-31T14:36:01.392Z INFO [clojure-lsp.server:102] - :publish-diagnostics 0ms
2024-01-31T14:36:01.392Z INFO [clojure-lsp.server:102] - :publish-diagnostics 0ms
2024-01-31T14:36:01.392Z INFO [clojure-lsp.server:102] - :publish-diagnostics 0ms
2024-01-31T14:36:01.392Z INFO [clojure-lsp.server:102] - :publish-diagnostics 0ms
2024-01-31T14:36:01.393Z INFO [clojure-lsp.server:102] - :publish-diagnostics 0ms
2024-01-31T14:36:01.393Z INFO [clojure-lsp.server:102] - :publish-diagnostics 0ms
2024-01-31T14:36:01.393Z INFO [clojure-lsp.server:102] - :publish-diagnostics 0ms
2024-01-31T14:36:01.393Z INFO [clojure-lsp.server:508] - Initialized!
2024-01-31T14:36:01.393Z INFO [clojure-lsp.server:102] - :publish-diagnostics 0ms
2024-01-31T14:36:01.393Z INFO [clojure-lsp.server:102] - :publish-diagnostics 0ms
2024-01-31T14:36:01.393Z INFO [clojure-lsp.server:102] - :publish-diagnostics 0ms
2024-01-31T14:36:01.395Z INFO [clojure-lsp.dep-graph:269] - :maintain-dep-graph 0ms
2024-01-31T14:36:01.396Z WARN [clojure-lsp.kondo:363] - Non-fatal error from clj-kondo: No configs copied.
2024-01-31T14:36:01.396Z INFO [clojure-lsp.dep-graph:269] - :maintain-dep-graph 0ms
2024-01-31T14:36:01.396Z INFO [clojure-lsp.handlers:197] - :did-open 3ms
2024-01-31T14:36:01.396Z INFO [clojure-lsp.server:102] - :publish-diagnostics 0ms
2024-01-31T14:36:01.396Z INFO [clojure-lsp.server:102] - :publish-diagnostics 0ms
2024-01-31T14:36:01.397Z INFO [clojure-lsp.dep-graph:269] - :maintain-dep-graph 0ms
2024-01-31T14:36:01.398Z WARN [clojure-lsp.kondo:363] - Non-fatal error from clj-kondo: No configs copied.
2024-01-31T14:36:01.398Z INFO [clojure-lsp.dep-graph:269] - :maintain-dep-graph 0ms
2024-01-31T14:36:01.398Z INFO [clojure-lsp.handlers:197] - :did-open 2ms
2024-01-31T14:36:01.398Z INFO [clojure-lsp.handlers:502] - :semantic-tokens-full 0ms
2024-01-31T14:36:01.398Z INFO [clojure-lsp.handlers:502] - :semantic-tokens-full 0ms
2024-01-31T14:36:01.423Z INFO [clojure-lsp.server:102] - :publish-diagnostics 0ms
2024-01-31T14:36:02.432Z INFO [clojure-lsp.feature.clojuredocs:23] - [Clojuredocs] Refreshing clojuredocs cache took 1040ms.
2024-01-31T14:36:03.706Z INFO [clojure-lsp.db:77] - [DB] Reading transit analysis cache from /Users/julienvincent/.cache/clojure-lsp/db.transit.json db took 1273ms
2024-01-31T14:36:03.706Z INFO [clojure-lsp.feature.java-interop:271] - [Java] JDK source already present on global LSP cache dir.
2024-01-31T14:36:03.714Z INFO [clojure-lsp.dep-graph:269] - :maintain-dep-graph 5ms
2024-01-31T14:36:03.716Z INFO [clojure-lsp.feature.java-interop:312] - [Java] JDK source analysis cache loaded successfully.
2024-01-31T14:36:07.009Z INFO [clojure-lsp.handlers:302] - :document-highlight 0ms
from clojure-lsp.
@julienvincent I don't see client sending any textDocument/semanticTokens/full
requests, so that's probably the problem, I'd investigate if you have LSP semantic tokens enabled in your editor
from clojure-lsp.
Maybe this observation can help (with one small correction).
It's not about deps.edn file, if you copy it to somewhere in the :paths
semantic tokens starts working immediately. Any .edn
file stops rendering semantic tokens when it is located not in the :paths
of the project. For .clj
files all seems fine though.
Whenever I open non-path edn file I get this logs (clearing log file on each attempt):
2024-02-13T06:01:14.265Z INFO [clojure-lsp.handlers:302] - :document-highlight 0ms
2024-02-13T06:01:15.837Z INFO [clojure-lsp.dep-graph:269] - :maintain-dep-graph 0ms
2024-02-13T06:01:15.843Z WARN [clojure-lsp.kondo:363] - Non-fatal error from clj-kondo: No configs copied.
2024-02-13T06:01:15.843Z INFO [clojure-lsp.dep-graph:269] - :maintain-dep-graph 0ms
2024-02-13T06:01:15.843Z INFO [clojure-lsp.handlers:197] - :did-open 11ms
2024-02-13T06:01:15.843Z INFO [clojure-lsp.handlers:488] - :code-lens 0ms
2024-02-13T06:01:15.848Z INFO [clojure-lsp.handlers:302] - :document-highlight 0ms
2024-02-13T06:01:15.869Z INFO [clojure-lsp.handlers:502] - :semantic-tokens-full 0ms
2024-02-13T06:01:15.873Z INFO [clojure-lsp.server:102] - :publish-diagnostics 0ms
with no highlights.
When I open edn file in the :path
2024-02-13T06:02:21.130Z INFO [clojure-lsp.handlers:302] - :document-highlight 0ms
2024-02-13T06:02:24.774Z INFO [clojure-lsp.handlers:302] - :document-highlight 0ms
2024-02-13T06:02:29.730Z INFO [clojure-lsp.dep-graph:269] - :maintain-dep-graph 0ms
2024-02-13T06:02:29.736Z WARN [clojure-lsp.kondo:363] - Non-fatal error from clj-kondo: No configs copied.
2024-02-13T06:02:29.736Z INFO [clojure-lsp.dep-graph:269] - :maintain-dep-graph 0ms
2024-02-13T06:02:29.737Z INFO [clojure-lsp.handlers:197] - :did-open 12ms
2024-02-13T06:02:29.737Z INFO [clojure-lsp.handlers:488] - :code-lens 0ms
2024-02-13T06:02:29.742Z INFO [clojure-lsp.handlers:302] - :document-highlight 0ms
2024-02-13T06:02:29.763Z INFO [clojure-lsp.server:102] - :publish-diagnostics 0ms
2024-02-13T06:02:29.768Z INFO [clojure-lsp.handlers:502] - :semantic-tokens-full 1ms
highlights are shown.
from clojure-lsp.
@ericdallo Here are the logs produced when opening the same file in the same project with the same editor config with the only difference being that clojure-lsp is version 2023.08.06-00.28.06
:
Details
2024-02-13T10:25:39.991Z INFO [clojure-lsp.server:513] - Shutting down...
2024-02-13T10:25:39.994Z INFO [clojure-lsp.server:477] - Exiting...
2024-02-13T10:25:41.073Z INFO [clojure-lsp.db:77] - [DB] Reading transit analysis cache from /Users/julienvincent/code/scratch/repl/.lsp/.cache/db.transit.json db took 559ms
2024-02-13T10:25:41.128Z INFO [clojure-lsp.dep-graph:269] - :maintain-dep-graph 15ms
2024-02-13T10:25:41.241Z INFO [clojure-lsp.startup:225] - [Startup] Using cached classpath #{"/Users/julienvincent/.m2/repository/io/opentelemetry/instrumentation/opentelemetry-resources/1.27.0-alpha/opentelemetry-resources-1.27.0-alpha.jar" "/Users/julienvincent/.m2/repository/transit-engineering/gatekeeper-client/2.1.3.0/gatekeeper-client-2.1.3.0.jar" "/Users/julienvincent/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib/1.6.20/kotlin-stdlib-1.6.20.jar" "/Users/julienvincent/.m2/repository/io/opentelemetry/opentelemetry-sdk-common/1.29.0/opentelemetry-sdk-common-1.29.0.jar" "/Users/julienvincent/.m2/repository/io/opentelemetry/opentelemetry-api/1.29.0/opentelemetry-api-1.29.0.jar" "/Users/julienvincent/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.15.2/jackson-databind-2.15.2.jar" "/Users/julienvincent/.m2/repository/org/mongodb/bson/4.11.1/bson-4.11.1.jar" "/Users/julienvincent/.m2/repository/borkdude/edamame/1.3.23/edamame-1.3.23.jar" "/Users/julienvincent/.m2/repository/org/apache/httpcomponents/httpcore-nio/4.4.10/httpcore-nio-4.4.10.jar" "/Users/julienvincent/.m2/repository/tick/tick/0.7.5/tick-0.7.5.jar" "/Users/julienvincent/.m2/repository/io/opentelemetry/opentelemetry-exporter-otlp-common/1.29.0/opentelemetry-exporter-otlp-common-1.29.0.jar" "/Users/julienvincent/.m2/repository/org/apache/commons/commons-pool2/2.12.0/commons-pool2-2.12.0.jar" "/Users/julienvincent/.m2/repository/com/github/steffan-westcott/clj-otel-instrumentation-resources/0.2.3/clj-otel-instrumentation-resources-0.2.3.jar" "/Users/julienvincent/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.15.2/jackson-datatype-jsr310-2.15.2.jar" "/Users/julienvincent/.m2/repository/http-kit/http-kit/2.7.0/http-kit-2.7.0.jar" "/Users/julienvincent/.m2/repository/transit-engineering/opx/0.0.1.0/opx-0.0.1.0.jar" "/Users/julienvincent/.m2/repository/org/slf4j/log4j-over-slf4j/1.7.36/log4j-over-slf4j-1.7.36.jar" "/Users/julienvincent/.m2/repository/transit-engineering/op.clj/1.82.0.3/op.clj-1.82.0.3.jar" "/Users/julienvincent/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.15.2/jackson-core-2.15.2.jar" "/Users/julienvincent/.m2/repository/com/fzakaria/slf4j-timbre/0.4.0/slf4j-timbre-0.4.0.jar" "/Users/julienvincent/.m2/repository/com/github/strojure/zmap/1.3.26/zmap-1.3.26.jar" "/Users/julienvincent/.m2/repository/com/taoensso/nippy/3.3.0/nippy-3.3.0.jar" "/Users/julienvincent/.m2/repository/transit-platform/kid.clj/1.77.1/kid.clj-1.77.1.jar" "/Users/julienvincent/.m2/repository/org/codehaus/mojo/animal-sniffer-annotations/1.21/animal-sniffer-annotations-1.21.jar" "/Users/julienvincent/.m2/repository/io/opentelemetry/opentelemetry-semconv/1.29.0-alpha/opentelemetry-semconv-1.29.0-alpha.jar" "/Users/julienvincent/.m2/repository/com/taoensso/timbre/6.3.1/timbre-6.3.1.jar" "/Users/julienvincent/.m2/repository/transit-engineering/accounts-client/4.0.0.0/accounts-client-4.0.0.0.jar" "/Users/julienvincent/.m2/repository/com/widdindustries/time-literals/0.1.10/time-literals-0.1.10.jar" "/Users/julienvincent/.m2/repository/metosin/malli/0.13.0/malli-0.13.0.jar" "/Users/julienvincent/.m2/repository/org/jetbrains/annotations/13.0/annotations-13.0.jar" "/Users/julienvincent/.m2/repository/com/taoensso/carmine/3.3.2/carmine-3.3.2.jar" "/Users/julienvincent/.m2/repository/com/google/android/annotations/4.1.1.4/annotations-4.1.1.4.jar" "/Users/julienvincent/.m2/repository/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar" "/Users/julienvincent/.m2/repository/kepler16/glitch.clj/3.0.0.0/glitch.clj-3.0.0.0.jar" "/Users/julienvincent/.m2/repository/io/opentelemetry/opentelemetry-sdk-logs/1.29.0/opentelemetry-sdk-logs-1.29.0.jar" "/Users/julienvincent/.m2/repository/org/clojure/data.csv/1.0.1/data.csv-1.0.1.jar" "/Users/julienvincent/.m2/repository/clj-tuple/clj-tuple/0.2.2/clj-tuple-0.2.2.jar" "/Users/julienvincent/.m2/repository/potemkin/potemkin/0.4.5/potemkin-0.4.5.jar" "/Users/julienvincent/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-common/1.6.20/kotlin-stdlib-common-1.6.20.jar" "/Users/julienvincent/.m2/repository/io/opentelemetry/opentelemetry-exporter-otlp/1.29.0/opentelemetry-exporter-otlp-1.29.0.jar" "/Users/julienvincent/.m2/repository/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar" "/Users/julienvincent/.m2/repository/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar" "/Users/julienvincent/.m2/repository/transit-engineering/schema/0.2.0.3/schema-0.2.0.3.jar" "/Users/julienvincent/.m2/repository/org/apache/httpcomponents/httpclient-cache/4.5.13/httpclient-cache-4.5.13.jar" "/Users/julienvincent/.m2/repository/io/opentelemetry/opentelemetry-sdk-trace/1.29.0/opentelemetry-sdk-trace-1.29.0.jar" "/Users/julienvincent/.m2/repository/io/grpc/grpc-context/1.52.1/grpc-context-1.52.1.jar" "/Users/julienvincent/.m2/repository/io/sentry/sentry/6.33.1/sentry-6.33.1.jar" "/Users/julienvincent/.m2/repository/io/opentelemetry/opentelemetry-sdk-extension-autoconfigure-spi/1.29.0/opentelemetry-sdk-extension-autoconfigure-spi-1.29.0.jar" "/Users/julienvincent/.m2/repository/mvxcvi/alphabase/2.1.1/alphabase-2.1.1.jar" "/Users/julienvincent/.m2/repository/mvxcvi/arrangement/2.1.0/arrangement-2.1.0.jar" "/Users/julienvincent/.m2/repository/io/opentelemetry/opentelemetry-sdk/1.29.0/opentelemetry-sdk-1.29.0.jar" "src" "/Users/julienvincent/.m2/repository/io/grpc/grpc-protobuf-lite/1.52.1/grpc-protobuf-lite-1.52.1.jar" "/Users/julienvincent/.m2/repository/io/perfmark/perfmark-api/0.25.0/perfmark-api-0.25.0.jar" "/Users/julienvincent/.m2/repository/com/google/errorprone/error_prone_annotations/2.14.0/error_prone_annotations-2.14.0.jar" "/Users/julienvincent/.m2/repository/org/clojure/spec.alpha/0.3.218/spec.alpha-0.3.218.jar" "/Users/julienvincent/.m2/repository/io/aviso/pretty/1.4.4/pretty-1.4.4.jar" "/Users/julienvincent/.m2/repository/com/github/rosejn/msgpack-cljc/2.0.359/msgpack-cljc-2.0.359.jar" "/Users/julienvincent/.m2/repository/io/opentelemetry/opentelemetry-exporter-sender-okhttp/1.29.0/opentelemetry-exporter-sender-okhttp-1.29.0.jar" "/Users/julienvincent/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.15.2/jackson-annotations-2.15.2.jar" "/Users/julienvincent/.m2/repository/com/widdindustries/cljs.java-time/0.1.20/cljs.java-time-0.1.20.jar" "/Users/julienvincent/.m2/repository/io/opentelemetry/instrumentation/opentelemetry-instrumentation-api-semconv/1.29.0-alpha/opentelemetry-instrumentation-api-semconv-1.29.0-alpha.jar" "/Users/julienvincent/.m2/repository/com/fasterxml/uuid/java-uuid-generator/4.1.0/java-uuid-generator-4.1.0.jar" "/Users/julienvincent/.m2/repository/mongo-driver-3/mongo-driver-3/0.7.0/mongo-driver-3-0.7.0.jar" "/Users/julienvincent/.m2/repository/io/opentelemetry/opentelemetry-extension-incubator/1.29.0-alpha/opentelemetry-extension-incubator-1.29.0-alpha.jar" "/Users/julienvincent/.m2/repository/io/grpc/grpc-protobuf/1.52.1/grpc-protobuf-1.52.1.jar" "/Users/julienvincent/.m2/repository/com/squareup/okio/okio-jvm/3.2.0/okio-jvm-3.2.0.jar" "/Users/julienvincent/.m2/repository/org/slf4j/slf4j-api/2.0.9/slf4j-api-2.0.9.jar" "/Users/julienvincent/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.6.20/kotlin-stdlib-jdk8-1.6.20.jar" "/Users/julienvincent/.m2/repository/org/slf4j/jcl-over-slf4j/2.0.9/jcl-over-slf4j-2.0.9.jar" "/Users/julienvincent/.m2/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar" "/Users/julienvincent/.m2/repository/io/grpc/grpc-core/1.52.1/grpc-core-1.52.1.jar" "/Users/julienvincent/.m2/repository/com/widdindustries/cljc.java-time/0.1.21/cljc.java-time-0.1.21.jar" "/Users/julienvincent/.m2/repository/org/slf4j/osgi-over-slf4j/1.7.36/osgi-over-slf4j-1.7.36.jar" "/Users/julienvincent/.m2/repository/org/mongodb/mongodb-driver-sync/4.11.1/mongodb-driver-sync-4.11.1.jar" "/Users/julienvincent/.m2/repository/com/google/code/gson/gson/2.9.0/gson-2.9.0.jar" "/Users/julienvincent/.m2/repository/io/grpc/grpc-netty-shaded/1.52.1/grpc-netty-shaded-1.52.1.jar" "/Users/julienvincent/.m2/repository/commons-codec/commons-codec/1.16.0/commons-codec-1.16.0.jar" "/Users/julienvincent/.m2/repository/org/mongodb/bson-record-codec/4.11.1/bson-record-codec-4.11.1.jar" "/Users/julienvincent/.m2/repository/org/clojure/tools.logging/1.2.4/tools.logging-1.2.4.jar" "/Users/julienvincent/.m2/repository/io/opentelemetry/instrumentation/opentelemetry-mongo-3.1/1.29.0-alpha/opentelemetry-mongo-3.1-1.29.0-alpha.jar" "/Users/julienvincent/.m2/repository/transit-engineering/mongo.clj/1.85.0.8/mongo.clj-1.85.0.8.jar" "/Users/julienvincent/.m2/repository/org/clojure/clojure/1.11.1/clojure-1.11.1.jar" "/Users/julienvincent/.m2/repository/camel-snake-kebab/camel-snake-kebab/0.4.3/camel-snake-kebab-0.4.3.jar" "/Users/julienvincent/.m2/repository/org/iq80/snappy/snappy/0.4/snappy-0.4.jar" "/Users/julienvincent/.m2/repository/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar" "/Users/julienvincent/.m2/repository/com/taoensso/encore/3.68.0/encore-3.68.0.jar" "/Users/julienvincent/.m2/repository/transit-engineering/kql/0.3.0.3/kql-0.3.0.3.jar" "/Users/julienvincent/.m2/repository/com/squareup/okhttp3/okhttp/4.11.0/okhttp-4.11.0.jar" "/Users/julienvincent/.m2/repository/org/clojure/core.rrb-vector/0.1.2/core.rrb-vector-0.1.2.jar" "/Users/julienvincent/.m2/repository/funcool/promesa/11.0.678/promesa-11.0.678.jar" "/Users/julienvincent/.m2/repository/org/clojure/core.specs.alpha/0.2.62/core.specs.alpha-0.2.62.jar" "/Users/julienvincent/.m2/repository/com/google/api/grpc/proto-google-common-protos/2.9.0/proto-google-common-protos-2.9.0.jar" "/Users/julienvincent/.m2/repository/com/google/protobuf/protobuf-java/3.21.7/protobuf-java-3.21.7.jar" "/Users/julienvincent/.m2/repository/org/lz4/lz4-java/1.8.0/lz4-java-1.8.0.jar" "/Users/julienvincent/.m2/repository/io/opentelemetry/instrumentation/opentelemetry-instrumentation-api/1.29.0/opentelemetry-instrumentation-api-1.29.0.jar" "/Users/julienvincent/.m2/repository/com/taoensso/truss/1.11.0/truss-1.11.0.jar" "/Users/julienvincent/.m2/repository/org/mongodb/mongodb-driver-core/4.11.1/mongodb-driver-core-4.11.1.jar" "/Users/julienvincent/.m2/repository/org/msgpack/msgpack-core/0.9.6/msgpack-core-0.9.6.jar" "/Users/julienvincent/.m2/repository/io/opentelemetry/opentelemetry-api-events/1.29.0-alpha/opentelemetry-api-events-1.29.0-alpha.jar" "/Users/julienvincent/.m2/repository/commons-io/commons-io/2.8.0/commons-io-2.8.0.jar" "/Users/julienvincent/.m2/repository/com/squareup/okio/okio/3.2.0/okio-3.2.0.jar" "/Users/julienvincent/.m2/repository/metosin/jsonista/0.3.8/jsonista-0.3.8.jar" "/Users/julienvincent/.m2/repository/io/opentelemetry/opentelemetry-sdk-metrics/1.29.0/opentelemetry-sdk-metrics-1.29.0.jar" "/Users/julienvincent/.m2/repository/transit-engineering/telemetry.clj/2.2.3.0/telemetry.clj-2.2.3.0.jar" "/Users/julienvincent/.m2/repository/riddley/riddley/0.1.12/riddley-0.1.12.jar" "/Users/julienvincent/.m2/repository/borkdude/dynaload/0.3.5/dynaload-0.3.5.jar" "/Users/julienvincent/.m2/repository/io/grpc/grpc-stub/1.52.1/grpc-stub-1.52.1.jar" "/Users/julienvincent/.m2/repository/io/opentelemetry/opentelemetry-exporter-common/1.29.0/opentelemetry-exporter-common-1.29.0.jar" "/Users/julienvincent/.m2/repository/com/github/steffan-westcott/clj-otel-api/0.2.3/clj-otel-api-0.2.3.jar" "/Users/julienvincent/.m2/repository/org/slf4j/jul-to-slf4j/1.7.36/jul-to-slf4j-1.7.36.jar" "/Users/julienvincent/.m2/repository/fipp/fipp/0.6.26/fipp-0.6.26.jar" "/Users/julienvincent/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.6.20/kotlin-stdlib-jdk7-1.6.20.jar" "/Users/julienvincent/.m2/repository/io/opentelemetry/opentelemetry-context/1.29.0/opentelemetry-context-1.29.0.jar" "/Users/julienvincent/.m2/repository/org/apache/httpcomponents/httpcore/4.4.14/httpcore-4.4.14.jar" "/Users/julienvincent/.m2/repository/org/tukaani/xz/1.9/xz-1.9.jar" "/Users/julienvincent/.m2/repository/com/taoensso/tufte/2.6.3/tufte-2.6.3.jar" "/Users/julienvincent/.m2/repository/clj-http/clj-http/3.12.3/clj-http-3.12.3.jar" "/Users/julienvincent/.m2/repository/com/google/guava/guava/31.1-android/guava-31.1-android.jar" "/Users/julienvincent/.m2/repository/org/apache/httpcomponents/httpmime/4.5.13/httpmime-4.5.13.jar" "/Users/julienvincent/.m2/repository/org/clojure/test.check/1.1.1/test.check-1.1.1.jar" "/Users/julienvincent/.m2/repository/com/github/steffan-westcott/clj-otel-sdk/0.2.3/clj-otel-sdk-0.2.3.jar" "/Users/julienvincent/.m2/repository/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar" "/Users/julienvincent/.m2/repository/org/clojure/tools.reader/1.3.6/tools.reader-1.3.6.jar" "/Users/julienvincent/.m2/repository/org/checkerframework/checker-qual/3.12.0/checker-qual-3.12.0.jar" "resources" "test" "/Users/julienvincent/.m2/repository/org/apache/httpcomponents/httpasyncclient/4.1.4/httpasyncclient-4.1.4.jar" "/Users/julienvincent/.m2/repository/babashka/fs/0.4.19/fs-0.4.19.jar" "/Users/julienvincent/.m2/repository/slingshot/slingshot/0.12.2/slingshot-0.12.2.jar" "/Users/julienvincent/.m2/repository/io/grpc/grpc-api/1.52.1/grpc-api-1.52.1.jar"}
2024-02-13T10:25:41.242Z INFO [clojure-lsp.source-paths:85] - [Startup] Using source-paths from classpath: ["/Users/julienvincent/code/scratch/repl/src" "/Users/julienvincent/code/scratch/repl/resources" "/Users/julienvincent/code/scratch/repl/test"]
2024-02-13T10:25:41.242Z INFO [clojure-lsp.startup:113] - Copying kondo configs from classpath to project if any...
2024-02-13T10:25:41.299Z WARN [clojure-lsp.kondo:355] - Non-fatal error from clj-kondo: Configs copied:
- .clj-kondo/babashka/fs
- .clj-kondo/com.github.steffan-westcott/clj-otel-api
- .clj-kondo/config.edn
- .clj-kondo/funcool/promesa
- .clj-kondo/hooks/transit
- .clj-kondo/http-kit/http-kit
- .clj-kondo/metosin/malli
- .clj-kondo/taoensso/encore
2024-02-13T10:25:41.299Z INFO [clojure-lsp.startup:115] - Copied kondo configs, took 57ms secs.
2024-02-13T10:25:41.299Z INFO [clojure-lsp.startup:261] - [Startup] Analyzing source paths for project root /Users/julienvincent/code/scratch/repl
2024-02-13T10:25:41.299Z INFO [clojure-lsp.startup:74] - [Startup] Project only paths analyzed by clj-depend, took 0ms
2024-02-13T10:25:41.359Z INFO [clojure-lsp.dep-graph:269] - :maintain-dep-graph 0ms
2024-02-13T10:25:41.360Z INFO [clojure-lsp.kondo:230] - Linting whole project for unused-public-var took 4ms
2024-02-13T10:25:41.360Z WARN [clojure-lsp.kondo:355] - Non-fatal error from clj-kondo: No configs copied.
2024-02-13T10:25:41.362Z INFO [clojure-lsp.startup:70] - [Startup] Project only paths analyzed by clj-kondo, took 63ms
2024-02-13T10:25:41.363Z INFO [clojure-lsp.dep-graph:269] - :maintain-dep-graph 0ms
2024-02-13T10:25:41.364Z INFO [clojure-lsp.handlers:192] - [Startup] Analyzing test paths for project root file:///Users/julienvincent/code/scratch/repl
2024-02-13T10:25:41.364Z INFO [clojure-lsp.feature.clojuredocs:21] - [Clojuredocs] Refreshing clojuredocs cache...
2024-02-13T10:25:41.364Z INFO [clojure-lsp.handlers:165] - :initialize 852ms
2024-02-13T10:25:41.364Z INFO [clojure-lsp.server:102] - :publish-diagnostics 0ms
2024-02-13T10:25:41.364Z INFO [clojure-lsp.server:102] - :publish-diagnostics 0ms
2024-02-13T10:25:41.364Z INFO [clojure-lsp.server:102] - :publish-diagnostics 0ms
2024-02-13T10:25:41.364Z INFO [clojure-lsp.server:102] - :publish-diagnostics 0ms
2024-02-13T10:25:41.365Z INFO [clojure-lsp.server:102] - :publish-diagnostics 0ms
2024-02-13T10:25:41.365Z INFO [clojure-lsp.server:102] - :publish-diagnostics 0ms
2024-02-13T10:25:41.369Z INFO [clojure-lsp.server:102] - :publish-diagnostics 4ms
2024-02-13T10:25:41.369Z INFO [clojure-lsp.server:102] - :publish-diagnostics 0ms
2024-02-13T10:25:41.369Z INFO [clojure-lsp.server:102] - :publish-diagnostics 0ms
2024-02-13T10:25:41.369Z INFO [clojure-lsp.server:102] - :publish-diagnostics 0ms
2024-02-13T10:25:41.369Z INFO [clojure-lsp.server:102] - :publish-diagnostics 0ms
2024-02-13T10:25:41.369Z INFO [clojure-lsp.server:102] - :publish-diagnostics 0ms
2024-02-13T10:25:41.370Z INFO [clojure-lsp.server:505] - Initialized!
2024-02-13T10:25:41.372Z INFO [clojure-lsp.dep-graph:269] - :maintain-dep-graph 0ms
2024-02-13T10:25:41.373Z WARN [clojure-lsp.kondo:355] - Non-fatal error from clj-kondo: No configs copied.
2024-02-13T10:25:41.373Z INFO [clojure-lsp.dep-graph:269] - :maintain-dep-graph 0ms
2024-02-13T10:25:41.373Z INFO [clojure-lsp.handlers:197] - :did-open 4ms
2024-02-13T10:25:41.374Z INFO [clojure-lsp.dep-graph:269] - :maintain-dep-graph 0ms
2024-02-13T10:25:41.375Z WARN [clojure-lsp.kondo:355] - Non-fatal error from clj-kondo: No configs copied.
2024-02-13T10:25:41.375Z INFO [clojure-lsp.dep-graph:269] - :maintain-dep-graph 0ms
2024-02-13T10:25:41.375Z INFO [clojure-lsp.handlers:197] - :did-open 2ms
2024-02-13T10:25:41.375Z INFO [clojure-lsp.server:102] - :publish-diagnostics 0ms
2024-02-13T10:25:41.375Z INFO [clojure-lsp.server:102] - :publish-diagnostics 0ms
2024-02-13T10:25:41.376Z INFO [clojure-lsp.handlers:501] - :semantic-tokens-full 0ms
2024-02-13T10:25:41.376Z INFO [clojure-lsp.handlers:501] - :semantic-tokens-full 0ms
2024-02-13T10:25:41.702Z INFO [clojure-lsp.feature.clojuredocs:23] - [Clojuredocs] Refreshing clojuredocs cache took 338ms.
2024-02-13T10:25:43.538Z INFO [clojure-lsp.db:77] - [DB] Reading transit analysis cache from /Users/julienvincent/.cache/clojure-lsp/db.transit.json db took 1836ms
2024-02-13T10:25:43.539Z INFO [clojure-lsp.feature.java-interop:271] - [Java] JDK source already present on global LSP cache dir.
2024-02-13T10:25:43.548Z INFO [clojure-lsp.dep-graph:269] - :maintain-dep-graph 7ms
2024-02-13T10:25:43.550Z INFO [clojure-lsp.feature.java-interop:312] - [Java] JDK source analysis cache loaded successfully.
from clojure-lsp.
@armed are you facing that on vim as well? I can't repro this with vscode and Emacs so that's what makes me believe it's a vim client issue
from clojure-lsp.
@julienvincent that's server logs (clojure-lsp ones) which is helpful to debug exceptions and other things on server side, but this issue require us to check the JSON LSP logs between client and server which is detailed here, every LSP client (editor) has that, if you find how to get on vim side, please LMK so we can update that docs mentioning that as well
from clojure-lsp.
@ericdallo right, I completely forgot about that logs. Here is nvim LSP client<->server logs.
for root deps.edn
:
[DEBUG][2024-02-16 13:12:49] ...m/lsp/client.lua:565 "LSP[clojure_lsp]" "client.request" 1 "textDocument/documentHighlight" { position = { character = 0, line = 0 }, textDocument = { uri = "file:///Users/armed/Developer/lol/deps.edn" }} <function 1> 3
[DEBUG][2024-02-16 13:12:49] .../vim/lsp/rpc.lua:282 "rpc.send" { id = 560, jsonrpc = "2.0", method = "textDocument/documentHighlight", params = { position = { character = 0, line = 0 }, textDocument = { uri = "file:///Users/armed/Developer/lol/deps.edn" } }}
[DEBUG][2024-02-16 13:12:49] ...m/lsp/client.lua:565 "LSP[clojure_lsp]" "client.request" 1 "textDocument/codeLens" { textDocument = { uri = "file://" }} <function 1> 246
[DEBUG][2024-02-16 13:12:49] .../vim/lsp/rpc.lua:282 "rpc.send" { id = 561, jsonrpc = "2.0", method = "textDocument/codeLens", params = { textDocument = { uri = "file://" } }}
[DEBUG][2024-02-16 13:12:49] .../vim/lsp/rpc.lua:404 "rpc.receive" { id = 560, jsonrpc = "2.0", result = {}}
[DEBUG][2024-02-16 13:12:49] .../vim/lsp/rpc.lua:404 "rpc.receive" { error = { code = -32603, data = { id = 561, method = "textDocument/codeLens" }, message = "Internal error" }, id = 561, jsonrpc = "2.0"}
[ERROR][2024-02-16 13:12:49] ...lsp/codelens.lua:265 "codelens" { code = -32603, data = { id = 561, method = "textDocument/codeLens" }, message = "Internal error", <metatable> = { __tostring = <function 1> }}
[DEBUG][2024-02-16 13:12:49] ...m/lsp/client.lua:565 "LSP[clojure_lsp]" "client.request" 1 "textDocument/documentHighlight" { position = { character = 0, line = 0 }, textDocument = { uri = "file:///Users/armed/Developer/lol/deps.edn" }} <function 1> 3
[DEBUG][2024-02-16 13:12:49] .../vim/lsp/rpc.lua:282 "rpc.send" { id = 562, jsonrpc = "2.0", method = "textDocument/documentHighlight", params = { position = { character = 0, line = 0 }, textDocument = { uri = "file:///Users/armed/Developer/lol/deps.edn" } }}
[DEBUG][2024-02-16 13:12:49] .../vim/lsp/rpc.lua:282 "rpc.send" { jsonrpc = "2.0", method = "textDocument/didClose", params = { textDocument = { uri = "file:///Users/armed/Developer/lol/deps.edn" } }}
[DEBUG][2024-02-16 13:12:49] .../vim/lsp/rpc.lua:404 "rpc.receive" { id = 562, jsonrpc = "2.0", result = {}}
[DEBUG][2024-02-16 13:12:49] .../vim/lsp/rpc.lua:282 "rpc.send" { jsonrpc = "2.0", method = "textDocument/didOpen", params = { textDocument = { languageId = "clojure", text = '{:mvn/repos {"example" {:url "https://example.repo.com"} }\n :paths ["src"]\n :deps {metosin/malli {:mvn/version "0.14.0"}\n my/library {:local/root "../my-library"}}}\n', uri = "file:///Users/armed/Developer/lol/deps.edn", version = 0 } }}
[DEBUG][2024-02-16 13:12:49] ...m/lsp/client.lua:565 "LSP[clojure_lsp]" "client.request" 1 "textDocument/codeLens" { textDocument = { uri = "file:///Users/armed/Developer/lol/deps.edn" }}<function 1> 246
[DEBUG][2024-02-16 13:12:49] .../vim/lsp/rpc.lua:282 "rpc.send" { id = 563, jsonrpc = "2.0", method = "textDocument/codeLens", params = { textDocument = { uri = "file:///Users/armed/Developer/lol/deps.edn" } }}
[DEBUG][2024-02-16 13:12:49] .../vim/lsp/rpc.lua:404 "rpc.receive" { id = 563, jsonrpc = "2.0", result = {}}
[DEBUG][2024-02-16 13:12:49] .../vim/lsp/rpc.lua:404 "rpc.receive" { jsonrpc = "2.0", method = "textDocument/publishDiagnostics", params = { diagnostics = {}, uri = "file:///Users/armed/Developer/lol/deps.edn" }}
[DEBUG][2024-02-16 13:12:49] ...m/lsp/client.lua:565 "LSP[clojure_lsp]" "client.request" 1 "textDocument/semanticTokens/full" { textDocument = { uri = "file:///Users/armed/Developer/lol/deps.edn" }} <function 1> 3
[DEBUG][2024-02-16 13:12:49] .../vim/lsp/rpc.lua:282 "rpc.send" { id = 564, jsonrpc = "2.0", method = "textDocument/semanticTokens/full", params = { textDocument = { uri = "file:///Users/armed/Developer/lol/deps.edn" } }}
[DEBUG][2024-02-16 13:12:49] .../vim/lsp/rpc.lua:404 "rpc.receive" { id = 564, jsonrpc = "2.0", result = { data = {} }}
[TRACE][2024-02-16 13:12:49] ...m/lsp/client.lua:880 "notification" "textDocument/publishDiagnostics" { diagnostics = {}, uri = "file:///Users/armed/Developer/lol/deps.edn"}
for deps.edn
in the src
folder:
[DEBUG][2024-02-16 13:14:48] .../vim/lsp/rpc.lua:282 "rpc.send" { id = 577, jsonrpc = "2.0", method = "textDocument/codeLens", params = { textDocument = { uri = "file:///Users/armed/Developer/lol/src/deps.edn" } }}
[DEBUG][2024-02-16 13:14:48] .../vim/lsp/rpc.lua:404 "rpc.receive" { id = 577, jsonrpc = "2.0", result = {}}
[DEBUG][2024-02-16 13:14:48] ...m/lsp/client.lua:565 "LSP[clojure_lsp]" "client.request" 1 "textDocument/semanticTokens/full" { textDocument = { uri = "file:///Users/armed/Developer/lol/src/deps.edn" }} <function 1> 246
[DEBUG][2024-02-16 13:14:48] .../vim/lsp/rpc.lua:282 "rpc.send" { id = 578, jsonrpc = "2.0", method = "textDocument/semanticTokens/full", params = { textDocument = { uri = "file:///Users/armed/Developer/lol/src/deps.edn" } }}
[DEBUG][2024-02-16 13:14:48] .../vim/lsp/rpc.lua:404 "rpc.receive" { id = 578, jsonrpc = "2.0", result = { data = { 0, 2, 3, 1, 0, 0, 3, 1, 8, 0, 0, 1, 5, 4, 0, 0, 19, 3, 4, 0, 1, 2, 5, 4, 0, 1, 2, 4, 4, 0, 0, 22, 3, 1, 0, 0, 3, 1, 8, 0, 0, 1, 7, 4, 0, 1, 21, 5, 1, 0, 0, 5, 1, 8, 0, 0, 1, 4, 4, 0 } }}
[DEBUG][2024-02-16 13:14:48] .../vim/lsp/rpc.lua:404 "rpc.receive" { jsonrpc = "2.0", method = "textDocument/publishDiagnostics", params = { diagnostics = {}, uri = "file:///Users/armed/Developer/lol/src/deps.edn" }}
[TRACE][2024-02-16 13:14:48] ...m/lsp/client.lua:880 "notification" "textDocument/publishDiagnostics" { diagnostics = {}, uri = "file:///Users/armed/Developer/lol/src/deps.edn"}
it's a sample project with sigle deps.edn
{:mvn/repos {"example" {:url "https://example.repo.com"} }
:paths ["src"]
:deps {metosin/malli {:mvn/version "0.14.0"}
my/library {:local/root "../my-library"}}}
I believe the interesting parts are last with semanticTokens method. I can see that in the second case (src folder) we have a non empty data
, which contains semantic tokens coords.
from clojure-lsp.
@armed that's weird, I'm seeing some internal error messages for the root deps.edn, would you mind create a public repo with that sample please so I can try too?
from clojure-lsp.
@ericdallo sure: https://github.com/armed/clojure-lsp-1759-repro
from clojure-lsp.
@armed I think I managed to repro with emacs, but since clojure-mode has a default syntax hightlight, the colors were being applied so that's why other editors didn't notice.
Indeed clojure-lsp is not returning elements for the root deps.edn but for the other deps.edn yes, I'll take a closer look
from clojure-lsp.
One thing I noticed is that if I manually edit the root deps.edn then the elements become available, does that work for you too @armed ?
from clojure-lsp.
@ericdallo Not sure about @armed but that doesn't work for me.
from clojure-lsp.
Cool! Thanks for fixing <3
from clojure-lsp.
@ericdallo I can confirm that this is fixed for deps.edn files using the latest release. But now that I am running the latest release I am seeing similar issues with other files:
-
If I have some project with .edn config files that are outside of the configured project class-path then the .edn files do not get syntax highlighting. This is a bit annoying.
-
If I do something like
go-to-definition
on something that resolves to an external dependency then I again have no syntax highlighting for the keywords defined in the dependency. I do a lot of source-code reading for code in dependencies and I would rather have the syntax highlighting than improved performance.
Could this behaviour of excluding highlighting for external keywords be made configurable? I would rather leave it on.
Maybe I should open a new issue for this?
from clojure-lsp.
yeah, it's not easy to make a flag for that, the ideal would be to fix it or support it somehow, needs more thought on that, please open a new issue
from clojure-lsp.
Related Issues (20)
- False positive: unused-public-var with #(fn) and macroexpand hook HOT 4
- Help to consistently apply namespace aliases. HOT 2
- JetBrains Exception when attemping to refactor/rename a file HOT 1
- Code Action "Add require" for namespaced keywords HOT 1
- CLI format is different than run as an alias HOT 2
- False positive: Unused public var 'clojure-sample.component-example/CircuitBreaker'
- Exception on workspace/didChangeConfiguration messages HOT 3
- Add keyword definitions (reg-...) to :clojure/workspace/projectTree/nodes HOT 7
- Adding require command fails for requires without alias HOT 1
- Rename namespace alias with API / CLI HOT 3
- Alias code action "Add require ... x 1" instead of real count HOT 1
- Renaming of function, when done twice, loses track of change HOT 3
- Creating a new `.clj` file in eglot takes a long time HOT 1
- Enable "find references" for quoted qualified symbols HOT 3
- rename ns picks wrong source-path
- Add "Replace full qualified ns with alias" feature
- Allow reusing of another functions `:doc` and `:arglists` HOT 5
- Display fully-qualified function name on textDocument/signatureHelp
- Creating a new Clojure file with æ/ø/å in the filename breaks `workspace/willRenameFiles` HOT 1
- Allow disabling external keyword exclusions
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from clojure-lsp.