A very simple, very much in progress text editor written in Ruby. (by vidarh)

Re Alternatives

Similar projects and alternatives to re

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a better re alternative or higher similarity.

re discussion

Log in or Post with

re reviews and mentions

Posts with mentions or reviews of re. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-13.
  • Metaprogramming in Ruby: It's All About the Self (2009)
    3 projects | | 13 Apr 2024
  • I Love Ruby
    12 projects | | 18 Dec 2023
    I've put plenty of half-baked stuff out there over the years, so that doesn't really worry me. More that at the moment if you try to copy any of it the github repos are all at different stages of not quite up to date, and APIs are in flux, and you're just really likely to have a bad time trying to get anything to work.

    I think the real starting point for me is going to be to clean up PureX11 a bit more so the API is at least somewhat cohesive, and then push the WM as it's working enough that it's been my only wm for a few weeks (it does have significant quirks still, but with somewhat minor cleanups it's a decent starting point to play with), and then the terminal as it's fairly freestanding, then some of the file management tools, toolbar, popup menu etc., then lastly my editor. The editor has by far changed most from the version on Github and is also most likely to cause problems for others, so that might take a bit of time, not least because I'm in the middle of a fairly significant overhaul of the way the views and models works.

    Here's some of what is out there, though:

    * Skrift: This is a Ruby port of libschrift, a TTF font renderer. It's heavily cut down, and currently stands at about 680 lines of code. I intended to tidy up the API as it's still a bit messy after my rewrite:

    * X11 bindings for Skrift: - these are messy, and I have significant updates to them (including basic fontset support and a mechanism for pixel-perfect boxdrawing characters at any reasonable scale) that have not yet been pushed:

    * Pure-X11: This is a form and significant overhaul of pure X11 client bindings for Ruby (as in not Xlib or XCB needed): - it's not terribly out of date, but it's a bit in flux as I don't like the initial mechanism, used for the protocol and so I'm thinking about how to trim it down and make it easier to use.

    * This is the starting point for my terminal. My terminal is nothing like that any more, but this is the repo that will get all the updates, eventually: - this initial prototype used a C extension and server-side fonts, while the current version uses Pure-X11 and Skrift

    * This was the very first version of my WM I used, a few hours into the switch (from bspwm). It's a straight port from TinyWM. My current one has tiling and some EWMH support and multiple desktops and adds about 700 lines of code - it'll start appearing on Github soon:

    * This is a script I used to feed into a 9menu style popup menu script from my file manager to generate folder-contextual actions based on the folder contents: -- the current version is quite a bit slicker and will eventually show up

    * This is a very dated and broken version of my editor, and odds are you'll struggle to get it to work at all, as it depends on various helper scripts that are not yet packaged up, as have been massive updated since that version; I'm hoping to maybe bring the repo a bit more up to date over the holidays:

    * This is a gem that handles the input processing:

    * This does keyboard mapping from symbols from termcontroller to higher level user-defined sequences:

  • Embrace the Chaos: How to Write a Code Editor in 4 Months
    2 projects | | 31 Jan 2023
    split-vertical is a helper (I split out a handful of things that depends on external tools) that just runs "bspc node -p south" to get bspwm to halve the height of the current window and "swallow" the next window being opened into the space freed up below the active window, and then exec's its argument. So Meta-2/Meta-3 works roughly like in Emacs, except the frames end up in their own windows, running their own client.

    Had remoting the buffers been a lot of work, I wouldn't have, but the the Drb specific part of the code is <100 lines and the combined effect of the resilience (if an exception is thrown in the server code, I get thrown into a Pry repl in the client) and the extra abilities it enables makes it worthwhile.

    Similarly, I've avoided implementing my own directory handling, and just farmed that out to a wrapper that currently uses rofi, same for theme selection (for syntax highlighting), buffer selection, etc.

    The minimalism of delegating all of these things elsewhere appealed to me.

    > I am also curious what you thought was a limiting factor of Emacs so that you found it easier to write an editor from scratch.

    Strongly disliking Lisp was high on the list (I like the concepts; hate the syntax intensely). Also, it wasn't so much a limiting factor, as realising that my Emacs config file was larger than toy editors I'd played with in the past, and a minimalist bent making it appeal to me to go for something smaller. Also seemed fun (and has been)



  • A possibly new way of drawing boxes in the terminal
    2 projects | | 15 Oct 2022
    The github repo [1] is wildly out of date, and it probably won't even run on other peoples systems at the moment as one of my experiments with it is to keep the editor itself as tiny as possible and leverage other tools for as much as possible. As such, it relies on bspwm for multi-window support, and on rofi for file-selection, theme selection etc., and helper scripts not in the repo. It's currently smaller than my Emacs config used to be...

    More so than the editor, which I'm kinda treating as my config more than a finished app, I'm gradually splitting functionality into a bunch of gems so that the editor itself will feel even more like just configuration...

    Here's another screenshot [2] showing part of the integration with Rouge for syntax-highlighting, and showing how it's rendering comments by recursing into Rouge's Markdown mode, which again recurses into Rouge's Ruby mode. The "LayeredLexer" class it shows is used to enable that.



  • A note from our sponsor - Scout Monitoring | 24 Jun 2024
    5-minute onboarding. No sales team. Devs in the support channels. No DevOps team required. Get the free app insights every engineer deserves with Scout Monitoring. Learn more →


Basic re repo stats
11 months ago

vidarh/re is an open source project licensed under The Unlicense which is not an OSI approved license.

The primary programming language of re is Ruby.

Rennaisance engineers rejoice! 1 gem 5 min to app monitoring
5-minute onboarding. No sales team. Devs in the support channels. No DevOps team required. Get the free app insights every engineer deserves with Scout Monitoring.