BBEdit 12.6 Release Notes

BBEdit 12.6 contains significant feature additions, as well as refinements to existing features and fixes for reported issues.

For details on all the new features and enhancements available in BBEdit 12, please see the release notes for BBEdit 12.5, BBEdit 12.1, and BBEdit 12.0, or browse 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).


Requirements

BBEdit 12.6 requires Mac OS X 10.12.6 or later, and is compatible with macOS 10.14 "Mojave".

If you are using macOS 10.13 "High Sierra", please make sure that you have updated to the latest available OS version (10.13.6 or later).

If you are using macOS 10.14 "Mojave", please make sure that you have updated to the latest available OS version (10.14.3 or later).


Important Notes About This Version

  • BBEdit is now a sandboxed application.

    “App Sandboxing” is a term that refers to a collection of security technologies built in to macOS. Sandboxing is intended to protect you and your data by limiting the operation of applications to their intended use, which in turn makes it harder for malicious software or accidental misuse to cause data loss or damage to your computer.

    One of the core concepts of App Sandboxing is that BBEdit, as a sandboxed application, is not allowed to use any of your files or folders without your explicit permission. You can grant this permission in one of a small number of ways, including (but not necessarily limited to):

    • Asking BBEdit to open a file from the Finder by double-clicking it;

    • Dragging a file from the Finder on to BBEdit’s application icon;

    • Using BBEdit’s “Open…” command to choose a file or folder.

    However, as an advanced developer tool, BBEdit frequently requires access to files or folders that that you may not have specifically asked it to open, for safe and legitimate reasons:

    • If you have located BBEdit’s application support folder in Dropbox or iCloud Drive, BBEdit needs to be able to figure out where the folder actually is, and be able to use that location;

    • When opening a document, BBEdit needs to know:

      • whether the file is under revision control with Git or Subversion;

      • whether there are one or more .editorconfig files which control editor options for the file;

      • whether any ctags data is available to support BBEdit’s completion and "Find Definition" features;

    • When previewing a file with unsaved changes, BBEdit needs to be able to write a temporary file out in the same directory, so that relative links within the file remain correct;

    • If you have turned on “Make Backups” in the Text Files preferences, BBEdit needs to be able to write backup and auto-recovery files in the same directory as the file being saved;

    • The “Open File by Name” feature needs to be able to examine all possible directories that may contain files for which you're searching, including some that you may never have used before in BBEdit;

    • Many dialog boxes in BBEdit which allow you to choose a file or folder give you the choice of directly entering a file path;

    ...and many more similar cases.

    Without unrestricted access to your files and folders, many of BBEdit’s most useful features, from the basic to the most powerful, won't work at all; or they may misbehave in unexpected ways. At the very least, this hinders your ability to work done.

    In order to resolve this fundamental conflict between security and usability, we have devised a solution in which BBEdit requests that you permit it the same sort of access to your files and folders that would be available to a non-sandboxed version.

    For this reason, the first time you start BBEdit, it will prompt you to allow this access. The prompt will not be repeated; so if you decline to allow this access and later reconsider, go to the Application preferences, and click on the "Allow" button in the "Sandbox Access" section.

    This in no way compromises your security or that of your computer while using BBEdit, but does allow BBEdit to function at its fullest potential.

    If you have been using a previous non-sandboxed version, your existing settings and support folder contents are unaffected by this change.

  • Because of restrictions imposed by App Sandboxing, we had to make some changes in how BBEdit interacts with iCloud Drive when looking for support folder items. In particular, BBEdit is not able to look for, nor can it use, support folder items in your top-level iCloud Drive folder.

    If you were previously using iCloud Drive/Application Support/BBEdit for support folder items, please follow these instructions:

    1. Look in your iCloud Drive folder. If there is a folder named "BBEdit" there which has the BBEdit application icon imprinted on it, skip to step 4.

    2. Start BBEdit. If necessary, allow sandbox access.

    3. Quit the application.

    4. You should see a new "BBEdit" folder in your iCloud Drive.

    5. Open the "BBEdit" folder in your iCloud Drive, and use the Finder's "New Folder" command to create a new folder inside of it. Name the new folder "Application Support".

    6. Open up iCloud Drive/Application Support/BBEdit/, and copy its contents into the new folder you've just created.

    So to summarize, what you're doing is moving the contents of iCloud Drive/Application Support/BBEdit/ into iCloud Drive/BBEdit/Application Support/.

    The next time you start BBEdit, it will use your support folder contents from the new location.

    Because of some intentional idiosyncrasies in how macOS handles items in application-specific iCloud Drive folders, we recommend that you consider an alternative such as Dropbox for sharing your BBEdit support folder between multiple computers.


