This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2021-11-27
Channels
- # announcements (7)
- # aws (1)
- # beginners (42)
- # calva (65)
- # clj-kondo (5)
- # cljs-dev (11)
- # clojure (69)
- # clojure-australia (7)
- # clojure-dev (4)
- # clojure-europe (9)
- # clojure-gamedev (2)
- # clojurescript (2)
- # conjure (4)
- # cursive (1)
- # data-science (1)
- # datomic (8)
- # events (1)
- # fulcro (35)
- # graalvm-mobile (40)
- # introduce-yourself (1)
- # lsp (26)
- # malli (14)
- # mathematics (2)
- # missionary (5)
- # nextjournal (4)
- # off-topic (4)
- # polylith (10)
- # shadow-cljs (5)
- # test-doc-blocks (1)
- # tools-build (24)
- # tools-deps (1)
- # xtdb (12)
the thing i’m currently working on is a run-with-deeptrace macro that takes your function call and instruments every function that could be called. it’s using clj-kondo analysis to get the dependents of each function so i know what to trace
i’m still thinking about building a version that takes that information from nrepl instead, but its easier to do with kondo for now
ATM clojure-lsp scan the project and save analysis to a atom while running but it persists the external kondo analysis on datalevin ~/.lsp/.cache
the issue is that your lib would need to call clojure-lsp manually, as they are not related and clojure-lsp runs as a process externally usually on the editor
you don’t have any communication layer currently, so it doesn’t talk to calva and back?
I can't see how you lib running in user's repl would access the proccess running, you know
ah ok, sharing kondo analysis maps through that would be very hacky, yeah
yeah, if calva needs that, it's easy to provide as it's the client that is communicating with clojure-lsp
but i’ll check if accessing the data.mdb file is easy, haven’t looked into datalevin yet
but, note that we only save to datalevin external analysis, analysis related to project's jars, as the project source analysis we always analyze during startup and do not cache to avoid outdated analysis
btw i’m thinking of having parts of the lib as a vscode plugin so you can just press hotkeys instead of wraping stuff with function calls. would that make the communication easier?
what do you mean by external?
external == analysis that are not related with user's code, like analysis of project's deps jars
ah ok, well that’s probably the bigger part anyway, but yeah i of course wouldn’t mind if you also exported the project analysis. looking into datalevin right now:)
although i’m seeing that datalevin has a lot of dependencys, not sure i want that many more on a dev time lib that needs to be compatible with peoples versions of stuff
If you intend to ready query the datalevin I think we can export that as well, note that project analysis could be outdated after startup as user may edit things
i’ll play around with it, but it’s good to know that it’s kind of possible to get access if i realize that running kondo myself gets to slow. thanks for the support
mhh, just remembered that kondo has its own cache, but running it with :cache true and false makes 0 difference. you don’t happen to know what the problem might be?