tome text editor: progress update

  • tome is a new text editor for use at the terminal prompt. tome is built on Node.js, which makes it easy to contribute, but does not have the overhead of an Electron app. tome is especially focused on editing JavaScript.

    I first announced tome here recently and received a kind and encouraging response. Here's a progress update since then:

    * Quite a bit of JS syntax highlighting. Check out the screenshot. Template strings were fun.

    * Indentation is much more syntax-aware, taking into account {, [ and (.

    * Indentation is not confused by comments or strings.

    * Support for other languages can now be contributed, following the pattern set by languages/javascript.js.

    I need to test it more, but it seems one thing I don't need to worry about so much is Unicode support, because I happened to make a good choice early on. tome represents the file as a two-dimensional array of (deep breath) grapheme clusters, as the UTF-8 experts call them. This means emojis and such "just work," as long as I don't forget and call `split` on a string somewhere.

    I've updated the Plan section of README.md to cover where I'll be taking things next. I want to tackle parsing more fully, but I'm going to focus on day to day usability stuff for a while, as tome is fast becoming my daily driver.

    I'm thinking about support for language servers. In principle it's the right move, in practice they seem like kind of a lot.

    Contributions are of course welcome.

    What would you like to see in tome?