clojure-lsp / clojure-lsp

Clojure & ClojureScript Language Server (LSP) implementation

Home Page:https://clojure-lsp.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Deps.edn files are no longer colorized correctly.

julienvincent opened this issue · comments

Describe the bug

Any version after 2023.08.06-00.28.06 breaks deps.edn colorization/tokenization. This only seems to affect deps.edn files specifically - other arbitrary .edn files work normally.

Version 2023.08.06-00.28.06:

image

Anything > 2023.08.06-00.28.06:

image

To Reproduce

Install any clojure-lsp version > 2023.08.06-00.28.06 and open a deps.edn project/file in your editor.

Same, also using Neovim 0.9.5

@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.

@Kaspazza What do you mean run a "clojure-mode" command?

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

@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.

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 clojure-lsp@2023.08.06-00.28.06 and the problem goes away.

If you can suggest a better way to try reproduce let me know I'd be happy to try.

@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.

@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

@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

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.

@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.

@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

@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

@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.

@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?

@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

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 ?

@ericdallo Not sure about @armed but that doesn't work for me.

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

It should be fixed on master/nightly build!

Cool! Thanks for fixing <3