This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2019-04-15
Channels
- # announcements (10)
- # beginners (113)
- # calva (2)
- # cider (75)
- # clj-kondo (1)
- # cljdoc (2)
- # clojure (142)
- # clojure-europe (11)
- # clojure-gamedev (6)
- # clojure-italy (7)
- # clojure-nl (8)
- # clojure-spec (3)
- # clojure-uk (50)
- # clojurescript (47)
- # cursive (7)
- # data-science (22)
- # datomic (12)
- # dirac (3)
- # events (1)
- # fulcro (114)
- # gorilla (1)
- # jackdaw (5)
- # joker (3)
- # kaocha (10)
- # leiningen (1)
- # liberator (2)
- # mount (6)
- # nrepl (1)
- # off-topic (16)
- # pathom (34)
- # pedestal (3)
- # re-frame (19)
- # reagent (11)
- # remote-jobs (5)
- # shadow-cljs (127)
- # spacemacs (12)
- # test-check (15)
- # tools-deps (8)
- # vim (4)
morning, i have this faint memory (maybe was just dreaming about it?!) that there was some talk/plans already to integrate kaocha with cider? can anyone point me to a blog post, github issue or the like? (posted this in #kaocha too)
We might have discussed this, but certainly no work has been done in this direction.
Unfortunately the list of our ideas greatly outpaces our ability to deliver upon them. 😄
indeed. that said would love some feedback on https://github.com/clojure-emacs/refactor-nrepl/issues/195#issuecomment-482895570
not sure if this is worthy to work on anymore… or if this is the right direction even.. anyways… may just give this a proper a go to see where it leads…
@benedek Looking at clj-kondo, I’ve been thinking it’d be much easier (and way more portable) to just use rewrite-clj to generate the AST.
It won’t be as precise as using tools.jvm, but it’s so much simpler and doesn’t involve evaluating the code.
I think something like this should be the direction for us, as everything else is too complicated IMO.
Btw, on the client-side now we also have the option to use the native elisp parseclj
library.
i use rewrite-clj in mranderson now but still a long way from there to an analyzer which can give is global and local vara
seen borkdude's tweets and announcements about clj-kondo will check it out more in depth
I’ve yet to check the exact AST format, but I assume we can figure out most locals and globals with simple heuristics. I’d rather have a simple runtime-independent solution that works well most of the time, than a very complex solution that works all of the time.
bit like joker i suppose in the sense that you explicitly need to teach it your custom macros if they add defs
(or you can annotate macros with some metadata, which would be my preferred approach)
this is really exciting actually. this is a direct competitor of cider — if such a thing exists in open source terms 😉
LSP is likely going to be become a big deal for every language in the years to come.
For Lisps is a bit weird to running tooling outside the REPL (at least for me it’s weird), but LSP makes a lot of sense in general.
yes. and also might drastically lower the barrier for newcomers. CIDER is fantastic but if someone just grabs an lsp-aware editor and is up and running that is a good thing for sure
agree with the Ghadi lsp is just a protocol after all
like nRepl
I guess that if it even makes sense, there could be a REPL-driven mode with static analysis backup
well...I don't know what could happen if the two clash though 😄
I disagree that tooling should be "good enough". I want tooling that is reliable so I don't have to swear every time I cut a finger on a sharp edge. "Great, now my completion doesn't work because I'm using a macro".
Well, at some point I suggested an LSP server which simply proxies to an nREPL server (or whatever). That’s how I would have done it, but in general for me LSP doesn’t really add much value to our existing setup.
@bozhidar yes that's the way to go imho
There are 0 technical limitations to doing the static analysis directly from a REPL-powered tool, I just never liked tools analyzer and the need to evaluate the source files to build the AST.
It’s also useful for linting purposes - e.g. getting arity warnings without the need to run a separate lint tool, etc.
Generally find & replace are the most important usages as far as I’m concerned. Unfortunately they can’t be reliably implemented without analyzing the entire project.
Anyways, I really hope we’ll do more on the static analysis front one way or another soon.