I've started getting a little more serious about using my laptop for web development, and as part of this, I've been looking for something a little nicer to use than Textedit. I've never been a fan of WYSIWYG editors like Dreamweaver, Frontpage or GoLive (that should show my age a little), so those were out of the running right away. But 'bare' editors like the one included with OS X, or TextWrangler (the freeware version of BBEdit) never really struck the right chord with me either. I use PSPad at work, but it's never really felt like a good solution for me.
Awhile back, I read about Coda [archive.org link], a "single window" web development application made by the fine folks at Panic software. I heard about it before I had my Mac, and it seemed like it might fill most of the holes I was finding with the development environment I had. I liked the idea of the single application development environment, and I thought it was a great idea to include a terminal application within the development environment. It's not that Panic was bringing anything new to the life of the web developer; rather, they were just putting all the tools that we use on a daily basis into a single application. About the only real criticism I had of the application (other than the fact I was on a Windows machine both at home and work at the time) was the somewhat goofy visual metaphor used for the Sites panel.
When I got my Macbook, Coda was one of the first applications I installed. It was exactly what I had hoped it would be - a good editor with some nifty added features. There were still some holes, however, and they were relatively glaring for my own development process. Possibly the largest one was the lack of Subversion support. I started using Subversion as a technical communicator at GE. And although it wasn't very useful for word documents (can't really merge a binary file), I immediately saw how powerful it was for web development. I started using it at home, and I've since put it into great use at my new job, who already had it in place. I can't really fault Panic for not putting it in the first release; even they admit it's something that should have been there.
Part of the problem is that - at least the last time I looked - there wasn't really many good solutions for integrating Subversion as a client into the Mac without resorting to a console (since I looked, Versions has come out, but as a standalone application, it doesn't so much integrate as facilitate). It was always a break in the development process to stop working in the editor, open up a console, navigate to the working directory and svn commit -m '' filename.
So imagine my delight when I saw that Coda 1.5 had come out and had integrated Subversion support. It's now even easier than using TortoiseSVN on windows. Here's an example. I've been working on a visualization for a colleague of mine, and storing the files in one of my repositories. In Coda, after I've edited the file, I see the following:
If I hover over that little M, Coda tells me that I can commit the change:
Once clicked, Coda pops open a dialog box where I can enter a commit message, and it takes care of the subversion commands. If I want to instead do something like revert to a previous version, then I can use the context menu and go about things that way:
This was all I needed; I plunked down the money for Coda on Saturday. $99 was more than I would have liked to spend, but it's well worth it in the end. I don't even mind the Sites visual metaphor any more, especially since it goes and takes an automatic screenshot whenever there's a change.
I find I'm much more productive in Coda than I am in PSPad, and the ability to log in and modify remote files, whether it's through SFTP, FTP, or WebDAV, is a much-appreciated feature. I like too that the preview is contextual, and knows whether you're previewing a local file (in which case it goes to the local webserver) or the remote file.
My only remaining complaint is fairly small - I wish that Coda would maintain the highlight on closing and opening brackets. As far as I can tell, Coda will only highlight opening/closing brackets when they are both on the same screen. Unfortunately, I sometimes have fairly long conditionals, functions, or case statements, and I'd like to be able to see where those end when I scroll down. It might be something that I can fix through the Preferences, but I haven't found it yet.