This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2021-04-01
Channels
- # announcements (19)
- # asami (4)
- # babashka (34)
- # beginners (137)
- # calva (22)
- # cider (4)
- # clj-kondo (25)
- # cljs-dev (4)
- # clojure (67)
- # clojure-australia (1)
- # clojure-berlin (1)
- # clojure-europe (35)
- # clojure-germany (3)
- # clojure-nl (5)
- # clojure-serbia (3)
- # clojure-uk (8)
- # clojuredesign-podcast (2)
- # clojurescript (11)
- # conjure (56)
- # data-oriented-programming (1)
- # datascript (1)
- # datomic (6)
- # deps-new (11)
- # eastwood (1)
- # fulcro (11)
- # honeysql (48)
- # inf-clojure (1)
- # jobs (1)
- # joker (6)
- # lsp (26)
- # malli (2)
- # meander (3)
- # off-topic (48)
- # pathom (4)
- # polylith (4)
- # re-frame (19)
- # releases (2)
- # remote-jobs (1)
- # rewrite-clj (127)
- # shadow-cljs (6)
- # spacemacs (3)
- # tools-deps (43)
- # xtdb (16)
do you think it's also a route to also highlighting when your cursor is inside a nested form?
Hmm I mean, maybe, but I don't know if that's something I would add to Conjure since it's really nuanced. Although I guess you could argue it's a feature of showing you what would be evaluated with one specific mapping? I think I'd prefer this in another plugin personally, feels like it's erring on feature creep out of the domain I wanna worry about? :thinking_face:
I'm keen to try the eval highlighting, but I'm having trouble finding the new config option in the help text. :thinking_face:
Yeah it's been going on for a while. maybe this one works; 18 aur/neovim-nightly-bin 0.5.0+dev+1194+gc20ae3aad-1
3 weeks with Conjure now at the new job, everything works great and I basically just took your dotfiles
Yep, works really well. I'm actually a bit surprised that I don't miss the smartness of IDEA / Cursive
Once you get into the flow, using clojure with vim + conjure is very condusive to being very productive
I find I concentrate now more on the namespace, with a few interactions. Allows me to keep focused on what I'm trying to do.
Yeah exactly, doesn't really help (it hinders) to scatter your attention all over the place.
and thanks to the recent addition of eval'ing and placing the results of that eval as a comment beside the form/def, lets me see what each part does
I just did about 3 years heavy go / rust programming and this env is so much better 😛
I flip betwen kotlin and clojure programming. I always feel a sense of liberation coming back to Clojure
Yeah it works, still you're pushed into some kind of TDDish thing even to get some feedback
I think Kotlin is cool and I did use it a alot a few years ago with jetbrains products
We use it at work for all backend stuff, so having to do it too. I find it very nice.
Anyway got to go to bed now but thanks for being a poweruser and actually writing your stuff down 🙂
you're most welcome. Oh, I don't consider myself a poweruser. I'm certainly very much a beginner too. As the saying goes, I'm standing on the shoulders of giants.
Noticing a light bug, not sure if it’s me / if ya’ll have seen this before.
When I set up shadow:
ConjureShadowSelect app
Now, if I eval in a clj file, I get some errors:
; (err) ------ WARNING - :undeclared-var -----------------------------------------------
; (err) Resource: <eval>:2:4
; (err) Use of undeclared Var virtual-library.goodreads/pmap
; (err) --------------------------------------------------------------------------------
; (err)
nil
#'virtual-library.goodreads/import-csv!
As thought it’s sending that file to shadow too. Is there some wrong I’m setting things up?
Folder structure:
src/clj -> clj files
src/cljs -> cljs files
Have you added the src/clj
and src/cljs
dirs to your path? Those aren't built in directories, the only directory Clojure knows about is src
and maybe test
by default I think?
I never use clj
and cljs
directories at the top level, but then I rarely mix clj+cljs in the same project.
Also if you're in a CLJS REPL and try to eval a clj file (so not cljc or clj) it won't work properly afaik
Hey Oliver!
Indeed, let me give some context on what is happening:
• I have both clj + cljs on the classpath
• To run my project,
◦ I set up an nrepl
◦ Make two separate remote connections
▪︎ In one remote connection, I run the server
▪︎ In another, I kick off shadow
◦ This works fine
◦ From conjure’s perspective, any time I eval, I think it default goes to clj
• But, if I run
◦ ConjureShadowSelect app
◦ Then, it sends all files to cljs (this, I am a bit vague on, as I don’t quite understand fully how shadow-cljs works)
• Ideally,
◦ If it’s a “clj” file, it would send to the “clj” part of this repl, and if “cljs” it would send to the other part
• But, if this is not supported, no problem
▪︎ In this case, is there a way to say the opposite of ConjureShadowSelect app
?
• (i.e to disable shadow, so conjure knows to send clj files to the right place again)
I set up one remote nrepl connection.
• This nrepl has both cljs and clj on the classpath
• By default,
So you might need to adjust the shadow-cljs path too? Not sure how to do that, but I have a feeling shadow-cljs has it's own classpath config? (maybe not called a classpath)
A little background: When you connect to an nREPL it opens a "session" (the thing that Conjure represents as names of cat/dog breeds but they're just UUIDs that I'm adding a human representation to)
Conjure has one session selected at a time, but your nREPL can have many sessions. (search in :h conjure-client-clojure-nrepl
for the session mappings)
When you shadow select, your current session becomes a ClojureScript session where evals are handled by shadow. You can open a new session that's plain clojure, then hop between sessions to hop between your clj and cljs evals.
Then set up an autocmd in your vim so that on buf enter you look at the current file path then set the state string to clj
or cljs
, for example, each time you set the client state you get a kind of parallel universe of Conjure, so you can have one variant enabled while in the clj dir and another in the cljs dir. Each of which can have their own connections or sessions.