BBEdit 13.0 Release Notes

BBEdit 13.0 is a major upgrade, which includes significant new features, visible changes to existing features, and fixes for reported issues.

Because BBEdit 13 builds on features that were added during the BBEdit 12 cycle, please take a few moments to review the release notes for BBEdit 12.6, 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 13 requires Mac OS X 10.14.2 or later, and is compatible with macOS 10.15 "Catalina".

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


Upgrading

If you have been using BBEdit 11.6 or later in Free Mode, starting BBEdit 13 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 12 or older, you will have a full 30-day evaluation period in which to try out BBEdit 13's new features. License upgrades are available at a discount for existing customers. Please see the BBEdit upgrades page for information and instructions.

Mac App Store customers: If you have an active subscription, you will immediately have access to all of BBEdit 13's new features, and no further action is required. If you have been using BBEdit 12 in Free Mode, starting BBEdit 13 will reset your 30-day evaluation period, so that you can have a full trial of the new features.

BBEdit 13 will use your existing BBEdit settings and support folder items from BBEdit 10, 11, or 12. Settings and support folder items from older versions are migrated whenever possible.

If you have been using TextWrangler and have never used BBEdit before, BBEdit 13 will import your TextWrangler settings and support files.


Additions

  • The "Pattern Playground" window provides an interactive interface for experimenting with the behavior of Grep patterns (regular expressions). This makes the process of creating complicated patterns much less trial-and-error, since you can see exactly what will match, and how, before committing to any irreversible actions.

    A complete description of the pattern playground is in the Pattern Playground Notes.

  • Added the Grep Cheat Sheet. This appears as a popup menu button in the Find, Multi-File Search, and Pattern Playground windows; as well as in the "Process Lines Containing", "Process Duplicates", and "Sort Lines" dialog boxes. The button pops up a menu which provides some common Grep pattern idioms and brief descriptions; choosing one will insert it literally into the pattern and select it (replacing anything that has been selected). In the Find and Multi-File Search windows, choosing an item from the cheat sheet also turns on the "Grep" option.

  • BBEdit allows you to make rectangular selections in documents for which "Soft Wrap Text" is turned on. Note that the rectangular selections are made in the actual text, not in the visual representation; and so if the rectangular selection crosses a wrapped line, the wrapped portion of the line will not be highlighted.

  • When editing the search string in the Find window, any matches for it will highlight in the "target" document window (usually the one immediately behind the window). (This works for Grep patterns too, as long as the pattern is valid.) This allows basic previewing of the effects of a Find All or Replace All operation.

  • There are two new commands on the "Select" submenu of the Edit menu:

    • Highlighted Matches: selects matches found using the "Display instances of selected text" feature.

    • Live Search Results: selects matches found while searching using the Live Search feature. (Note that this is only available while keyboard focus is in the Live Search search box.)

  • "Find & Select All" on the Search menu does what it says: based on the current search string and options, it will select all matches for the string (or pattern, if grep is turned on). This may also be used from within the Find window.

  • The "Appearance" preferences have been changed: the old "Match application appearance to selected editor color scheme" setting is gone. All the confusion and weirdness involving color schemes and Dark Mode has been swept away. In its place is a much simpler setting: "Application Appearance". Each respective setting does what it says on the tin:

    • "Use system appearance": follow the setting in the "General" system preferences. If you are using "Automatic" on macOS Catalina, the application will change accordingly.

    • "Light": uses the Light appearance, even if the General system preference is set to Dark (or the system has been set to dark mode automatically).

    • "Dark": uses the Dark appearance, even if the General system preference is set to Light (or the system has been set to light mode automatically).

    If you are upgrading from an older version of BBEdit, or starting from scratch, BBEdit will try to pick an initial setting that makes sense, based on whether your system is currently in Dark Mode and (for existing preferences) what color scheme you have selected.

    BBEdit will also automatically switch color schemes when its appearance changes. More on this is available in the changes section, below.

  • Made a change so that untitled documents can use shared completion data (from the Completion Data application support folder).

  • The Python language module gets a built-in set of tags, for the core Python symbols.

  • The per-language settings panel (Languages preferences, "Language-Specific settings" section) now includes distinct color scheme settings for light vs. dark application appearance.

  • When previewing a document, BBEdit will perform placeholder and include processing on the document, so that the live preview reflects exactly what the results of site deployment would be.

  • The "Deploy Site" command for configured web projects will now:

    • Generate and upload HTML for Markdown (and Textile, if any such are in use) files.

    • Perform placeholder and include processing on HTML documents (including HTML generated from Markdown and Textile, if applicable).

    A significant change from previous versions is that transformation processing (placeholders, includes, Update Images) does not affect the document on disk. This vastly improves usability when the site files are under source control, since there are no more random batch changes to files as they are uploaded.

    Note: When deploying a site, any non-HTML files which are preprocessed into HTML (such as Markdown or Textile) are uploaded using the file's base name with an html file name extension. So, foo.md will be uploaded as foo.html.

    If there is a file name which exactly matches the uploaded name, this is an error and the file will not upload. So if you have foo.md and foo.html in your local directory, foo.md will report an error, and foo.html will be uploaded.

  • "Re-Deploy Entire Site" is now available on the Markup -> Update menu, as well as in the action bar popup for web site projects. After confirmation, this will re-process and re-deploy all files in the site.

  • The Text Colors preferences have been slightly rearranged, to make room for a new "Sub-line differences" color setting. This provides explicit control over the color used for character ranges within a single "nonmatching lines" difference, rather than using a derived color.

    If a color scheme does not contain an explicit setting for sub-line differences, BBEdit will derive it from the Differences color, as in versions past.

  • The "Currently Open Documents" sidebar section header gets a popup menu on its right side; this contains commands for rearranging the items in the list based on name, date, or history order ("Most Recently Opened"/"Least Recently Opened").

    These commands are immediate, and don't have any effects outside of their immediate invocation (i.e. they don't permanently change the sort order for the sidebar).

  • Added a "Magnification" setting to the Editor Defaults preferences. This sets the default magnification for new text views. Changes will take effect the next time a text view is created, and will not affect open views.

  • The Clippings palette (once again, if you remember that far back) lists items hierarchically. If you use the search box, the portion of the clipping name which matches the search string (or wildcard pattern) gets highlighted in the display.

  • There's a new setting in the Appearance preferences: "Status bar item size". (The name is chosen for brevity: changes here will affect items in the text status bar, navigation bar, and in the sidebars for editing, project, and Differences windows).

    The "Normal" setting is the factory default. The "Large" setting causes these items to occupy more space and will use a larger text size for drawing, which enhances readability for some customers.

  • Added a new command to the Text menu: "Apply Transform". This command provides an "express" way to apply a single text transformation to specific files or folders, without requiring the explicit creation of a Text Factory. (You can, if you wish, save a text factory.)

  • SNUCK IN A SPECIAL FEATURE FOR CRAIG NO NOT HIM THE OTHER ONE I HOPE HE LIKES IT

  • Added a "Change Notes" command to the Help menu. This will open your default web browser to display the change notes for the version you're running.

  • The "Contact Us" command on the Help menu will create a pre-addressed email message to support@barebones.com, containing the application and OS versions in its body. We will be grateful for a meaningful subject line and an appropriate detailed description of your question, issue, or feature request. As always, any information provided in your email, including your email address, is protected by our privacy policy.

  • There's an additional command in the "Find Windows" section of the Menus & Shortcuts preferences: "Open Pattern Cheat Sheet". This does pretty much what you'd think from the name.

  • The "Process Lines Containing" sheet gets an "Entire Word" option; when this is turned on, lines are only considered to match if the text (or pattern) match lies on the boundary between a word break and a word character.

  • If a file's settings are affected by EditorConfig, the Text Options popover and sheet will contain a popup menu button which lists the directories in the document's folder ancestry which contain EditorConfig files. Selecting an item from the menu will open it.

  • Added a text factory operation: "Strip Trailing Whitespace". This performs the same operation as the Text Files preference setting with the same name.

  • Added a text factory operation: "Ensure Line Break at EOF". This operation will add a line break to any non-empty file that does not end with one.

  • Added a "Strip Trailing Whitespace" command to the Text menu. If there is no selection, this will be done to the entire document; otherwise, the selection is extended to the nearest line start and end as necessary, and only the selected range will be processed.

  • Created a new "Sidebar" preferences section, with settings to control, uh, the behavior of the sidebar. The new and/or newly exposed settings include:

    o Reshape window when showing or hiding (on by default, will grow or shrink the window horizontally so that the editing view stays the same size);

    o Add documents in alphabetical order (on by default, adds new and newly created documents to the list alphabetically whenever possible. If you have rearranged the list so that it is out of order, the results may be unpredictable.)

    o Show icons in sidebar lists (on by default) does what its name suggests; turning off icons will create a little more horizontal space.

  • The contextual menu in the "Currently Open Documents" sidebar list now includes "New Text Document" and "New HTML Document". (Note that "New HTML Document" is part of the markup tools, which are not available in Free Mode.)

  • It's now possible to perform a contextual-menu click on a list item that is not currently selected; it will highlight appropriately, and any commands on the menu which would have applied to the selected items will apply to the right-clicked item instead, without causing it to be selected.

  • The Columns submenu on the Edit menu gets a "Select Columns" command, which will select the columns which intersect with the current text selection. (It's analogous to the other column editing operations on the same menu.)

  • For language module developers: compiled language modules now have the ability to generate and use their own document-specific data. More details on this internal change are available in the Language Module Changes technical note.

back to top

Changes

  • Big changes to the way appearance and color schemes are managed. Settle in for the read:

    • BBEdit will no longer alter its own appearance based on the active color scheme. Instead, the active scheme setting in the "Text Colors" preferences sets the color scheme which is in effect for the prevailing appearance.

      Thus, you can set up one color scheme to be used in Light Mode, a different color scheme to be used in Dark Mode, and whenever you change the OS appearance in the General system preferences, BBEdit will select the desired color scheme. This plays particularly well with the "Auto" setting in macOS Catalina.

      The factory defaults are "BBEdit Light" for Light Mode, and "BBEdit Dark" for Dark Mode.

    • In the "Appearance" preferences, you can choose the application appearance that you desire, or instruct BBEdit to follow the system's appearance. The factory default is "Dark", which will cause BBEdit to use Dark Mode (and the appropriate color scheme, per the above) all the time.

      If you choose "Light", BBEdit will be in Light Mode all the time. If you opt to "Use system appearance", BBEdit's appearance will change as needed whenever the system appearance (Light Mode or Dark Mode) changes. Again, this works nicely with the "Auto" setting in macOS Catalina.

    • The Text Colors preferences are now easier to use for selecting and editing color schemes. A central concept is that there is now always a color scheme in effect. It can be a factory color scheme, one you've downloaded, or one you've created. The previous "Custom Settings" indication no longer appears.

      If you are upgrading from a previous version of BBEdit, and you had custom settings in effect, BBEdit will write your settings out into a color scheme file in your "Color Schemes" application support folder, and then make that color scheme active. You won't lose any settings, and as a bonus your color scheme can be used with any modern version of BBEdit (11.0 or later).

    • If you have a color scheme selected, any changes you make to settings in the Text Colors preferences will change the color scheme file on disk.

      Before making making any changes to the color scheme file, BBEdit will ask Time Machine to save a version snapshot. You can open the scheme file and use "Compare Against Previous Versions" on the Search menu to evaluate the changes. BBEdit will also make a backup copy of the scheme file into your "BBEdit Backups" folder (which itself lives in your Documents directory).

      If your selected color scheme was one of the built-in schemes, BBEdit will first make a copy of the scheme into your "Color Schemes" support folder, and then apply the changes to the copy, and finally will select the copy as the active scheme.

    • To create a new color scheme, go to the "Text Colors" preferences and select the scheme you'd like to start with (if it's not the active color scheme already).

      Then, click the "New..." button. BBEdit will propose a name for the new scheme, which you can of course edit as desired. Click "OK", and BBEdit will create your new color scheme in your "Color Schemes" support folder, and then make it active. From there you can edit the scheme by changing settings in the Text Colors preferences.

    • When you open a color scheme file, it will (once again) open as text. This makes hand editing and inspection much simpler than was possible in BBEdit 12.5/12.6. (Hand edits to the scheme file won't take effect immediately; you can frob the color scheme setting to cause it to reload.)

  • Changed the appearance of the search history and pattern popup menu buttons in the Find and Multi-File Search windows to match the appearance of the same buttons when used in other panels (such as Process Lines Containing).

  • BBEdit will calculate an appropriate size for the font used in the line number bar, based on the point size of the font used for editing. The maximum size of the line number bar font is limited to 24 points. If you would prefer a lower (or higher) limit, you can adjust this:

    defaults write com.barebones.bbedit MaximumLineBarPointSize -float NN

    "NN" must be a decimal number, and should be greater than zero.

  • The Search menu was getting a little long, so there's a new "Find Differences" submenu on the Search menu. This contains the specialized forms as well as the in-context commands (Apply to Left/Right, Compare Again).

  • The line number/gutter area in text views now draws using the same background as the text area. In the line number bar, line numbers that lie inside the selection range are now drawn using darker text.

  • Made a change to ask the OS-provided print panel to place the page attribute controls (orientation, scaling, paper size) in the panel proper, rather than hiding them behind the "Page Attributes" section in the popup menu.

  • Made a change so that status bar and navigation bar items draw popup (or drop-down) menu indicators using standard OS primitives.

  • Made a change so that the sidebar header in disk browser windows draws the popup arrow indicator using standard OS primitives.

  • BBEdit uses the document's display font to draw line numbers in the line number bar. This may be less than ideal if the display font isn't monospaced. If desired, you can instruct BBEdit to use the system font with monospaced numbers for the line number bar:

    defaults write com.barebones.bbedit UseSystemFontForLineBar -bool YES

    Changes to this setting take effect immediately, and do not require restarting the application.

  • BBEdit will dynamically adjust the width of the line number bar, based on the point size of font used to display the document's text, and the number of lines in the document.

  • "Reveal in Finder", "Go Here in Terminal", and "Go Here in Disk Browser" on the View menu are now enabled when an item is selected in the list of items to search in the Multi-File Search window, assuming that the item corresponds to an actual file or folder on disk.

  • If an open document's name is not unique(*), its entry in the sidebar is qualified by some useful portion of its directory path. (*) Does not apply to untitled documents.

  • It's now possible to click on and drag a non-selected item in a list (such as a disk browser or editing window sidebar) and drag it, without the item first becoming selected (and causing unexpected side effects). This change makes the list behavior consistent with OS standard table and outline view controls.

  • If an FTP browser window is active and disconnected, "Open from FTP/SFTP Server" will start its connection sheet, rather than doing nothing.

  • The "New HTML Document" panel no longer requires that a page template's name end in ".tmpl" in order to appear in the "Page template" menu. All that is necessary is for either the document's filename extension to map to an HTML-like language (HTML, XML, Ruby in HTML, PHP in HTML) or that be a text file whose contents contain something that looks reasonably HTML-like.

  • The navigation bar items in "Preview in BBEdit" windows are all drop-down menus, so their indicators are drawn accordingly.

  • Made a change so that the line bar includes highlighting to show which lines lie inside of the selected range of text.

  • If the shell process underlying a Shell Worksheet exits unexpectedly, the status bar will indicate "<shell not running>".

  • Made a change to automatically save a document's state when closing it (including when quitting) when UseResourceForkForDocumentState is turned on, because doing so changes an xattr and does not actually touch the file's content modification date.

  • Moved sidebar settings into the Sidebar preferences, and removed the boxes from the remaining settings.

  • Changed the appearance of the menu item badges for evaluation mode; the badges no longer rely on color as a status indicator.

  • Gave the icons in the Preferences window a bit of buff and polish.

  • When doing a folder compare, each pair of files in the sidebar will contain an indicator to show whether the files in the pair are identical ("=") or not ("•"). (This applies as long as both files in the pair are present; otherwise the copy arrow is shown as usual.)

back to top

Fixes

  • Fixed crash which would occasionally occur if the file was changed on disk while words were being counted for text statistics display (in the status bar or in the file information popover).

  • Made a change so that overlay alerts aren't obscured by palettes in the center of the display.

  • Made a change to right-justify the keyboard equivalent column in the Clippings palette.

  • Removed a stale reference to the auto-save data folder from the support folder's Read Me.txt.

  • Fixed bug in which using "Hard Wrap" on files which used curly braces in various places (such as CSS) would quote those lines, because "}" was treated as a quote character.

  • Fixed a bug in which determination of a menu's visibility at startup would return the wrong answer, if certain external conditions applied. The decision is now made later in the startup process.

  • Made a change to the SGML/HTML parser so that it wouldn't get confused by single quotes that occur inside of double-quoted strings during XML PI processing. This partially fixes the observed symptom in which fold generation would get confused by the occurrence of a single quote (e.g. a contraction) in a string within "PHP in HTML" files.

  • When sending an sftp: URL to BBEdit, either directly or via "x-bbedit://open?url=sftp:", if the directory path in the URL isn't properly separated by the URL, BBEdit would assume that it was home-relative. Usage of the necessary separator is fairly loose, so BBEdit will now make a second attempt to try to treat the relative directory path as absolute.

  • Fixed a bug in which some top-level menu commands were unconditionally enabled when an application-modal window was active; this would cause unexpected things to happen when invoking those commands while an application-modal panel was active (such as leaning on Cmd-Option-W for "Close All Documents" with a save confirmation panel active.)

  • Removed anachronistic references to "Take Control of BBEdit" from the built-in help.

  • Rectified an old mistake in how custom highlight colors were managed in color schemes. Previously, BBEdit would infer the setting of "Use custom highlight colors" based on whether custom colors were present in the color scheme. This is no longer the case: the "Use custom highlight colors" setting is now explicit in the color scheme, so that you can turn it on and off without affecting the presence of any custom colors in the scheme. Existing color schemes are used transparently and upgraded in place, if necessary. (Note that this change is not backward compatible; any "Use custom highlight colors" setting present in the scheme is ignored by older versions of BBEdit.)

  • Added sidebar to the search metadata for the Appearance preferences.

  • Fixed bug in which using the "Commands" command (on the Go menu) to select an untitled document would report a -1708 error.

  • Fixed bug in which return type annotations in Python functions would confuse the function scanner.

  • Made a change so that entities occurring in HREF attributes are ignored when checking for whether special characters need to be percent-encoded.

  • Added initial and inherit to the CSS keyword list.

  • Fixed a bug in which the line number bar would not recalculate and redraw itself correctly in situations in which the text view was populated after creation or when a refresh from disk involved a significant (order of magnitude) change in overall line count.

  • Fixed a crash which would occur when quitting the application while open documents were waiting to process a change notification from the ctags subsystem.

  • Reworked the display mechanics of the search/replace history menu, to simplify things and work around bugs in the OS. Among other things, keyboard navigation and confirmation in the menu work now.

  • Moving or renaming a Mac application while it is running can cause it to malfunction. The OS won't let you put a running application in the trash, but it curiously will allow you to move or rename one. When this happens to BBEdit, it will alert you accordingly and require you to relaunch it.

  • Fixed a bug in which certain legacy color schemes contained settings that should have been ignored, but were not; and switching from one such scheme to a scheme which did not contain those color settings would fail to change the colors. (This generally happened with HTML tags.)

  • Fixed a crash which would occur when using "Save as Clipping" or "Save Selection as Clipping" when there existed more than one clipping set with the same semantic name (for example, a clipping set in a named "16)Foo" and a clipping set named "23)Foo").

  • Fixed bug in which using the scripting interface to split or unsplit an editing view would not immediately draw the splitter bar across the view.

  • Fixed bug in which the "New Project" file panel would reappear after clicking the "Cancel" button.

  • Made a change so that text inside of a live search highlight range is always drawn using an appropriate color from the current color scheme (either the foreground color or the background color, depending on contrast needs).

  • Fixed bug in which the incorrect error code was reported when trying to send commands to a dead shell process from a shell worksheet.

  • Fixed a grammar inconsistency in the Text Factory summary line for the "Process Lines Containing" operation.

  • Corrected the typographer's quotes around “.editorconfig” in the Text Options popover and sheet.

  • If you add a legacy format color scheme to the Color Schemes folder, BBEdit will convert it to the current format so that it is available immediately on the color schemes menu in the Text Colors preferences.

  • Fixed a bug in which changing the "Show Invisibles" or "Show Spaces" setting would cause the text to scroll in cases where the "Soft Wrap Text" setting was turned on.

  • Fixed a bug in which windows for newly created project documents would be the wrong width in cases where "Save Default Project Window" was done with the edit view hidden.

  • Fixed crash which would occur when trying to delete a bunch of items from the Multi-File Search window sources list by using the "-" widget and clicking rapidly.

  • Added some keywords to the PostgreSQL keyword list.

  • Checked the alignment of the color scheme popup button and its label in the "Text Colors" preferences.

  • Checked the alignment of the font setting items in the Editor Defaults preferences.

  • Changed the scrollbar in the color settings outline view in the Text Colors preferences so that it matches the same appearance as the outline view itself.

  • Fixed a bug in which the window title bar violator for evaluation mode would take up measurement space in the title bar even when it was invisible.

  • When dragging a folder to the FTP Browser for upload, BBEdit will now upload the entire folder (creating a folder in the drop location if necessary), rather than just its contents.

  • Fixed bug in which double-clicking on an item on the list in the multi-file "confirm before closing" panel would save the double-clicked item and discard unsaved changes to all the others.

  • Made a change so that when the text color scheme doesn't match the application appearance, the scrollbars in text views will match the color scheme, not the application appearance. (Thanks to Andrew Madsen for a very helpful tip here.)

  • Made a change so that the completion panel shows up in the dark appearance when the text view's background is dark.

  • Fixed bug in which the representation of text being dragged would be squished horizontally; the further the selected text was from the left edge from the window, the more squishing would occur.

  • Fixed bug in which document state was not autosaved when closing the document (including when quitting).

  • If you attempt to Canonize the same file that is specified in a Canonize operation, Canonize will stop you from doing this, because it's a bad idea.

  • The filter runner for "Preview in BBEdit" #! filters will now set the environment up for the script/executable so that preview filters that depend on being able to find things in the environment (such as $PATH) will work correctly.

  • Fixed a performance bug in which opening the Counterparts menu would take a very long time (close to 30 seconds in some cases) when both the document name and the names of potential counterparts were of nontrivial length.

  • Made a change so that when using "Save As" or "Save a Copy" for a text document, clicking on a disabled file name in the Save panel will enter only the clicked file's base name into the name field, without changing the file name extension.

  • Restored a legacy behavior in which "Preview in BBEdit" was allowed to operate on the document being displayed in a results window, even if it didn't have keyboard focus.

  • The HTML5 syntax checker will no longer warn for link tags with a rel attribute value of mask-icon, nor will it report an error when a link tag contains a color attribute.

  • Fixed crash which would occur when a Services operation (or an action which triggered one, such as dragging image data -- not a file -- to the application dock icon) failed more than once within the same run of the application.

  • Fixed a bug in which automatic matching delimiter insertion while typing would get confused in situations where an auto-inserted pair was deleted, and then a different auto-matching pair was subsequently typed in the same location.

  • Fixed a bug in which pressing Return or Enter in the Live Search box should have refreshed the search results, but did not.

back to top

fin