This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2024-03-20
Channels
- # announcements (5)
- # aws (15)
- # babashka (12)
- # beginners (87)
- # calva (13)
- # cider (16)
- # clj-kondo (4)
- # clojure (22)
- # clojure-argentina (1)
- # clojure-europe (9)
- # clojure-houston (1)
- # clojure-nl (2)
- # clojure-norway (25)
- # clojure-uk (5)
- # clojurescript (12)
- # core-typed (37)
- # cursive (15)
- # datomic (40)
- # editors (8)
- # emacs (4)
- # events (1)
- # hyperfiddle (29)
- # keechma (8)
- # leiningen (6)
- # lsp (7)
- # malli (25)
- # off-topic (26)
- # pathom (10)
- # portal (3)
- # re-frame (22)
- # reitit (1)
- # releases (1)
- # ring (2)
- # shadow-cljs (18)
- # yamlscript (1)
I've asked this periodically over the years, but it has been a while and I wonder if there's something new that I haven't heard about: Does anyone know of (or want to make? 🙂 ) a really minimal Clojure editor/IDE that supports bracket matching, re-indentation even of incomplete expressions, and maybe nothing or very little else? Some features that are common in Clojure IDEs would defeat my purpose here and I would want them to be absent or at least easy to turn off, specifically strict structural editing (disallowing free-form typing/deletion of code including brackets) and parinfer. An integrated repl would be lovely, but not if it comes with all of the complexity of something like Cursive or Calva; if there's no integrated repl I would use it with a command-line repl and calls to clj. Similarly, things like integrated documentation and autocomplete would be nice, but not if they are obtrusive or introduce much complexity to the UI. Once upon a time there was something called "Clooj" that I thought was pretty great, but it wasn't maintained. Then Nightcode was pretty awesome until an update made parinfer mandatory. I've worked in (and taught using) Counterclockwise, Cursive, Calva, and a few others and I really appreciate what they provide and the great work that their developers have done, but I'm eager to find something much simpler, with less to learn and less that can go wrong. Key features are bracket matching, re-indentation even of incomplete expressions, lack of strict structural editing or parinfer, and a minimal learning curve. Any pointers would be very much appreciated!
There is https://github.com/mogenslund/liquid. I’ve reused the model for my own minimal non-terminal editor. I would love to see a simply made editor in clojure.
There’s a rope implementation that I think might make a neat basis for an editor, https://github.com/IGJoshua/ropes
I have an unfinished WIP wrapper for tree sitter, https://github.com/phronmophobic/clj-tree-sitter. I’ll finish it at some point. It’s not that much more work. I’ve just been distracted by other projects.
Thanks @U7RJTCH6J -- I will check it out!!
From the video liquid looks like a cool project but not right for my application because of the "minimal learning curve" part, since it seems to be key-command based and more vim-ish than TextEdit-ish. I'm looking for something as quick to learn and easy to use as a basic GUI-based text editor but with the few key Clojure editing features I mentioned.
can take a look at Zach's old project, Nightlight - though he doesn't maintain it anymore: https://github.com/oakes/Nightlight
Thanks for the suggestion @U0DCK21EJ. There was a time when I thought Zach's NightCode was the best available option and I used it for at least one course, for which I think it worked pretty well. But in a subsequent update he made parinfer mandatory, which is sadly pretty much disqualifying in my context. I appreciate the beauty of the idea of parinfer, and the fact that ensuring that all expressions are always complete allows tool builders to do all sorts of nifty things, but like strict paredit it prevents free-form editing in ways that are frustrating and counterproductive for many of my students and also for me in my own work, because of the way I like to edit. Worse even than strict paredit, it can sometimes add and delete brackets on lines other than the one you think you're editing, and it promotes an idea that indentation rather than brackets are primary for specifying structure. I want students to type the brackets that define structure, and have an auto-indent feature show what that structure is, not vice versa. Anyway, I've just also tried Nightlight and it is super cool! But alas, it also seems to have mandatory parinfer.