BBEdit 10.1.1 Release Notes

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

For details on all the new features and enhancements offered in BBEdit 10.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 10 requires Mac OS X 10.6 or later (10.6.8 or later recommended).

PowerPC-based Macs are not supported.


  • In project windows, "New Text Document" and "New Folder" now prompt you (using a standard save panel) for the location of the item you wish to create. After creating the item, BBEdit will figure out whether the item needs to be added to a collection (if one was selected when using the commands) or to the top level of the project, or adjacent to another item already in the project.

  • There's a new script attachment point for documents: documentShouldFinalizeAuthenticatedSave. This gets called in cases where an authenticated save is necessary (for text documents only). An attachment script for this purpose might look like this (the comments are important, so read them!):

on documentShouldFinalizeAuthenticatedSave(theDocument, tempFilePath, destinationPath)

    -- on input: tempFilePath points to the contents of the document
    -- written to a temp file, ready to move to the destination;
    -- destinationPath is where the file should be copied.

    -- on exit: if the operation succeeded, delete the temp file (or
    -- else the application will assume the operation failed) and
    -- return YES for success

    --  this is pretty straightforward: "cp tmpFilePath destinationPath"

    do shell script "cp" & " " & quoted form of tempFilePath & " " & quoted form of destinationPath with administrator privileges

    --  now remove the temp file, this indicates to the application that we did the work

    do shell script "rm" & " " & quoted form of tempFilePath

    return true
