I missed this :) https://emacs-lsp.github.io/lsp-mode/tutorials/debugging-clojure-script/
Is it also on clojure-lsp?
I posted on #emacs :) But no, it's required to have lsp-mode running to use this that is in dap-mode, but clojure-lsp has nothing related with that
Can anybody tell me why is SQLite used in Clojure-LSP?
Hi, we use sqlite to persit the analysis from classpath after the first analysis
so next startups are really faster as we read from a local sqlite file
we could use transit or something simpler, but we would lose the advantage of transaction making sure we always persist correctly the analysis
Here you can find more info as well: https://github.com/clojure-lsp/clojure-lsp/issues/234
hey I would like to work towards the incoming references
feature in clojure-lsp
this week end. I'm learning Clojure (I write Haskell at my day job), and I'm mostly interested in copying the workflows, tools and thought processes from clojurians, so if someone wants to pair (I can drive) that would be amazing 😀
BTW incoming references are already implemented, you probably meant outcoming call hierarchy?
Hey @meditans, are you looking this? https://github.com/clojure-lsp/clojure-lsp/issues/384
If not, I'd like to start to implement 🙂
Hey @ericdallo, please feel free to start working on it! I'd hate the feature to be delayed on my account! Can't wait to try it!
Thanks 🙂 I already implemented, it was not hard after the work done by incoming call hierarchy 😄 I'm doing some tests and fixing some user cases
If you want to give a try: https://github.com/clojure-lsp/clojure-lsp/pull/387
awesome! Can't wait for the new release 😛
Really cool! LMK if need help with setup for coding in clojure-lsp
thanks @ericdallo! I'll ping you if something comes to mind! 🙏
@ericdallo I saw that db/read-deps
and db/save-deps
are being called only in crawler
, which leads up to crawler/initialize-project
being called from handlers/initialize
, which is called from main/server
.
Is there any race condition in main/server
that may require any transactional isolation?
And I can see only one row being persisted in db/save-deps
So, the data being written is not so much, and the read/write could be technically isolated by locking on an interned absolute string filename.
Just trying to think aloud here on how to achieve isolation/safety without using a database.
Yes, it turns out clojure-lsp process can end any time if user restart the server, close project, close editor etc
I discussed that with @snoe other day, we could probably change to use transit and accept this tradeoff, if the data from the file is corrupted/non parseable, we drop the analysis and re analyze
Are there going to be multiple Clojure-LSP processes competing to write to the same file?
I don't think so
Then your summary https://clojurians.slack.com/archives/CPABC1H61/p1616191137029000?thread_ts=1616159334.023200&cid=CPABC1H61 sounds like a good plan to me.
Also this would allow we compile clojure-lsp with graalvm static flag
ATM xerial sqlite does not support that