Additions

  • Added a "Folders" submenu to the main application menu. This menu gives quick access to BBEdit's application support folder (the same list that is available in the Folders tab of the Setup window). This is useful on its own merits, but is of particular relevance in the application sandbox, in which support folders can be buried in locations that are not easily accessible from the Finder.

Changes

  • Made a change so that double-clicking anywhere in a syntax-colored number will select the entire number, even if it contains a decimal point (which would otherwise be a word break).

  • When running on macOS 10.14.1 or later, BBEdit now uses built-in OS support for performing operations which require privilege escalation, namely authenticated saves and (if escalation is necessary) installation of the command-line tools.

  • If the application resets the evaluation period, the splash screen at startup will now advise you of this, via an alert. (The evaluation period gets reset when we've made significant changes to the application which we believe would warrant a full trial.)

  • Reworked the way BBEdit runs AppleScripts from the built-in Scripts menu and other sources, for sandbox compatibility and to resolve various longstanding issues.

    AppleScripts are now run in a separate process, which means that any previous differences in scripting behavior as the result of running a script within BBEdit or from the Script Editor should be a thing of the past.

  • If "Keep folders on top when sorting by name" is selected in the Finder's preferences when BBEdit starts up, FTP browser windows will now obey the option and behave accordingly.

  • Changes to expert preferences from the command line (via "defaults write") are allowed to take effect immediately (except in documented cases where the preference change is intended to apply at a specific point in time, such as when restarting the application).

  • The panel that appears when using "New Disk Browser" from the File menu now contains a helpful prompt.

  • The Save panel used for in response to "New Project Document" now has a prompt to clarify its purpose.

  • There is now an expert preference for controlling SSH "keepalive" behavior. If you have problems with your SSH server closing the connection after a period of non-use (which will subsequently cause errors in BBEdit), you can tell BBEdit to send a periodic "keepalive" message to while connected to the server.

    This is configurable per host, per domain, or globally. Determining the appropriate value may require some experimentation, but 90 seconds is probably a good starting point.

    # only for "foobar.example.com"
    defaults write com.barebones.bbedit SSHServerKeepaliveInterval:foobar.example.com -int 90
    
    # only for servers in "example.com"
    ast">defaults write com.barebones.bbedit SSHServerKeepaliveInterval:example.com -int 90
    
    # global preference
    defaults write com.barebones.bbedit SSHServerKeepaliveInterval -int 90
    

    We recommend that that you adjust this setting per host whenever possible, rather than globally or per-domain.

  • The "Text Options" sheet gets a setting for the tab width, and an indicator when the file's settings are managed by EditorConfig.

  • BBEdit-specific print settings are now available in the Print panel when printing a text document. As a result, we have removed the "Printing" section from the "Text Options" panel, and restored the latter to its former simplicity.

  • The displayed path for files opened from within Zip archives or tarballs is now abbreviated using a tilde, if it is within the current user's home directory.


Fixes

  • Modernized the internals of the #! script and Unix executable runner, SFTP operations, and shell worksheets.

  • Rewrote the internals of the built-in software updater to be sandbox-friendly. (This does not apply to Mac App Store builds.)

  • Updated the privilege escalation internals (used for authenticated saves and command-line tool installation when running on macOS versions prior to 10.14.1) for compatibility with app sandboxing.

  • Fixed bug in which the initial line number in "Go To Line" would not take into account any folded ranges in the text.

  • Fixed bug in which dragging the title bar icon in a window would drag the full-sized icon image.

  • Fixed bug in which the Windows palette didn't re-sort when the active document changed in an open window, or when certain other changes were made to open documents or windows.

  • Fixed bug in which the font smoothing expert preferences were inappropriately allowed to disable font smoothing while printing.

  • Fixed bug in which type-to-select in FTP browser windows would behave unpredictably, because as it turned out, the system was helpfully attempting to match in columns other than the "Name". (Thanks to Daniel Jalkut for figuring this out. Go buy one of his products or become a member of his podcast.)

  • Fixed bug in which SCSS interpolation structures (#{...}) would confuse the SCSS block parser and result in incorrect fold generation and function listings.

  • Fixed bug in which folders that were twisted open when saving state for a disk browser (when quitting) were selected when the disk browser window was reopened at startup.

  • Fixed crash which could occur if a document was closed while processing a (possibly accidental) command-click (the gesture to open an URL).

  • Fixed bug in which Command-Shift-click on an URL did not open it in the background, as it should have. (The intended behavior is to open the URL in its designated application while keeping BBEdit active.)

  • Fixed bug in which certain inline-input edits which involved deleting in-progress input at the beginning of a hard line in a soft-wrapped document would leave the insertion point in the wrong place, and cause unexpected arrow-key navigation afterwards.

  • Made a change to improve text encoding detection in XML files whose filename extensions didn't map to XML. As long as the file has an exact "<?xml" at the very beginning, it should now be detected correctly.

  • Fixed bug in which the Swift parser would get confused by certain sequences of escaped quotes inside of a string.

  • Made a couple of changes to make the application take less time when quitting in the normal case (a "sleep", when state and documents are autosaved).

  • Fixed crash which would occur when trying to use "Preview in BBEdit" to preview a document whose backing file had been deleted.

  • Fixed bug in which the "Flatten Hierarchies" option for Find Differences when comparing folders didn't actually work.

  • #script# directives in clippings can now use a home-relative path to the script to be run, e.g. #script ~/path/to/some/script.scpt#.

  • Made a change so that text in the status/navigation bars, line number bar, and other locations is darker in inactive windows when "Increase contrast" is turned on on the system accessibility preferences (and a light appearance is in use).

  • Fixed bug in which comparing two temporary windows (such as generated by the results of Hex Dump) with identical names would cause the title of the Differences window to have slashes in front of those names.

  • Fixed bug in which keyboard focus in the Markup Builder panel was in the wrong place in cases where the tag being edited had no attributes, and Full Keyboard Access (Keyboard system preferences) was set to "Text boxes and lists only".

  • Made a change so that Find Differences results which are not selected will appear using the Differences color, but less intense. This should be more visible than the previous light gray.

  • Added SortWindowsAndDocumentsByName to the Expert Preferences help.

  • Fixed a case in which BBEdit would not reload a file on disk in cases where an external process truncated the file (typically by using O_TRUNC when opening the file) but never wrote to it. (Note that such a sequence of operations will always result in an empty file.)

  • Fixed bug in which having previously used "Save Default Text Window" would interfere with correct restoration of the sidebar width when reopening existing windows at startup.

  • When applying settings from a previous "Save Default Text Window" operation, the sidebar width is no longer limited to a maximum of 250px. If you wanted it wider, you'll get it wider.

  • Fixed a bug in which an incorrect error code was reported when trying to create a new project document in a location where it couldn't be written.

  • When using "New Project Document", BBEdit will no longer allow you to choose a location which isn't writeable, since trying to create a project there would fail.

  • Lined up the corner radii when printing with "Frame printing area" turned on.

  • Fixed a couple of layout glitches in the Expert Preferences help.

  • Corrected the appearance of the Comments panel for text factory items when Dark Mode is in effect on macOS 10.14.

  • Made changes to address situations in which case-insensitive literal search would not match expected characters (or, in some reported but nonreproducible cases, would inappropriately match characters).

  • Fixed a pair of related bugs, in which (a) the FTP/SFTP browser window did not open with a reasonable sort order by default; and (ii) any subsequently selected sort order did not persist when it should have.

  • Fixed a bug in which performing CJKV character input after moving the insertion point into the middle of a range of just-typed text would fail to manage Undo correctly, resulting in unexpected and unwanted behavior when attempting to undo or redo any operation in that document.

  • Reconnected the keyboard equivalents for the "FTP Browser" items in the Menus & Shortcuts preferences.

  • Fixed crash which would occur when attempting to use a saved file filter when running a text factory.

  • Fixed bug in which the "Edit" button next to the file filter popup in the Text Factory scan options panel was never enabled in situations when it should have been.

  • Adjusted the layout of the "Installed Languages" panel so that it doesn't present a horizontal scrollbar.

  • Fixed a bug in which entering text via the Grep Patterns popup in the Replace All sheet for a text factory would not insert correctly when in dark mode.

  • Fixed bug in which the "Show items starting with “.”" option would actually cause items whose name began with a period to be hidden unless the FTPShowParentDir expert preference was turned on.

  • When the FTPShowParentDir expert preference is turned on, the . and .. entries do not have disclosure triangles, because that doesn't make any sense.

  • When using the "Choose" panel for text factory sources, the file panel opened by the "Other" button would filter out items that were already in the list. This was sometimes inconvenient, so now the file panel allows everything, and if you choose something that's already in the list, its checkbox will be marked.

  • Corrected the dark-mode appearance of the Grep pattern and "recent search" icon buttons in Process Lines Containing, Process Duplicate Lines, and text factory Replace All panels, as appropriate.

  • Added documentation about the FTPShowParentDir expert preference to the Expert Preferences help.

  • Disk browsers will now list directory aliases/symlinks as "twistable" items; twisting open one such will disclose the items within the target.

  • Fixed bug in which "Check Syntax" for Perl would not report any errors if the script had a #!/usr/bin/env line.

  • Made a change to Open File by Name cache generation, so that directories that would be hidden by a .gitignore file are no longer scanned. This may improve scan/rescan performance on particularly large directories.

  • Fixed a bug in which using the scripting interface to ask for the "last clipboard" would fail.

  • Fixed bug in which the summary view in the Multi-File Search window was allowed to gain keyboard focus.

  • Made a change to fix the suspected cause of a crash which could occur when autosaving scratchpad documents.

  • Made a change to reduce transparency in the Markup Builder panel when running on macOS 10.14, which improves readability in the panel when the prevailing appearance contrasts with the editing view background (e.g. using "BBEdit Light" with Dark Mode).

  • Fixed bug in which turning on "Match application appearance to selected editor color scheme" while a dark color scheme was in use would not correctly adjust the application's overall appearance, which led to some unexpected drawing effects.

  • Fixed crash which would occur when choosing a color scheme in the Text Colors preferences, when the scheme file was open as text in an editing window (which is something you have to go through so many gyrations to do it doesn't even bear description, but there you go).

  • Fixed bug in which the HTML attribute value checker was using outdated and incomplete information for checking values which could be a color specification.

  • The markup syntax checker will now generate a warning rather than an error for URI attribute values that require entity encoding. (Entity encoding is a best practice, but browsers can mask mistakes and it's also not always required.)

  • Made a change so that the Undo state generated by using the "Strip trailing whitespace" preference is limited to the overall range of text that was affected (from the beginning of the first line on which space was stripped, to the end of the last) rather than including the entire document.

  • When requesting the URL AppleScript property of a document that was opened using an external file transfer client via the ODB protocol, BBEdit will now return the custom path as provided by the client, if it appears to be parseable as an URL. Otherwise (and for all other documents), the URL property will return the location of the document's backing file on disk, as before.

  • Made a change so that the Open panel is (hopefully) completely gone before we start the process of opening a document; that way, if an error occurs while opening, the alert won't be hidden behind the stuck Open panel.

  • Fixed a bug in which the available clippings sets (and the Clippings floater) didn't update appropriately when selecting different files in a results window or disk browser.

  • Updated the man page for bbedit to reflect that -u/--create-unix are deprecated (but still allowed as synonyms for -c/--create). The output of bbedit -h no longer mentions -u/--create-unix.

  • Fixed bug in which changing text display settings via the Text Options command; the options popover in the navigation bar; or one of the commands on the View => Text Display submenu, did not mark the document's state dirty.

  • Fixed bug in which search results text generated for items inside of Zip archives or tarballs did not actually include the archive-relative path to the file.

  • Made a change so that bbedit --maketags ignores the ctags present in the freestanding Xcode command-line tools installation, in case those are installed.

  • Fixed bug in which clicking on an internal link in an unsaved or untitled HTML document that was being live previewed would report an error trying to open an applewebdata: URL.

  • If BBEdit can't send save or close notifications because you previously denied it permission to send Apple Events to the application which needs them (usually a file transfer client from which you used "Edit in BBEdit"), you'll now get an alert to this effect; the help button in the alert takes you to a page which explains how to fix things.

  • Fixed bug in which "Sort Lines" would sometimes inexplicably stall for a second or more in the middle of the sorting process.

  • Fixed a bug in which in-text fold indicators would draw over the gutter or line number bar while scrolling, in cases where the document had been scrolled horizontally until the indicator was out of view to the left.

  • Corrected the appearance of text fields in various editing window popovers when running on macOS 10.14.

  • Fixed omission of onmouseleave from the HTML5 global attributes list, which caused an error to be reported for any element which used this attribute.

  • Fixed a bug in which trying to edit a Sandbox Profile file would go nonlinear.

  • Fixed crash which would occur when opening the Languages preferences after moving the BBEdit application support folder while the application was still running (which you should never do, but we can't stop you).

fin