end documentShouldFinalizeAuthenticatedSave

  • More improvements to Open File by Name:

    • If there's no project open, and Xcode isn't running, OFBN will look in the root directory of the frontmost disk browser (if available). If there isn't one, then OFBN will look in the CWD of the frontmost shell worksheet (if available). And finally, if that isn't available, OFBN will use the directory containing the frontmost text document (if it has been saved to disk).

    • Choosing "Open Selection" (which is available when appropriate text is selected in the front editing view) will now bring up the Open File by Name window, and populate the search box with the selected text (and the search results, if any).

    • The contents of the search box are now accessible via the scripting interface, as the search string property:

      get search string of open file by name window set search string of open file by name window to "Hello World"

      Changing the search string will update the results.

  • The site setup panel (for each site in the BBEdit -> Setup -> Sites list) now contains an "Addressing:" setting. This lets you control the default addressing used when generating links for anchor and image (and other tags with URI attributes). The settings are:

    • Automatic (pre-10.1.1 behavior): When the linked file is in the same folder or a descendant of the document, generate the link relative to the document. Otherwise, generate the link relative to the site root directory.

    • Relative to site root: Always generate the link relative to the site root directory.

    • Relative to document: Always generate the link relative to the document.

  • The "Strip trailing whitespace" and "Ensure file ends with line break" options can now be configured per-language, if desired.

  • Added a "Privacy" button in the Application preferences for non-App Store builds, linked to the privacy policy on our web site.


  • BBEdit will no longer automatically reveal documents in the project list when you select them. View => Reveal in Project List still works. If you want automatic revealing back:

    defaults write com.barebones.bbedit AutoRevealSelectedDocumentInProjectList -bool YES

  • Scanning for .bbeditSettings files is now off by default, gated on an expert preference. The feature is deprecated, so don't get too attached to it because it's going to go away for good in a future version. Meanwhile, if you rely in it, please let us know how you use it, and you can turn it back on using an expert preference:

    defaults write com.barebones.bbedit EnableSettingsScan -bool YES

  • Added support for the emacs esc-T (transpose-words) gesture.

  • BBEdit now makes a reasonable guess at a filename extension when using "Save As" for a new document.

    Language modules can specify a "BBLMPreferredFilenameExtension" key, with a string value. This will be used if necessary. If it is absent, the first item in the BBLMSuffixMap array is used.

    You can also use an expert preference to set the preferred extension on a per-language basis:

    defaults write com.barebones.bbedit PreferredFilenameExtension_<LanguageName> -string "abc"

    Replace <LanguageName> with the actual language name; for example:

    defaults write com.barebones.bbedit PreferredFilenameExtension_C++ -string "cxx" defaults write com.barebones.bbedit PreferredFilenameExtension_YAML -string "yaml"

    Note that the extension you specify should not include the leading period.

  • The user manual is no longer included in the application package. When you choose "User Manual" from the help menu, the application will download the proper user manual PDF and store it in the Application Support folder. (Thus, it only needs to download the PDF once, unless you remove it or update to a new version.)

  • The "Open the User Manual" option has been removed from the first run dialog.

  • The file filter menu used in disk browsers and project windows has been reworked to make it a little more useful. The options are now:

    • All Available: When selected, an item is listed if BBEdit recognizes it as one of its own document types. This includes text files, images, text factories, and so on.

    • Text Files Only: Only text files will be listed.

    • Everything: Every item is listed, including invisible files and folders.

  • The default keyboard equivalent for "Un/Comment Selection" is now Command-/, for consistency with Xcode.

  • The Markup -> Utilities -> Comment and Uncomment commands have been removed, since they're redundant with Text -> Un/Comment.

  • When using Un/Comment, if nothing is selected, BBEdit will apply the line-comment delimiter to the entire line containing the insertion point. If you preferred the old behavior:

    defaults write com.barebones.bbedit CommentWholeLineWithInsertionPoint -bool NO

    The PreferLineCommentsWhenCommenting expert preference now defaults to YES (and it is documented in the Expert Preferences help now), so BBEdit will prefer to use the language's line-comment delimiter whenever possible.


  • Fixed bug in which certain external file system changes would cause the project window to inappropriately activate (and de-minimize, if it had been minimized).

  • Fixed bug in which a project document closed with its file list hidden would be confused when reopened.

  • Fixed bug in horizontal scrollbar calibration in files with extremely long lines.

  • Fixed a TeX syntax coloring bug for math sections delimited like \(math\) and \[math\].

  • Fixed bug in which an incorrect error was returned from attempts to save changes in a Zip archive.

  • Fixed crash in the Pascal function scanner which would occur in files that used "Object" as a data type.

  • Fixed bug in which dragging a window to a screen that was too small to contain it would fail to resize the window to fit on the screen.

  • Fixed bug in which the markup panel wouldn't open to the proper size when it was invoked at or below a certain point on screen.

  • Updated the Growl framework to 1.2.2.

  • Fixed bug in which CSS url(...) values with nothing (or only whitespace) in between the parentheses would crash the CSS parser.

  • Restored site-installation-specific preferences (for large managed installations) to working order.

  • Fixed bug in which an "omnibus" attachment script (Application Support/BBEdit/Attachment Scripts/BBEdit.scpt) was not consulted for attachment points when it should have been.

  • Fixed bug in which an inopportune click in the markup tools palette while the markup panel was coming up would result in an undismissable error alert behind the markup panel, and a hung application.

  • Fixed cosmetic bug in which stale action buttons were briefly visible in windows with the file list collapsed.

  • Fixed bug in which settings saved in document state were inappropriately applied when language-specific settings already existed.

  • Added .cxx as a factory default extension mapping for C++.

  • Worked around bug in the old Flip video codec (which many folks still have installed) which would cause BBEdit to crash when opening or viewing images.

  • Fixed bug in which properties specified in an "open" event were not properly applied when the target of the event was already open. Among other things, this meant that saved workspace restoration didn't move any palettes that were already open.

  • Fixed bug in which projects would stop letting you interact with items stored on unmounted volumes, even after the volume had been remounted. (For example, an SMB or AFP server volume.)

  • Fixed a couple of bugs which made it difficult to relocate project documents, and which may interfere with a project's ability to find files contained in it.

  • Fixed a latent memory management bug in the Open File by Name text ranking.

  • Made a change to improve performance of "Open File by Name" in situations where a long file name (often complete) was entered or pasted in to the search box.

  • Clicking on a project list item that is already selected will now cause it to be opened, in the case where it had previously been closed by clicking on the "X" widget and nothing else had been selected in the meantime.

  • Fixed bug in which revealing a file in the project list would sometimes twist open the wrong ancestor, in cases where the ancestor's name was a prefix of the file's actual ancestor directory name.

  • Fixed bug in which clicking on a project list item would cause it to open in a new window when the project window's editor view was collapsed.

  • Quieted a console warning about an autoreleased NSCFLocale, which occurred when doing a single-file Replace All.

  • Fixed crash which would occur when attempting to use a font with defective metrics, such that it reported a zero line height.

  • Fixed bug in which manually selecting a tag name from the markup panel's combo box did not correctly autofill the panel's attribute list.

  • When using the short-form "echo" construction in PHP, the opening = is now colored as a directive, along with the opening <?.

  • Made some changes to improve the accuracy of the Objective-C guesser, so that when opening a header file, the chances of it being correctly treated as Objective-C are improved.

  • The "//" operator in Perl should now be interpreted correctly in context.

  • Fixed bug in which changes to the Preview Helpers browser list did not take effect until quitting and relaunching BBEdit.

  • Fixed bug in which an overpopulated "Preview In" browser menu would have most of its commands disabled when they shouldn't have been.

  • Fixed bug in which scripted operations returning a list of results would incorrectly return a null result rather than an empty list in the case of no results.

  • Fixed bug in which "contents of selection of text" would return the wrong text in cases of a rectangular selection.

  • Added some missing expert preference defaults for CSS generation:

    CSSMarkup_NewLineBeforeBrace # use -bool NO to cuddle braces CSSMarkup_SimpleRulesOnOneLine # use -bool NO to use multi-line blocks for all rules CSSMarkup_PreferShortHexColors # use -bool NO to force #XXYYZZ instead of #XYZ

  • Exposed "files list visible" in the scripting terminology, as a property of the "project window" class (which is used for both multi-document windows and projects). Changing this property has the same effect as using "Show Files" or "Hide Files" on the View menu.

  • Fixed cosmetic in multi-file replace "Save" dialog.

  • Fixed bug in which the "move" scripting verb reported an error when trying to move documents between editing windows.

  • Fixed bug in which the Editor Defaults tab width and a couple of other preferences settings didn't take effect when edited unless you remembered to hit Enter.

  • "Strip trailing whitespace", if selected, is now applied before "Ensure file ends with line break", to avoid an edge case in which the file grows an extra line if the last line consists solely of whitespace.

  • Fixed bug in which items on unavailable volumes would show no icon rather than the intended generic icon.

  • Fixed bug in which BBEdit would inappropriately attempt to resolve remote volume references in projects when drawing the list of files.

  • Fixed bug in which multiple selected files were not accepted from the "Open Files with BBEdit" service. (Only the first selected file was opened.)

  • Fixed bug in which files opened from collections in the project list would inappropriately expand their parent hierarchy in cases where the item's parent folder was also in the project list.

  • Fixed bug in which documents were inappropriately revealed in the project list when being reopened in the course of opening the project document.

  • Fixed bug in which menu scripts which were aliases to the actual script file would not work correctly unless the alias name ended with ".scpt" or one of the other filename extensions known to be AppleScripts.

  • Fixed bug in which "Save Default Text Window" incorrectly read "Save Default Project Window" when the front window was a non-project window containing multiple documents.

  • Fixed bug in which project windows (backed by an actual project on disk) or instaprojects were inappropriately mixed in with non-project windows which contained multiple documents.

  • Fixed bug in which querying the "open file by name window" property from the scripting interface would result in undesired opening of the Open File by Name window, along with its attendant computational work.

  • Fixed bug in which certain changes to language-specific preferences would not take effect when they should have.

  • Fixed bug in which save authentication was inappropriately attempted in a case where it was unnecessary; specifically: a document with only dirty state and no content changes.

  • Normalized the behavior of Un/Comment when applied to text enclosed in block comment delimiters; this also ensures that HTML/XML text is commented correctly when using this command.

  • Fixed crash which would occasionally occur when closing a window while the Multi-File Search window was also open.

  • Fixed bug in which certain PHP expert preference keys were misnamed, which led to them being ignored (including their factory defaults).

  • Fixed bug in which clicks in a floating window weren't correctly passed through to the window's content, unless the window was the floating window that had been most recently clicked.

  • Added the PHP expert preferences to the help.

  • Assorted memory management fixes.

  • Fixed bug in which the Setup window would appear on screen before moving to its saved position.

  • CSS Un/Comment now works like the other languages.

  • Fixed bug in which the "Save Default Window" entry for differences results showed the incorrect name.

  • Fixed bug in which some of the fields of the "New HTML Document" dialog were ignored.

  • Made a change to reduce the amount of workplace-inappropriate daydreaming done while the application is idle.

  • Fixed a bug in which too much filesystem work was done by the internal document mechanics; it was most noticeable on slow file systems like sshfs.

  • Fixed crash which would occur when attempting to script a Find Differences operation and one (or both) of the items were not references to open documents or items on disk.

  • When using the Markup Builder, if there is only one option for tag creation (e.g. inside of a list), the panel will preconfigure itself for that option, rather than making you choose it from a one-item combo box first.

  • Corrected some omissions from the Tcl keyword list, and created a new list of predefined names.

  • Because pie.

  • In project lists, nodes representing aliases to folders can be tipped open to reveal their resolved contents.

  • Fixed bug in which certain file system changes would cause the active document to be undesirably switched to the one selected in the project or Currently Open Files lists.

  • Put in a defense against language modules with malformed suffix mapping lists (any or all of the mapping items are zero length).

  • If the AutoShowFileList or AlwaysShowFileList expert preferences are in use, "Save Default Window" will no longer store the file list visibility, so that those expert preferences aren't second-guessed.

  • Leading and trailing whitespace and line breaks are now stripped from string values in codeless language modules, to resolve situations in which a multi-line formatted pattern using (?x:...) ended with one or more carriage returns after the closing parenthesis, which would in turn cause the pattern to not function as intended.

  • Fixed bug in which certain malformations in codeless language modules were not detected early enough to prevent them from causing problems later on.

  • Codeless language modules undergo a more thorough check at load time, to catch errors such as missing key values, incorrect pattern syntax, and a couple of other things. The DebugCodelessGrepPats expert preference is no longer needed; any problems are logged to the console and problems of sufficient severity will prevent the module from loading at all.

  • Fixed bug in which "Run in Terminal" and "Run in Debugger" were inappropriately sticky for scripts run from the Scripts or Apply Text Filter menus.

  • Fixed a bug in which typing at the end of a line would fail to scroll the insertion point into view as it should have. Merry Christmas, Jim.

  • Armorplated the site of a reported (but not reproduced) crash; and made a change to startup error reporting in order to prevent a future occurrence.