1. 4

    My spare-time evenings-and-weekends project for about the past five months has been building an environment for programming the Apple II on top of lite and Fennel, called Honeylisp. (I’ve got a playlist of Honeylisp demo videos and a somewhat-outdated blog post if that sounds interesting to you.)

    I like it a lot. The lite codebase is small, easy to read, and relatively easy to extend without direct modification. All of the most indispensable modern editor UI comforts are there. I had originally thought of using it in a sort of “embed this editor in your game engine” fashion - the drawing primitives implemented by its C runtime are simple enough that I was able to throw together a good-enough port to love2d in a weekend - but it turned out to be really easy to add custom commands to, and pretty straightforward to add custom editors to, so it ended up being the primary interface I used for every tool I built.

    One of the first things I did was hook up a hotkey to lume.hotswap so I could reload pieces of the editor from within the editor as I was editing them. There were some tasks that didn’t play super nicely with this workflow, but there were many that did. I hear emacs people live like this all the time, but I haven’t heard of anyone embedding a graphics editing tool in emacs.

    I wish the Doc framework was a little more flexible so I could more easily implement proper REPL windows - right now I have very stupid eval hotkeys that just dumps the result inline in whatever document I’m editing. But most of the issues I’ve had with it have been straightforward to address. Overall it’s a very solid, approachable, and customizable editor.

    1. 1

      I wish the Doc framework was a little more flexible so I could more easily implement proper REPL windows

      This is definitely the biggest shortcoming of lite for me too; it really didn’t seem like it was set up for any “console-style” doc interaction, which is like … approximately half of what I want in a text editor TBH.

      Other than that it seems great!

      1. 2

        Just out of curiosity, would you mind expanding on that? I’m assuming you’re referring to Emacs-style console buffers, but either way I’d love to hear more about your workflow. I never got into Emacs all that much but I used a tool years ago called VinCEd that was similar in spirit.

        1. 2

          It’s kind of hard to explain because it’s such a general thing, but such a huge percent of what I use my computer for outside the browser is “interact with it by sending it commands and examining responses” which includes REPLs and shells.

          I think the problem with lite is that it’s designed to be “just” a text editor, which is just not that useful to me; I want a rich interaction environment that happens to support editing text. That’s what I built my own text editor around; it’s less a “text editor” and more a “framework for attaching functions to keystrokes”: https://git.sr.ht/~technomancy/polywell/

          1. 1

            That’s really cool, thank you for sharing. If you haven’t submitted that to Lobste.rs, you should!