Coda 2 dramatically improves an already very good code editor
I’ve done a lot of Web coding in my day. It used to be my fulltime job; now I code an in-house tool for Macworld, and I do some side Web development projects after hours. For years, my software of choice as a Web coder has remained Panic’s Coda.
Coda dates back to 2007, and it aimed to simplify the life of the average Web developer. And it succeeded. It combined, in a single tabbed window, your code editor, your FTP client, your web browser, and the Terminal. That’s a lot less Command-tabbing.
When Panic formally announced Coda 2, I was thrilled. Because as much as I liked the original Coda, I didn’t love it: It was missing a couple key features, and I longed for some of those features literally every time I used the app. Coda 2 adds the bulk of the features I’ve craved, and also adds impressive layers of visual and functional polish.
Coda 2 lets you organize the different projects you work on as sites. The app started using my old Coda sites seamlessly. When you start working on site, original Coda users will very quickly spot some obvious differences. The app now uses a very cleverly implemented, resizable, visual tab bar: Your open tabs each get dynamic thumbnails and text labels, along with small identifiers that indicate file extensions when appropriate. It works very well. If you prefer, you can make the tabs text only, which works fine, but the visual tab thumbnails actually make a much better use of space and feel far quicker to navigate.
Another immediately obvious change is the redesigned sidebar, which still offers quick access to local or remote files, clips, and in-page elements, but adds numerous other options—including the ability to configure which of those options are always visible in the toolbar header. Among the options the sidebar offers quick access to are Validate, Publish, Source Control Management, Places, and Hints.
One of the key places Coda 2 really shines is in its upgraded code editor. Beyond the aesthetic improvements, like better default syntax colors, the app is now functionally better at helping you write clean code faster. It (finally!) supports autocompletion for custom variables and function names. Currently, that custom autocompletion only works on a per-file basis, so functions you defined elsewhere won’t autocomplete; a Panic representative says that site-wide autocompletion will come eventually.
Coda 2 also now supports code folding, which lets you tuck away sections of code that take up valuable screen real estate, but that you don’t need constant visibility into. The code folding is particularly powerful; you can fold individual blocks, all blocks at a specific level, all comment blocks, and so on. And you can unfold blocks by clicking on them or with a menu command or keyboard shortcut.
General coding is improved in Coda 2, too. Bracketing, closing tags, and indentation all work much more naturally. Original Coda users may need to unlearn some tics they developed for working around weaknesses in the original version, since Coda 2 generally behaves far more sanely when composing and editing code.
Coda 2 integrates other new features as well. There’s a fully integrated file browser—basically a complete embedding of Panic’s Transmit—which allows you to connect to and browse FTP, SFTP, WebDAV, and Amazon S3 servers. A new integrated MySQL editor is fairly barebones, but it makes quick work of browsing or modifying tables and running queries. And the inline CSS editor, which combines the flexibility of hand-coded CSS with the power of contextual visual editing options, is remarkable.
Other niceties built into Coda 2 include an integrated version of the WebKit Web Inspector, along with the ability to view the fully rendered HTML source of a previewed page. When you’re previewing Web content, you can tweak the user agent to see your webpage as if you were on an iPhone or iPad; I saw a little bugginess in the implementation of this feature (where the Web preview was rendered beside the mock iOS device frame, and not inside of it), but it still saved me an awful lot of refreshing on my iPhone in my testing.
You can also send Coda 2 previews directly to an iPad running Diet Coda. Coda 2 finds iPads running Diet Coda on the same Wi-Fi network; you sync the iPad by pointing its camera at a flashing graphic on your Mac’s screen. It just works.
The list of features that I wish Coda 2 included is quite small. I wish PHP syntax checking were built-in; that existed in the Zend Development Environment a decade ago. Third-party plug-ins can add similar functionality to Coda, but those plug-ins will need updating to work with Coda 2. (I dragged an older one in, and it caused Coda 2 to get stuck in a crashing loop until I manually removed the plug-in file.) I look forward to when that site-wide code autocompletion feature gets introduced. And when that arrives, I’d love to be able to click on a custom function call and jump to its definition elsewhere within a site.
But the list of features Coda 2 is missing is dwarfed by the far more impressive list of what it offers. It’s an excellent upgrade, making significant improvements upon what was already a very good coding environment.
Coda 2 is available directly from Panic and via the Mac App Store; only the Mac App Store version can support iCloud syncing for sites and clips.
[Lex Friedman is a Macworld staff writer.]