BBEdit 9.1 Release Notes

This page documents all feature enhancements and bug fixes included in the BBEdit 9.1 update.

For details on all the new features and enhancements offered by BBEdit 9.0, please see its release notes.

For information on changes made in previous versions, please see the release notes archive.

For detailed information on using any of BBEdit’s features, please refer to the user manual (choose “User Manual” from BBEdit’s Help menu).


BBEdit 9.1 requires Mac OS X 10.4 or later.

This version is a Universal application: it runs natively on both Intel-based and PowerPC-based Macs.


* BBEdit now includes a copy of Consolas Regular, an excellent
antialiased code editing font. This font is licensed from Ascender Corporation for use
only with BBEdit.

* The internal FTP implementation has been rewritten to
improve performance and reliability. Users with dual (or
more) core machines may notice additional performance

The “Passive” setting for FTP is no longer used. When
transferring, BBEdit will first attempt a passive
connection; if the server does not support passive
transfers, BBEdit will then attempt a non-passive (PORT)
connection. Thus, the “Passive” setting is gone from the FTP
preferences, FTP browser, Save to FTP dialog, and the
scripting terminology for FTP commands.

* The file filtering interface supports a new term:
“File Path”. This is a simple string match against a given
file’s full path.

* The Text Files preference pane carries a new option:
“Trim trailing whitespace”. If this preference is enabled,
BBEdit will trim all trailing non-vertical whitespace from
the file before writing it out.

* Editing: General has a new control: “Include
dictionary words in completion list”

* The line bar is now drawn in the system font, anti-aliased.

* You can send data to the scratchpad via the command line tool:

ls | bbedit --scratchpad

* You can script appending text to the scratchpad:

tell app "BBEdit" append to scratchpad "Dude!" end

* The ASCII floater uses the “standard” names for NUL, BEL,
etc. for characters below space (0x20).

* The CSS markup tools and function parser are now in sync
with the logic used by the syntax coloring engine: a <style>
element’s contents are considered to be CSS if there is no
type attribute, or if there is one, and it’s value is

* If Perforce is installed, the bbedit command line tool will
attempt to map depot specs and client specs into file paths.

* You can now enter (or paste) a Perforce depot specification
in the “Open File by Name” dialog and BBEdit will ask
Perforce to resolve it. (You’ve been able to use Open
Selection on a Perforce spec for a while now, so maybe this
is more of a bug fix than a feature addition.)

