This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2020-05-21
Channels
- # announcements (3)
- # babashka (26)
- # beginners (45)
- # calva (10)
- # chlorine-clover (9)
- # cider (4)
- # clj-kondo (7)
- # cljs-dev (10)
- # clojure (95)
- # clojure-europe (33)
- # clojure-france (5)
- # clojure-nl (3)
- # clojure-spec (2)
- # clojure-sweden (3)
- # clojure-uk (33)
- # clojurescript (54)
- # conjure (101)
- # core-async (14)
- # cursive (1)
- # data-science (91)
- # datascript (3)
- # datomic (16)
- # figwheel (3)
- # figwheel-main (15)
- # fulcro (35)
- # ghostwheel (5)
- # graalvm (13)
- # helix (29)
- # java (5)
- # jobs (6)
- # kaocha (6)
- # leiningen (1)
- # meander (12)
- # off-topic (54)
- # pathom (13)
- # re-frame (16)
- # reagent (8)
- # reitit (4)
- # rum (3)
- # shadow-cljs (49)
- # spacemacs (2)
- # sql (5)
- # tools-deps (10)
- # xtdb (8)
- # yada (3)
Going to get develop released this morning with a few fixes to Clojure as well as initial Janet support 😄 feedback has been "it works", so I'm happy with that.
For the record, Janet is a really nice language! It's like Fennel, but runs it it's own little VM you can embed. Great for little lispy scripts, like babashka really.
I'm a fan and honestly looks great for things where you'd perhaps use a language like Ruby. Amazing startup time if that's something that gets you frustrated about Clojure. Stack traces are short and useful too!
I wonder what the performance is like compared to something like LuaJIT, like if I wanted to build a small and light graphical application, for example. Or embed it as a language in another program etc.
If you're frustrated about the startup time of Clojure, babashka solves that problem without changing the language. FYI 🙂
A big difference from Clojure is that while it does have some immutable types, it exposes and encourages the use of mutable equivalents for certain activities. Immutable types aren't persistent data structures with structural sharing.
@sogaiu just shared an interesting snippet with me where you can call janet from babashka btw 😄
pod-derek is a proof-of-concept babashka pod: https://github.com/babashka/babashka.pods
it's not as cool as a general janet wrapper -- i've only exposed janet's peg/match function. the gist demonstrates using the peg functionality in janet via babashka. there is a bit of meta-ness to it because the pod protocol is bencode-based, and the pod is being asked to decode a bencode string -- and this is being transferred back and forth using bencode 🙂
i got the sense that your aniseed / conjure stuff was somewhat more than that when looking at the source 🙂
Hah, I mean, there's a lot of code there now, but I'm just trying to glue Neovim to every lispy tool I can find on top of Fennel.
My theory is that Lispy stuff needs to band together since it's small compared to mainstream things. So if I can have Racket, Clojure, Janet and Scheme people all using one core tool they all have a reason to improve the UX and fix bugs in the shell for each other.
the protocol that babashka is using should be usable from other places too...so wouldn't editors be able to talk to pods too if they implemented one end of the protocol?
the protocol is very much the same as the nREPL protocol, but focused on invocation functions instead of arbitrary evaluation
this is because not all pod implementations have something like eval. e.g. it would be awkward to have to write a Lisp to expose some Rust libraries
Quick guide on getting a CIDER nREPL running on the JVM, I'm going to do one for shadow-cljs too. Trying to keep it as small as possible, just the bare bones to get an eval going https://github.com/Olical/conjure/wiki/Quick-start:-Clojure
And one on ClojureScript + shadow-cljs https://github.com/Olical/conjure/wiki/Quick-start:-ClojureScript-(shadow-cljs)
And the final one for today, Fennel https://github.com/Olical/conjure/wiki/Quick-start:-Fennel-(Aniseed)
Where is the dog on the release? Is only on majors?
Currently adding support for different kinds of pairs for form selection, other than the default ()
to address https://github.com/Olical/conjure/issues/87
I got number prefixed eval of the current expression working today 👀
That means that 1,ee
inside this code where your cursor is the pipe [:one [:two [:thr|ee]]]
would return [:two [:three]]
Trying to get it to work for outside in so you could say "evaluate one form in from the root", but that's harder. (this should also work with eval+replace and eval at mark)
Inside out, so 0 would be whatever your cursor is on, that's normal. 1 would skip one later and 2 would skip both.
If you go too far out it just esplodes because you get unmatched parens, no idea how to get around that.
at that point, it's much easier to just visually select what you want to eval and use ,E
i can imagine trying to eval something with ,ee
, realizing that it's a level in from what i want, and then being able to just do 1,ee
to jump a level out
one thing that's kind of weird about going outside-in (the eval root version) is that there can be more than one form
So I'll probably do that if I get it working. Wrapping things in do changes the behaviour of some macros etc so I want to avoid that.
@olical i noticed this on the quick start wiki page for clojure:
clj -m nrepl.cmdline \-A:nrepl:cider
--middleware "[cider.nrepl/cider-middleware]" \
--interactive
is the backslash on the first line a typo? maybe there was supposed to be a newline after it?That's great to hear and exactly the sort of thing I want to provide. Put a smile on my face 😄
How should I go about changing the background colour of the HUD? I tried putting highlight TabLine ctermbg=Black
in my init file but it doesn't seem to have an impact.
Like the completion menu, I'm pretty sure it's the same group? Maybe I can define a specific group for Conjure's log though :thinking_face:
Yeah, I've never set it myself, but I remember someone else having an issue with their theme. Mine is easily readable so I've never worried about it, but a bit of documentation about this would be great.
Yeah. Not sure. I thought it might be in the :help
but actually searched that by just putting variations of 'colour' and 'background' into GitHub's repository search.
Started an FAQ https://github.com/Olical/conjure/wiki/Frequently-asked-questions - any other gotchas with regards to Conjure in general that could go on there are more than welcome.
What features should works for janet-lang in conjure? Would be cool to have a table showing what we can do per language in conjure WDYT?
Everything other than completion and go to definition, and those could potentially added.
so yeap, is working fine here haha
I don't know if a comparison table is really required since 95% will work out of the box with everything, it's just the more IDE like stuff (completion etc) that can be hit or miss depending on the environment.
Started an FAQ https://github.com/Olical/conjure/wiki/Frequently-asked-questions - any other gotchas with regards to Conjure in general that could go on there are more than welcome.