aretext 0.7 release, thinking about 1.0

The 0.7 release of aretext is now available! Aretext is a minimalist, terminal-based text editor with vim-compatible key bindings. In this post, I’ll highlight some of the main changes and reflect on the direction of the project.

Additional vim commands

This release adds support for several vim commands:

Additionally, word motions and word objects have been completely rewritten to support “count” parameters. Commands such as 2dw, d2w, and 2daw are (finally!) recognized.

Syntax highlighting for Go templates

A new syntax language was added for parsing Go templates. Here’s what it looks like:

Screenshot of aretext syntax highlighting a Go template

Go templates don’t have a standard file extension, so you’ll need to add rules to your aretext configuration based on your project’s directory structure. For example, the Hugo HTML templates for this blog are stored in the “layouts” directory, so I added this rule to my config:

# Use "gotemplate" syntax highlighting for Hugo HTML templates in my blog
- name: dev-nonsense-template
  pattern: "**/dev-nonsense-blog/**/layouts/**/*.html"
  config:
    syntaxLanguage: gotemplate

When working on a large project, I often want to jump in and out of specific directories. Previously, this would require exiting aretext, cd‘ing to a new directory, and relaunching the editor. In version 0.7, it’s now possible to change the working directory within aretext using two new menu commands: “child directory” and “parent directory”. The screencast below shows these in action:

Towards the 1.0 release

This release marks an important personal milestone: aretext now has everything I want in an editor. The main features have been stable for the last six months, and I’ve been using it as my primary editor for nearly two years.

Moving forward, I anticipate my work transitioning from new development to ongoing maintenance. This is consistent with the goals of the project. If I kept building new features, aretext would eventually cease to be a minimalist text editor.

For these reasons, the next release will be version 1.0.

Of course, there will always be more vim commands to implement, syntax languages to parse, and dependencies to update. I plan to actively maintain aretext indefinitely and will continue to welcome open source contributions. If you want to help out, please let me know!