In search of a text editor
It's tough to get a "Dear John" letter, even in the computing world, but
that's what happened to me late last week. You see, I'm a long-time user of the
CodeWright programmer's editor (in fact, I'm composing this colum in CodeWright
right now). Thanks to a series of mergers, CodeWright is now owned by Borland,
and the e-mail (addressed "Dear CodeWright User") left little doubt of its fate.
Despite hopeful thoughts, such as "Borland is committed to providing developers
with freedom of choice and enabling developers to build better software, faster"
the bottom line is "Borland is not engaging in new development of the product,
other than making bug fixes in accordance with valid existing support and
Text editors have long been the source of serious battles between developers.
Because we use our editor of choice more often than any other tool, we grow very
used to the way it works, and anything else seems not just different but
wrong. But it seems that I've got a great opportunity here to start over
with a clean slate; if the editor I've been using is going to go away, it's time
to evaluate alternatives with an open mind. Sure, the current version
(CodeWright 7.5) will continue to work for the forseeable future, but it's just
going to look more and more out of date as the competition adds new features and
updates their user interfaces.
That got me to thinking about what I want to see in my next editor. I suspect
most developers only use a fraction of the available features of just about any
application these days, and I'm no exception. Still, in the hopes that it will
provoke some thought (or get someone to e-mail me with the news that there's a
perfect editor already waiting for me) here are some of the things I'd like to
see (note that I don't have all of these features now):
- Multiple open documents in a tabbed interface.
- Syntax-based styles. More than just color-coding keywords, I'd like to be
able to change font and size as well.
- Integration with Visual Studio .NET.
- Integration with SourceGear Vault.
- Hex editing, not just hex view.
- The ability to set a right margin that inserts hard returns, and to manually
rewrap a paragraph with a keystroke or two.
- Macro recording and playback.
- In-editor display of HTML and XML/XSLT.
- File and directory diffing.
- Integration with MSN Messenger and Yahoo! Instant Messenger. I'd love a
product that let me do remote pair programming via these transports.
- Some kind of snippet manager.
- A project system that lets me compose a project of completely arbitrary
files, and that lets me have multiple projects loaded at the same time.
- Support for matching HTML tags.
- Integration with the .NET Framework so I get something like IntelliSense in
the text editor.
Well, at least I don't want it to make its own gravy.
There aren't a whole lot of programmer's editors out there these days. The
IDEs have squeezed the market quite a bit. So I suspect it's not going to take
me too long to evaluate the available choices. What worries me is that I'll
likely find them all inadequate - and then, if I'm having a weak moment, I'll
contemplate writing my own. That way, I am sure, lies madness.
Mike Gunderloy has been developing software for a quarter-century now, and writing about it for nearly as long. He walked away from a .NET development career in 2006 and has been a happy Rails user ever since. Mike blogs at A Fresh Cup.