Quest for the Perfect Programming Editor

I’m always on a lookout for new tools that would make my developer-life easier. One of the more central items to that end is the programming editor or an IDE. I’ve been using UltraEdit for several years, and I do like it — a text editor doesn’t get much better than that. But UltraEdit’s intellisense is limited, and it doesn’t really come with a usable snippets functionality. I tried UltraEdit Studio, and while it adds some features to vanilla UltraEdit, I don’t find myself using much of its additional functionality.

The next stop was eclipse, which I had used some in the past. Bundled with Aptana IDE (primarily for JavaScript development), or Zend’s PHP Developer Tools (obviously, for PHP) it does fairly well, and I’m sure it’ll do even better once I get better acquainted with it. Aptana has snippet functionality which looks decent in the demo, but which I haven’t been able to get it to work yet (how do you add a snippet??).. I’m sure I’ll figure it out shortly. Another eclilpse frustration – or something I miss from UltraEdit – are the handy bookmarks that UltraEdit allows the user to place in the code for quickly jumping around few positions that are being worked at (you can set bookmarks in eclipse, too, but it’s more cumbersome).

Meanwhile, I tried OverZone’s Source Code Library, but as far as I can tell the code snippets stored in it cannot contain tabs that would translate to tab characters in the target editor or IDE – instead any entered tabs are translated into spaces. Not good.

Perhaps nothing better exists at the moment. My quest continues, and meanwhile I continue using UltraEdit for simple single file editing tasks and eclipse for PHP/JavaScript/AJAX development (and likely VisualStudio for c# although VisualStudio projects have been on hold for some time so I’ll need to revisit that environment when the time comes).

If you know of a good snippet library application, eclipse extension for the features I’m looking for, or other IDE/editor worth taking a look, please let me know!