BBEdit 14.6 Release Notes

BBEdit 14.6 is a feature update, which includes notable new features, visible changes to existing features, and fixes for reported issues.

For details on all the new features and enhancements available in BBEdit 14, 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.6 requires Mac OS X 10.15.4 or later, and is compatible with macOS 11.0 and later. (Please see our OS compatibility guide for complete details.)

If you are using macOS 10.15 "Catalina", please make sure that you have updated to the latest available OS version (10.15.7).

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.6 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.


  • The bookmark menu in the FTP/SFTP connection panel gets "Add Bookmark" and "Manage Bookmarks" commands, so you can perform those operations before connecting, if desired.

  • Added settings to the "Editing" preferences to specify alternative characters for Show Invisibles, for tabs and for line breaks. The arrows next to the respective edit fields will open the macOS character panel. There are some restrictions; you can't use letters and numbers, for example. You should use punctuation, since that is generally more readable. The factory defaults are "∆" (U+2206, "INCREMENT" option-J on US keyboards) for tabs, and "¬" (U+00AC, "NOT SIGN", option-L on US keyboards) for line breaks.

  • Added "Show Notes" to the Dock menu; this will open the Notes window.

Back to top


  • The low-level text rendering in BBEdit's editing engine has been reworked to improve performance and OS compatibility (including future macOS releases).

    This change also marks the triumphant return of font ligatures (when supported by the display font in use), and brings improvements to Unicode character rendering.

    Finally, the rework includes workarounds for longstanding macOS bugs and performance regressions (Radar 34909871, FB5433254, FB7654002, FB9979006, FB10429697, FB9971063) which manifested as a constellation of symptoms, including:

    • application hangs at startup (usually displaying "waiting for macOS…" in the startup progress panel);

    • application stalls when coming to the foreground after more than a minute of non-use in the background;

    • failure to render character glyphs in the editing area, such that windows appeared to be blank;

    • use of a (system-determined) display font instead of the one specified in the Editor Defaults preferences.

    • slower than expected application startup time;

    • unpredictable rendering of emoji and other Unicode surrogate pairs

  • Since (with the new text rendering) Unicode "private use area" characters are no longer quite so toxic, the DisplayPrivateAreaGlyphs expert preference is now on by default.

  • Made changes so that Open File by Name doesn't completely tie up the application in cases where building the search cache takes a very long time. In such situations it'll be the same amount of time before you get search results, but the application will remain responsive for other uses in the meantime.

  • When running on macOS 13.0 and later, the "Preferences" menu command reads "Settings", and the title of the Preferences window is likewise changed to "Settings" as well. (We don't make the rules, that's just how it is.) The help book and user manual are not dynamically mutable, and so they will continue to refer to "Preferences" for quite some time.

  • When using Zoom In or Zoom Out for a "Preview in BBEdit" window when running on macOS 11.0 or later, BBEdit will ask the web view to magnify the contents, so that (if necessary and appropriate) the contents will reflow.

  • Made some changes to improve the printing experience: progress is now provided for printing text documents, and the process is window-modal so that if you are spooling something long, you can continue working in other documents meanwhile.

Back to top


  • Made changes to reduce the amount of directory rescanning for the directory caching used in Open File by Name and some other places.

  • Made a change to conserve memory used by marker data and other structures.

  • Changing a setting in a project's Site Settings panel will clear the deployment state, so that you don't have to remember to use "Re-Deploy Entire Site".

  • Fixed bug in which completing a macOS system text replacement (if allowed in the Completion preferences) would not correctly replace any leading word-break characters in the replacement trigger.

  • Fixed error when opening files via a symlink on an SFTP server.

  • Improved performance when sorting a very large number of items in the FTP/SFTP browser window listing.

  • Made a change to multi-file search and Text Factory processing so that files are processed only once in cases where overlapping folders (or projects) are specified as search targets.

  • ":" is allowed as an identifier character in Unix shell scripts, which fixes function detection when a package-qualified function name follows Google's bash scripting style guide.

  • Fixed bug in which auto-pairing would behave strangely in certain cases (usually by advancing the insertion point past the next paired item rather than inserting a pair of the typed character).

  • Disqualify Java .hprof files from consideration as HTML or XML (or as text files, for that matter).

  • Fixed bug in which Perl variable coloring extended further than desired in cases like "$foo->@{'abc', 'def'};"

  • Racket files are treated as a special case for the Lisp/Scheme/Clojure language module, including special treatment of #|...|# block comments and #; s-expression comments.

  • Fixed bug in the Unix Shell Script parser in which hashes ("#") in the middle of a string were treated as comment delimiters, which generally did not have the desired outcome.

  • Fixed display bug in the "Installed Languages" panel in which the "Menu" column did not immediately reflect the use of "Show All" or "Hide All".

  • Fixed bug in which the soft wrap indentation setting was not saved with a document's state; consequently it would reset to the preference default when reopening the document.

  • Fixed crash which could sporadically occur when closing the text document that the Find window was busy searching, and then activating the Find window again. (This usually happened only with very large files, but could conceivably happen any time, with the correct sequence of operations and timing.)

  • Fixed bug in which adding an item to the Language-Specific Settings list in the Language preferences would not scroll it into view.

  • Turn off the "Soft Wrap Text" option when presenting the output of Hex Dump {File, Front Document}, since wrapping is not useful in that case.

  • Fixed bug in which backslashes in Go raw strings were improperly treated as character escapes.

  • Made a change which might improve page/sheet margin accuracy when printing. (Or it might not; there's really know way to know for sure. Try it!)

  • Worked around an AppKit bug on macOS 11.0 and later which prevented the startup progress bar from filling correctly.

  • Fixed bug in which a return type declaration in a TypeScript function would confuse the function scanner.

  • document objects returned by the scripting interface are specified by their in-application unique ID, which is valid for as long as the document is open in that run of the application. This improves performance in the scripting interface, and works around a macOS bug (Radar 100322030) in which references to document 1 would not resolve correctly in situations where the script made rapid sequential changes to the window list.

  • Added a name to the credits. (Might be yours; might be someone else's.)

  • Made a change so that extended file system security attributes are preserved when using "Save a Copy" for a document already extant on disk.

  • In the case of quitting with a Differences window open, any files that were only open in that differences window will reopen each in their own window, rather than in a window with a hidden sidebar (which was confusing).

  • LSP workspace discovery now recognizes a directory containing a StandardML "*.cm" or "*.mlb" file as an eligible workspace root, in the absence of any other recognized markers.

Back to top