* If a project document is open, Open File by Name and Open
Selection will look in the project for matches, first
examining discrete file entries, and then (if necessary)
searching any folders in the project. If multiple projects
are open, BBEdit will use the frontmost one (in window Z

* Language modules may now be installed by double-clicking
them (or by drag-and-drop to the application). Plug-ins and
language modules both offer an “Install and Relaunch”

* Project documents now support relative references.

Newly created items will be created with relative reference
information. When resolving a project item, we’ll always try to
resolve via the relative information, then fall back to the absolute
and alias data.

Project files created with previous versions of BBEdit are
upgraded to contain relative locator information.


* The factory default font is now Consolas-12. If you
never chose a default font before, your documents may now display
in Consolas-12. If this is not to your liking, adjust the display
font accordingly in the “Editor Defaults” preferences.

* Removed the “Create New Document” checkbox from the
New HTML Document dialog; it always creates a new document

* Revamped FTP/SFTP browser windows. The layout has been
redone, the interactions have been remodeled, the directory
popup is much more functional, and the file list now
includes the modification date as reported by the server
(and the sort order can be changed).

* The “Save to FTP/SFTP Server” dialog has been rewritten and
modernized. The changes here largely parallel the ones made
for FTP browsers: freshened look and feel, sortable file

* The default line break description for CR is “Classic
Mac” to attempt to discourage people from choosing it
inappropriately. Both the preference pane and the Save
dialog now use the same wording.

* Changed the default completion threshold for ctags from zero
characters to three (so you won’t see any ctags completions
unless you’ve typed at least three characters).


* Restored some missing code which allowed open events to specify
additional properties. This fixes a bug in which, where
Workspaces do not correctly restore window positions.

* Fixed a bug where project items were not opened on single click
if that click also had the side effect of scrolling the list
item into full view.

* If Apply Text Factory changes the length of the text, the
selection range shrinks or grows as appropriate.

* The view state (line numbers, tab stops, and page guide)
for the Scratchpad window persists across window closures.
(previously, only document state was preserved)

* The Search and Replace fields both scale when the text factory
configuration sheet is resized.

* Improved the printing/pagination behavior when printing web
preview windows.

* Added a default preference for
Startup:RestoreApplicationState, and removed the in-code
defaults. This corrects the problem where if you had never
changed the preference, the application behaved as if it
were enabled, but the prefs UI showed it disabled.

* Trying to save a binary plist with syntax errors now
reports a slightly more useful error.

* PHP classes and interfaces which extend/implement more than
one thing (other classes or interfaces) are now listed
correctly in the function popup and receive auto-generated
fold points.

* Fixed a regression which made it impossible to select windows
with non-ASCII titles from the window menu.

* Fixed bug which prevented worksheets from reloading their
saved markers.

* Using the shift left operator (in a Ruby file) to append a
quoted string onto the end of another quoted string will no
longer fool the Ruby module into seeing a heredoc where none
was intended. (Syntax disambiguation FTW!)

Example: foo = "testing " <<“123”

* Fixed a regression which broke shell worksheets for users whose
default shell was tcsh.

* Fixed a bug reponsible for the missing context menu in the
clippings floater.

* The document icon in the Preview toolbar now tracks the
source file’s icon, instead of being the generic document

* Fixed the tendency of one of the ponies (the pink one) to throw
a shoe on alternate Tuesdays.

* Worked around a crash that would occur on Mac OS X 10.4.x when
dismissing the Multi-File Search window using the Escape key
while an alternative input method was active.

* Fixed bug in which path information provided by “Edit in
BBEdit” clients wasn’t displayed in the Window menu (and other
places where it should have been used).

* Fixed bug in which Close & Delete (or its cousin, dragging the
proxy icon from the toolbar or window title bar to the Trash)
would behave incorrectly when the document in question was on a
remote volume. (The file was placed in the volume’s Trash
directory, but the Finder didn’t display it in the Trash.)

* Fixed bug in which the line-number argument (+NNN) to the
command-line tool wasn’t honored for requests to open remote

* Made changes to improve the performance of auto-save
(especially for large files) so that delays when auto-saving
should be much less intrusive than before.

* Made the Licensor button titles and explanatory text agree.

* Fixed a bug which caused text dropped into a Find or
Replace field to be lost if the Find window was inactive at
the time.

* Fixed a bug where displaying or opening a document in a second
window caused the soft wrap settings to be toggled off for all
views on that document.

* Improved the results list’s handling of deleted files.
(These appear for `P4 Opened` and `Working Copy Status`

* The presence of deleted files no longer incorrectly
forces the list into hierarchical mode.

* Deleted files are no longer inappropriately grouped
together in hierarchical mode.

* Fixed a bug which caused a color mismatch between static text
widgets and radio buttons and checkboxes in (some) inactive

* Corrected an edge case where the HTML markup tools would not
automatically encode " (double quotes) when used in an attribute

* Fixed crash which would occur when trying to use “Save as
Styled Text” or “Save as Styled HTML” on the Scratchpad.

* Fixed bug in which dragging files directly into a project
collection would add them to the project in reverse order.

* Added “Default Font” to the prefs search table.

* Fixed a bug which prevented the Recent Items count and
Rubber Stamp text preferences from writing themselves out at
times other than when the preferences window was closed.

* Centralized responsibility for trimming off excess recent items to
one location, which fixes a bug which caused the oldest recent
Project to be the sacrificial recent item, even if there were other
older items

* Fixed crash which would occur when piping to BBEdit with a
project window in front, but with no active editing view.

* Added a try/catch block to handle the case of a missing
/usr/bin/tar executable during the upgrade App Support folder

* Functions named “get” or “set” in javascript files will no
longer break the function popup.

* Fixed crash which would occur if a non-text document type
ended up being selected in a results browser list, and then
subsequently deselected (or the window was closed).

* Results browsers will no longer attempt to display the
contents of non-text document files when such a file is

* When completing against ctags symbols, BBEdit will only
allow tags that are found in files of the same (or
appropriately related) language as the source file in which
you’re working.

* Fixed bug in which sending multiple URLs from the “bbedit”
command-line tool would cause some to get dropped.

* Fixed a bug where <#> was incorrectly recognized as a
placeholder. The minimum placeholder is <##>.

* Fixed performance problem which would slow down editing
when a results window with a large number of entries was

* Improved the First Run experience by sniffing for old
serials, and warning appropriately. Also fill in version
numbers dynamically, instead of hard-coding.

* Attempting a replace all on a rectangular selection
provides a more descriptive error than before.

* Fixed bug in which files opened from FTP/SFTP servers
didn’t display the modification date from the server, but
rather the date/time the file was downloaded. This made
ordered comparison difficult.

* BBEdit now correctly matches port numbers and sftp vs. ftp
when figuring out when a file opened using the built-in
interface has already been opened.

* Fixed bug in which a failed CWD at login in the FTP browser
or save panel would leave the window in a strange state.

* Quieted an assertion when attempting to compute a sub-line
diff on an insert operation (where one side of the diff is

* Fixed bug in which a multi-file Find All or Replace All
would cause the next interactive search to behave as though
“Start at Top” had been turned on.

* Fixed a performance problem which would manifest as a delay
when saving in the presence of a very large quantity of

* If an SFTP server returns an out-of-range length in
response to a read request, we now report a specific error
code (22814) rather than the generic I/O error result (-36).

* Fixed bug in which searching a Search Results window would
incorrectly search the file selected in that window, rather
than searching all files represented in the window’s

* Fixed bug in which a -50 error would be reported if doing a
Perforce “Show Opened” operation, with the “Opened Files”
results window in front and nothing in it selected.

* Fixed a bug where in certain situations (close all
documents, or the scripting equivalent) documents with
unsaved changes which were hosted in a project window could
be closed without confirmation (or being saved).

* Adjusted the focus order in the confirm-close dialogs and
sheets to match the ordering used by the system.

* “Use Selection for Replace” now updates the search/replace
history in situations where it didn’t before.

* Fixed a bug which could lead to a crash when viewing a folder on
certain volume types (SMB, for example) in a project window or disk
browser, if that folder’s contents changed.

* Avoid loading up the “Search Backwards” setting at startup
unless the modal Find dialog is in use; this avoids
mysterious Replace All failures if your last act with 8.x
was to do a backwards search.

* Fixed a bug where selecting a document in the documents
drawer had the incorrect side effect of switch keyboard
focus to the main window. (This was noticable only if you
had “Allow documents drawer to acquire keyboard focus” turned
on, and the drawer had keyboard focus.)

* Updated the Expert Preferences help to address a couple of
errors and omissions.

* Corrected the expert prefs help for image, movie, and PDF
handling prefs.