lsp 2025-01-13

i've started a new job that uses a monorepo. they have a root project.clj that merely holds the :repositories and :managed-dependencies, while each directory has a project-specific project.clj that uses :parent-project {:path "../project.clj" :inherit [:repositories :managed-dependencies]}. clojure-lsp is struggling to understand that i'm opening a specific project, and doesn't build the classpath correctly. running lein classpath in each project directory displays the correct classpath, and clj-kondo --lint $(lein classpath) seems to work correctly. i've never worked in an environment like this, so how do i get clojure-lsp to understand?

my suggestion would be to open the monorepo root, where things should work as expected

but if lein classpath works, I can't see why wouldn't work as well

is there a way to debug this?

i thought the parent stuff was built-in but it's actually from this plugin https://github.com/achin/lein-parent

I wanna improve this kind of debug support soon, but the logs should tell what we need to know, it logs the classpath found, try rm -rf .lsp/.cache and check the server logs

i used server-info to see what clojure-lsp is doing, and it's showing :project-root-uri "file:///Users/nbogart/work/rn-v3", which is the root folder, not the current project folder

so your editor imported that

the project-uri is something that the client sends to server, usually asking to user the first time it's opened

i have no idea how vim handles that though

dang, i'll see if i can modify that, then