BBEdit: Not Quite Bare Bones
President, Johnston/Johnston Consulting, Macintosh Developer
I first started using BBEdit 2.2 about six months ago and was impressed with all of the features available in this freeware package from Bare-Bones Software. Not only was it free, but there was an Internet address for support: [email protected] Since then, two other versions of BBEdit have become available: BBEdit Lite 2.3 and BBEdit 2.5. BBEdit Lite 2.3 is a smaller version of BBEdit 2.2 but lacks some of the features of 2.2. It is, however, the official freeware version of BBEdit – version 2.2 is no longer supported. BBEdit Lite has everything that 2.2 has, except:
- XTND support
- THINK Reference support
- ToolServer support
- On Location support
Bare-Bones Software released BBEdit 2.5 about the time of the Apple World Wide Developers conference. Unlike BBEdit Lite 2.3, BBEdit 2.5 is the commercial version of BBEdit (yes – you pay for this one – but it is worth it!) and sports a host of new features not available in previous versions. BBEdit has too many features for me to completely cover them all in the space of this review, but I will try to cover those that I found most interesting.
First, let’s talk a little about what BBEdit is. BBEdit is a text-only editor well-suited for software developers. BBEdit is not a word processor in the sense of Nisus or Word. You won’t be inserting any graphics or QuickTime movies into BBEdit – nor will you be changing the font or font style every other paragraph. You will be working with a stable, well-written text editor that has been fine-tuned for software development.
I have used BBEdit 2.5 since the release of the Symantec C++ compiler and will, for the most part, be reviewing this commercial version of the product. I have used BBEdit version 2.5 in conjunction with Symantec C++ 6.0, Think Reference 2.0, and the MPW ToolServer on several Macintosh platforms – a Mac IIcx with Radius Rocket 25i, a Mac LC III, and a PowerBook 170 – all running System 7.1. BBEdit ran equally well on all platforms, but is the most useful when there is plenty of memory available to have all the above Apple event-savvy applications loaded and running. This was no problem with the Mac IIcx/Rocket (32 MB) and the LC III (20 MB) but worked less well on the PowerBook 170 (8 MB). With only 8 MB available I found that I could leave the THINK Project Manger and BBEdit open simultaneously and had to alternate between using the Symantec Debugger or the THINK Reference (but not both). Your use will vary depending on the size of your system and projects. It should be noted that this is not BBEdit’s fault, since it needs a minimum of 320K of memory – more for lots of open documents.
BBEdit has two basic kinds of windows, browser windows and edit windows. It can show multiple disk/file browsers, multiple Symantec Project browsers, a compile error browser, and a glossary browser.
The disk/file browsers allow you to browse any installed file system and view any files that BBEdit recognizes in the bottom panel of the browser. BBEdit is also compatible with the Claris XTND file filters. You can select and copy any text displayed in the browser, but you cannot edit the file without opening an edit window. The Project browsers allow you to look at the contents of any Symantec Version 6.0 Project to see which files or libraries (sub-projects) are in the project. You can view any text files included in the project or automatically launch the Project to start using it. Note that this means that the THINK Project Manager doesn’t have to be running in order to parse the projects! BBEdit can also open project documents created by THINK C 5.0 or THINK Pascal 4.0. The Compile Error browser lists all errors generated by the Symantec compiler – more about it later. The Glossary browser allows you to access the glossary feature of BBEdit.
Using BBEdit as the main editor in conjunction with the new Symantec 6.0 Project Manager is virtually seamless and adds a host of features that you won’t find in the standard Symantec editor. A few of the features I particularly appreciated were:
- split screen editing panes
- multiple file and disk searching
- compare tools similar to the MPW compare script
- compiler errors batch window
- ToolServer support
- THINK Reference/MPW 411 support
- support for DOS files (LF support etc.)
BBEdit communicates via Apple events to the MPW ToolServer, THINK Reference 2.0, and the Symantec compilers. To take advantage of this integration you must run System 7; however, BBEdit does work under System 6. My main motivation for using the commercial version of BBEdit is that it has integrated support for the new Symantec C and C++ compilers. In particular, you can use BBEdit 2.5 as the host editor when using the Symantec compiler by selecting "Use external editor" in the Editor preferences under the THINK Project Manager Options. Then place an alias (renamed "Editor") to the BBEdit application in the Tools folder in the Symantec compiler folder. This enables the Symantec C/C++ compiler to communicate with an external editor using Apple events under System 7.
Once you have the Symantec compiler set up to use BBEdit as the external editor you can execute almost all of the compiler functions from BBEdit. BBEdit’s THINK menu supports bringing the THINK Project Manger to the front, Compile, Check Syntax, Add File, Add & Compile, Disassemble, Preprocess, Precompile, Bring up to Date, Make, and Run. Unfortunately not all the command key equivalents for the compiler commands are the same as those in the THINK Project Manager.
The THINK Project Manager communicates compiler errors and warnings via Apple events to BBEdit, which displays them in the Compile Errors browser window. The browser lists all the errors reported from the Symantec compiler and shows the selected file and highlighted error in the lower section of the browser. To edit the error you double-click on the error listed in the browser, which opens the file and displays the line containing the error. As with the Symantec Editor, the file does not have to be explicitly saved to disk before compiling or checking syntax. For some reason BBEdit never adds the Compile Errors window to the its window management menu – all other open windows are added to BBEdit’s Windows menu for easy window management. When working with several files you can easily lose sight of the Compile Errors window. Hopefully this is just an oversight and will be changed in the next release of BBEdit.
BBEdit can NOT set breakpoints for the debugger. This is a shortcoming because to set breakpoints you must go to the THINK Project Manger, turn off the Use external editor option, and then use the Project Manager’s built-in editor to set the breakpoints or set them directly in the debugger window. This is an oversight of the THINK Project Manger’s Apple event suite which I hope Symantec will rectify in later releases.
In addition to Symantec compiler support, BBEdit also has integrated support for the MPW ToolServer. This feature puts it in a class shared by few other editors. BBEdit can start and quit ToolServer from the BBEdit ToolServer menu. BBEdit also adds to the BBEdit ToolServer Menu any MPW tools or scripts that the user places in the BBEdit ToolServer folder. This makes for a great replacement to the cumbersome MPW environment and is essential for those developers using MPW compilers. BBEdit opens a MPW Worksheet window for ToolServer that allows you to communicate with the MPW environment. You can generally perform any action that you would normally run from MPW as long as it doesn’t require an open text file to perform. Once again, this limitation stems not from BBEdit, but from ToolServer.
BBEdit recognizes MPW Projector source control information but does not currently directly support the MPW SourceServer. Rich Siegel, BBEdit’s author, indicates that he hopes to add direct support for SourceServer along the lines of the existing ToolServer support in the near future.
Be aware of one quirk when using BBEdit with files that are under MPW Projector support. In the current version of BBEdit, Projector and Read-Only support are mutually exclusive. If you check both Projector-Aware and Open Read-Only under the Filing Preferences, BBEdit will overlook any projector status. In other words, if both of these options are checked you can quickly change from Read-Only to Read-Write without seeing the "Do you want to change the status of the projector file to Modify Read-Only" dialog, fooling you into thinking that the file is not under source code control. When working on a software project not all the files I’m looking at may be under source code control (Projector), such as Mac Header files, MacApp source, or TCL source. In this case I would prefer to default to opening all files as read-only to help me from changing the source by accident. Rich is aware of this quandary and hopefully will address it in the future.
BBEdit supports both THINK Reference and MPW 411 files. You can select which reference will be your primary lookup for Toolbox help. I tend to use the THINK Reference as my primary source of information; however, the MPW 411 system allows you to build your own custom help files for projects. You must run the MPW ToolServer to access 411 help files. Regardless of whether you use THINK Reference or using MPW 411 files you access help via the Toolbox Lookup menu item under the Search menu, or via the command minus keyboard shortcut. BBEdit then sends the appropriate Apple event to request the information for the highlighted words.
BBEdit has strong search and replace capabilities including standard GREP (Global Regular Expression Parser) style searches that enable you to easily search for textual patterns. You can search the active window, all currently open documents, the entire project, or entire directories for matches. This can also extend to global search and replace. Batch search operations are displayed in a Search Results browser window added to the Windows menu. Search Browser windows have an upper section showing the line containing the found items and a lower section that displays the rest of the text file surrounding the selection. You can view the entire file in the browser window, but you cannot edit it. Double-clicking on the search list or on the Open button quickly opens the text file. BBEdit can open all the file types that it recognizes – either text-only or any file that is supported through the Claris XTND file filters – and can search the data fork of any file.
You can extend the capabilities of BBEdit by writing your own code resources of type BBXT. BBEdit loads all code resource extensions in the BBEdit Extensions folder at program startup and places them in the BBEdit Extensions menu. BBEdit ships with a handful of extensions – some are useful in their own right and a few are just examples to help you write your own BBEdit extensions. The manual carefully details how to write your own extensions and includes the programming interface to BBEdit. Quite frankly, BBEdit is so full featured that most users will never have the need to write their own extensions, but it is nice to know that the flexibility is there. Other BBEdit users have written a number of extensions generally available on the nets.
My pet peeve with BBEdit is that it lacks a built-in pop-up function/marker function for quickly accessing C/C++ functions and markers similar to the ones in the THINK Project Manger Editor. BBEdit does come with a demo copy of PopUpFuncs ($45 from SciComp Software) that provides this functionality, but this is a glaring omission. Other users may not consider this a problem, but considering this is one of the most heavily used features of any programmer’s editor I think it should be an integral part of the editor and not an add-on. Also, PopUpFuncs 2.0 doesn’t list C++ overloaded operator methods in its list of functions, making it incomplete for C++ work.
BBEdit’s manual is detailed and well-written in a style similar to the old THINK C 5.0 manuals. Overall, the product is well thought-out and has evolved and been tested over a period of years by hundreds (perhaps thousands) of early BBEdit freeware users. BBEdit provides much functionality in an uncluttered interface that belies its power. This program works and will work for you regardless of which development system you use, just as it provided a strong, straightforward, tool set for software development for me in both THINK C/C++ and MPW. BBEdit is my editor of choice for almost all development projects.
BBEdit retails for $99 and can be purchased directly from Bare-Bones Software. There are also discount prices for students (with proof of enrollment) for $29, and $49 for previous users of the old BBEdit. Users who want to upgrade can send in a screen shot of their BBEdit Lite or BBEdit 2.2 About box or Get Info window to get the discounted price. There is also a discount for competing products (QUED/M, Vantage, etc.) or complementary products (THINK C, THINK Pascal, MPW, etc.) at $49. E-mail orders should be sent to <[email protected]>, or to 73051,3255 on CompuServe.
Bare-Bones Software — 508/651-3561 — [email protected]