Dyce & Sons Ltd.

Helping IT since 1993

Links

BBEdit 8.5

Monday 25th September, 2006

Mentioning TextMate in a BBEdit review is a dangerous thing. Both apps have, let’s say, an enthusiastic following and comparisons are apt to draw flaming emails. Despite both being essentially apps for editing text, the philosophies are clearly different. TextMate is an extreme programming, customise-the-plane-in-flight type app, whose designers have a clear dislike of application preferences, whose feature set is ultra-maleable, designed for Unix wizards, and somewhat short on human-readable documentation. BBEdit is a solid, reliable, get the job done right app; the brown-coat wearing craftsman/artisan to TextMate’s B.A. Baracas with a welding torch. But strangely, with 8.5 BareBones seem to have acknowledged at least some of TextMate’s arguments.

Firstly, there’s preferences. BareBones has always offered a fairly complete set of preference settings, but with 8.5, in an effort to make these more useable for newcomers, BareBones have reduced the number of preferences (although tru-fans can still get to them via the terminal command line), and added a search drawer to make locating the appropriate preference easier.

Code folding makes short-work of reading long HTML documents to figure out their structure.

Secondly, there’s customisation. Short-cuts have been customisable in BBEdit for some time, but there’s now a new menu preference that allows you to show or hide commands or indeed whole menus. General text-editing preferences can also be set on a per-language basis. ‘Codeless language modules’ should also make adding additional language support easier.

Thirdly, and this has been a sticking point for a number of users, there’s code folding. A folding editor works in the same way as say an outliner, allowing you to hide the fiddly details of a document so that you can see the wood for the trees. BBEdit offers both a simple language sensitive version - where the lexical structure of a document is used to add default folding points -a manual one, where you can just select some lines of text and fold them, or ‘balance and fold’ which looks at where your cursor is placed, and working backwards and forwards from there, looks for any containing parentheses and folds the text appropriately.

For plain HTML editing, this works superbly. BBEdit’s folding algorithm appears more reliable than TextMate’s, and being able to fold and unfold a page in terms of DIVs or TABLEs makes working on large documents so much easier - you really will wonder how you did without it.

However, if you’re writing code then the comparison is not necessarily as straightforward. If you’re using one of the languages that have been added using BBEdit’s XML-based ‘codeless language modules’ (that is Python, SQL, Setext, TeX, and YAML), you can tweak the regular expression used to determine where to place the automatic folds. But for compiled languages, you’re stuck with some pretty simplistic choices. With PHP for example, you get auto-folds put at the class and method/routine level. This is in contrast to TextMate, which liberally sprinkles them at every pair of braces. In use you may prefer the BBEdit philosophy of simplest possible plus manual, but TextMate the chance of customisation. That said, BBEdit’s folding does appear rock-solid, unlike TextMate’s occasional flaky choice of fold points.

BBEdit’s glossary function has also had a makeover, and the renaming Clippings palette makes it easier to create clippings, and combined with the ability to insert them using auto-completion makes investing the time to create them more worthwhile. As has already been mentioned, Language support has expanded, and also been improved, with the new SQL module supporting MySQL, PL/SQL, and PostgreSQL, and the JavaScript module handling syntax colouring for anonymous functions.

The larger preference window, and ability to search for preferences has made BBEdit easier to customise.

The editing window itself has had a Tiger-tweak, with larger icons, and a re-organisation of various pop-up menus. Disk browsers now offer a filterable hierarchical view, and you can even read, search, and save files in gzip format simply by adding the .gz suffix in the save dialog. Coders will also welcome the auto-save feature, an improved diff function (which will highlight sub-line differences), and an update of the regex engine to include PCRE 5.0 named sub-expressions.

At one time BBEdit was the acme of text editors, envied by Windows and Linux users alike, and a reason to develop on the Mac. It’s safe to say that Despite the competition, and thanks to a generous, more-than-a-0.5-upgrade BBEdit’s still the Daddy.