BBEdit 14.1 Release Notes
BBEdit 14.1 is a feature update, which includes notable new features, visible changes to existing features, and fixes for reported issues.
Because BBEdit 14 builds on features that were added during the BBEdit 13 cycle (as well as previous versions), please take a few moments to browse the release notes archive and review the release notes for any versions that you may not have seen.
To get a high-level overview of what's new in BBEdit 14, with screen shots, see the What's New in BBEdit 14 page.
For detailed information on using any of BBEdit's features, please refer to the user manual (choose "User Manual" from BBEdit's Help menu).
Important: Please make sure that you have read the BBEdit 14.0 change notes, as there are significant changes from previous versions.
BBEdit 14 requires Mac OS X 10.14.2 or later, and is compatible with macOS 10.15 "Catalina" and macOS 11 "Big Sur".
If you are using macOS 10.14 "Mojave", please make sure that you have updated to the latest available OS version (10.14.6 or later).
If you are using macOS 10.15 "Catalina", please make sure that you have updated to the latest available OS version (10.15.7 or later).
If you are using macOS 11 "Big Sur", please make sure that you have updated to the latest available OS version (11.6 or later).
If you are using macOS 12 "Monterey", please make sure that you have updated to the latest available OS version (12.2.1 or later).
If you have been using any previous (13.x or older) version of BBEdit in Free Mode, starting BBEdit 14 will reset your 30-day evaluation period, so that you can have a full trial of the new features.
If you have previously purchased a license from us for BBEdit 13 or older, you will have a full 30-day evaluation period in which to try out BBEdit 14's new features. License upgrades are available at a discount for existing customers. Please see the BBEdit upgrades page for information and instructions.
BBEdit can create and open multiple notebooks. Use File -> New -> Notebook to make a new one; and open them from the Finder or elsewhere as usual.
Notebooks can reside anywhere you like. If using a file sharing service (Dropbox, iCloud Drive, etc) you should take care to ensure that the notebook is open in only one running BBEdit at a time. Any notebook you create is supplementary to the built-in shared notebook.
Open notebooks are listed in the "Search in:" list in the Multi-File Search window.
You can arrange notes in a notebook's sidebar by clicking on the popup indicator on the right-hand side of the sidebar header. There are options for arranging by name, modification date, and creation date.
When a note is the active document, or is open in a window by itself, the "Close & Delete" command on the File menu will read "Remove Note", and choosing it will close the note and remove it from its notebook. As always you can assign a keyboard equivalent to this command using the "Menus & Shortcuts" preferences.
Image files are browseable in disk browsers and projects, and openable into ordinary window sidebars. The image view includes metadata details, and a "Remove Metadata" button is available for deleting image metadata if desired. (BBEdit will create a macOS version snapshot of the image file before doing so, if possible.) BBEdit will attempt to pick a background color (shade of gray) that provides reasonable contrast with the image. If desired you can adjust the background color using the slider adjacent to the image, and BBEdit will remember this setting per-image.
The File Info item (in the navigation bar) and "Get Info" command (from the menu bar or contextual menu) will show an image thumbnail and the image metadata in respective tabs in the info popover.
For non-image files, the "Metadata" tab in the "Get Info" will display (in a vaguely human-readable presentation) the file system and/or Spotlight metadata available for the item.
When deploying a web site project, a new option is available: "Remove image metadata". This will remove all metadata from the uploaded image file (without affecting the local original). It's off by default.
"Process Lines Containing" provides the option to invert the
match test, such that lines which do not match the provided
search string or pattern are collected, rather than those which
do. If desired you can get this behavior by selecting "not
containing" in the "Process Lines Containing" panel, or, if
scripting, providing the "
inverting test: true" parameter.
Added "BBEdit Retro" (light and dark) built-in color schemes. If you prefer monochromatic text, or if you want to see what life was like in BBEdit before version 4.0 was released in 1996, these are for you.
Emmet expansion works for CSS/SCSS (as determined by the document's language, and/or the location in the document).
Multi-File Search can use a paths file as a list of files to be searched. Drag one in to the "Multi-File Search window" or use the "Other" button as needed. (You can search multiple paths files in a single search, if desired.)
bbfind(1) tools can likewise use paths files as
input, as a list of files to be opened/searched (respectively).
Relevant details are in each tool's man page.
BBEdit can load codeless language modules written using YAML or JSON. This may lower the barrier to entry, since (depending on your individual predilections) either is simpler to read (and write) than XML property lists. The keys and values remain as documented.
Made a change so that filename extensions are hidden for some types of items in the Multi-File Search source list.
Added a parameter to the
odoc scripting event, so that when
.paths file, the client can specify whether it should
be treated as text (opening into an ordinary document view) or as
a list of paths to be opened into the front window. The default
false, so that
.paths files opened via conventional means
open as text documents.
Applications which generate paths files can add this Apple Event
keyword to the
#define keyOpenAsPathsFile 'PthF' // typeBoolean/typeTrue/typeFalse
If you are using macOS Monterey (12.x), Shortcuts.app will offer a couple of useful actions: "Create Text Document" and "Create Note". These will do what their names suggest, and create the respective item using contents provided in the shortcut action.
If you are running on macOS Monterey (12.x) and an LSP server returns Markdown documentation in response to reqeuests from the "Show Symbol Help" or "Show Parameter Help" requests, BBEdit will display that in preference to the plain text.
When displaying completions obtained from a language server, the completion panel will display documentation provided by the server, if any was provided.
Reworked the appearance of the "Commands" window a little bit.
Rearranged the "New" submenu on the File menu, so that there are fewer separators. Things that don't relate to the creation of text documents (or notes) are below the separator and in alphabetical order.
Font selection for text views (for Editor Defaults and other places) limits the maximum font size to 144pt, to eliminate confusion caused by miskeying in the font panel's size field, which itself can specify an arbitrarily large size.
For documents in languages for which a language server is installed and running, "Show Symbol Help" on the Edit menu will show detailed information based on the start of the selection range in the document. (This is based on the LSP "hover" feature, for those who are curious.) As always for LSP features, not all servers support this feature, nor is help guaranteed to be available at any given point in the document.
When using "Show Blame" (Git) or "Show Annotation" (Subversion), the resulting annotation will place the insertion point at the beginning of the line that was selected in the source document (if there was one).
When removing a note, BBEdit will rename the file in the Trash to reflect the title displayed in the application, to make it easier to identify (and if necessary rescue) the note file.
For brand-new preferences, "Wrap around" for text searches defaults to "on". (This is consistent with macOS behavior). You can always turn it off in the Find window, if desired.
It's possible to select text in the Clipboard window. (Be careful what you wish for.)
Made a change so that the Clippings palette remembers which clipping sets were twisted open across invocations (and runs of the application).
#! menu commands implemented by language modules (e.g. "Run" for
Python) documents will present progress in a window sheet, rather
Made an internal change so that multiple language modules which
support LSP can share a single server instance, if desired. For
example, all of the C-family languages use
and Typescript both use
typescript-language-server; and PHP and
"PHP in HTML" both use
intelephense. With this change, these
languages are configured to respectively use a single server
instance, instead of starting one server per language. This
reduces memory and CPU utilization for supported languages and
If you really need BBEdit to display glyphs for characters in the Unicode "private use area" (which isn't really possible, unless you've got a custom font), you can use this Terminal command:
defaults write com.barebones.bbedit DisplayPrivateAreaGlyphs -bool YES
This will take effect the next time you start the application.
Made the green background used in function menu and completion item badges a little darker, to improve contrast.
When hovering over a saved search set in the Multi-File Search window source list, a tooltip will appear that displays the items contained in the search set. (NB: search sets are a deprecated feature; we recommend that you use projects instead.)
Made the Symbol Help panel a little wider.
Fixed crash which would occur at startup when the conda
configuration script ("
conda.sh") existed but could not be
read. This typically occurred in Mac App Store builds in which
sandbox access was not granted.
Fixed a bug in which Mac App Store builds might not be able to
conda is installed, unless sandbox access had
previously been granted.
Fixed bug in which a 12610 error would occur when trying to save changes in a Zip archive when using the Mac App Store build and sandbox access had not been granted.
Fixed bug in which the second Zip-related error to occur would cause the application to exit quietly.
Fixed a crash which would occur when a file system API would sometimes unexpectedly "soft fail" by returning a "success" result without actually providing the requested data.
Made a change to guard against the possible cause of a (non-reproducible) hang reported while making a selection in a Differences window.
Fixed memory leak when using the "Commands" command, which would occur if there were any saved Notes.
Guard against a nonreproducible crash when a file system API unexpectedly returns nil ("should never happen").
Made various internal changes to improve the efficiency and OS compatibility of the machinery that runs Unix shell scripts and does other Unix-y things.
Made some systemic changes to improve the performance of some text transformations: Add/Remove Line Numbers, Process Lines Containing, Process Duplicate Lines, Prefix/Suffix Lines, and Strip Trailing Whitespace.
Reduced the transient memory requirements of the "Precompose Unicode" transformation when applied via a menu command or the AppleScript interface.
Fixed bug in which clicking in a popover's trigger location when that popover was already open (e.g. clicking on the gear for Text Options) would close the popover, and then immediately reopen it.
Improved progress reporting when uploading files by dragging them to the FTP/SFTP browser window.
Fixed bug in which right-clicking on an item in a disk browser would also cause it to be viewed in the display area.
Adjusted the vertical alignment of icons used in menu item titles when running on macOS 11.0 and later.
The Perl function scanner will no longer allow anonymous
sub followed by a brace with nothing but
whitespace in between) to confuse function and fold generation.
Such constructs are also included in the function menu,
The Ruby language module will color
literals as it does other compound literals.
Made a change so that svn "Revert" or git "Discard Changes" will ask Time Machine to create a file version for the file being reverted, so that it's possible to use "Compare Against Previous Version" to rescue an inadvertent revert.
Made a change so that Open File by Name and "Commands" take less time to come up when the Open Recent history includes files on remote file systems (e.g. SMB/NFS).
Added missing file filter terms to the scripting dictionary.
Fixed malformed alert messages when using "Compare with Base" and similar Subversion commands for items not in the repository (or scheduled for addition).
Fixed bug in which typing into an empty untitled document would reset its editing and display options to the defaults for its initial language (usually "Text File", unless changed in the Languages preferences), thus discarding any options changes made just before typing.
Fixed bug in the Java function scanner which would cause fold
generation to break in cases where a
new keyword was placed in
an infelicitous location.
Fixed bug in which some Git commands were incorrectly disabled for the active document.
Made a change to improve performance and reduce memory utilization in the code which locates ctags files.
If the built-in updater gets an error trying to move the BBEdit
application to the trash, it'll ask if you want to try deleting
it immediately instead. (This may still fail, since moving to the
trash often fails because you don't have permissions to modify
/Applications. But in cases where it fails because something's
wrong with your Trash, this change may help.)
Made a change to the built-in updater to preflight the availability of a Trash folder for the application. If this fails, BBEdit will not offer to self-update, since the chances of the updater being able to successfully move the application are slim to none.
Fixed bug in which some failed POSIX API operations would report the wrong error code.
Fixed bug in which the window title bar icon did not always change when it should have.
Fixed crash which would occur when searching recent files/folders during an "Open File by Name" operation and one or more items no longer existed on disk.
Made a change to guard against (potential) recursive alias loops in installed frameworks, which would cause a crash during startup.
Fixed bug in which the note that was selected when closing a notebook was not necessarily the note that was selected when reopening the notebook.
Projects and notebooks now include a mechanism to guard against unintentional simultaneous use from multiple computers.
Fixed bug in which using the "Open" command with a notebook active would set the file panel's directory to a location inside of the notebook.
Made a change to address a crash that was sporadically reported during application startup (although we were never able to reproduce it and still aren't sure how it happened, but that's just how it is sometimes).
Fixed a couple of small memory leaks.
Fixed crash which would occur when closing a document (or its window) while in the midst of tracking a click on a status or navigation bar item.
Fixed bug in Markdown syntax color run generation, which in some situations would cause coloring to malfunction during certain edits.
Fixed bug in which deleting a Note didn't delete its associated outboard metadata file.
Corrected typo in the Menus & Shortcuts preference pane.
Made a change so that unidentified files over 2GB in size are not considered eligible for guessing as HTML or XML.
Made a change to effect a small performance improvement in the HTML/XML syntax coloring scanner.
When using the "Include" or "Persistent Include" command to insert an include-file reference, BBEdit will set the file panel to open on an appropriate includes folder, if possible.
Updated the C++/Objective-C++ keyword list with some new entries from C++20.
objc_direct_members to the
Objective-C/C++ keyword list.