At least that is how it went for me. Once I got basic functionality working it turned into something that evolves instead of being written; working on some project and realize a certain feature would be great, open editor's built in console and write a few procs, send it to the interpreter, test, save, continue on with other project, fully intend to document and improve/generalize later, repeat until it turns into something only you can use.
An interesting one I hacked around with for a while is [ma](https://github.com/kdltr/ma). It's a single window implementation of an acme-like editor. It was originally written (& still used by) Felix Winkleman, the creator of chicken scheme
Alphatk for example: https://en.wikipedia.org/wiki/Alphatk