On Text Editors and Dreams

Watts Martin posts a great review of the current state of Mac text editors. It’s framed thusly:

As I’ve mentioned here before, I’ve been a TextMate user for the last few years, albeit increasingly reluctantly… A lot of old TM users have been looking for the Editor That Will Be TextMate 2.0 By Default.

But you really ought to read the whole post if you’re into this sort of thing.

Martin brings up a few halfway-decent alternatives, and commenters bring up a few more possibilities, but the consensus opinion seems to be that the Holy Grail of programmers’ text editors for Mac remains elusive.1 Things are a little better if you’re doing web development within the confines of what Coda and Espresso do well — but some of us want an editor that’s good for more than just web development.

TextMate was never the Holy Grail anyway, but it brought enough to the table that it might have had a good motto in “it sucks less”.2 Oddball double-click-drag selection and character-by-character undo, among other things, remain thorns in its side.

When I’m doing Mac/iOS development, I spend a lot of time in Xcode — which, for Cocoa and C work, at least, has a pretty nice editor. When I want to do web or other work, I have to totally switch gears to deal with another editor.

So here’s my idea of a dream editor: a more extensible Xcode, or a separate editor app built on Xcode’s editor. Oh, and with a few TM-like niceties (like multi-line typing in rectangular selections) added, of course.

The first alternative would require Apple to open up some hooks in Xcode’s infrastructure, so third parties could add support for syntax coloring, features like command-click jump-to-definition and option-click for documentation, etc. We’d also need the community to make better use of what extensibility Xcode already has — creating and sharing project templates that use shell script built phases to, say, create PDFs from LaTeX source, or convert Markdown to HTML and post it to a website, or other stuff we’d be doing with scripting or bundles in other editors.

The second option might be a bit easier on Apple’s part: just put some of Xcode’s editors into a framework third parties could use, and let someone else build an app with support for editing more languages and doing more stuff around it. They’ve already done this internally with Dashcode, anyway…


  1. Maybe that’s a good thing… you don’t want to be an old knight stuck in a cave, after all. 

  2. I, for one, jumped ship from BBEdit around when TM was new because the former was feeling ever more stuck in the Classic Mac OS era… maybe it’s improved since, but I haven’t taken the time to look back.