BBEdit 12.5 Release Notes

BBEdit 12.5 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.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.5 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.1 or later).

Additions

  • There is a new command on the "Go" menu: "Commands...". This brings up a modal panel which lists everything that you can do from a menu in BBEdit: menu commands, clippings, scripts, stationery, text filters, as well as open text documents and recent files.

    Type in the search box to narrow down the list; when you do this, results are ranked by how closely each entry matches what you entered.

    You can use wildcards (not Grep, but conventional file name wildcards like "*", "?", and so forth) if you like.

    Use the up- and down-arrow keys to move between matches; Return or Enter will run the highlighted command. This works whether keyboard focus is in the search box or on the list.

    You can dismiss the panel without doing anything by pressing Escape or Command-period.

    The right-hand column will display the currently assigned keyboard equivalent, if there is one. Double-clicking on the equivalent, or in the space where it would be, will allow you to change the key equivalent: press the keys that you would like to use for that command.

  • You can now generate lipsum, using the "Lorem Ipsum" command on the Insert submenu of the Edit menu.

  • Lipsum generation is available in clippings. The placeholder syntax is of this form:

    #LIPSUM [wordlist] [units] [units-count] [max-line-length]#

    wordlist and units are each a single character, and case matters:

    • p for paragraphs
    • s for sentences
    • w for words
    • S for startup
    • B for bacon
    • N for normal

    The case sensitivity allows these to appear in any order, and they can be separated by spaces, commas, semicolons, periods, slashes, colons, or dashes. Thus, the following examples are equivalent and all will generate ten sentences of Startup lipsum with the lines wrapped to 72 characters:

    #lipsum S,s 10 72#
    #lipsum Ss 10 72#
    #lipsum s:S 10 72#

    wordlist is optional; if omitted then BBEdit will generate "normal" lipsum.

    A #lipsum# placeholder may contain zero, one, or two numbers. If no numbers are provided then there is no line breaking and only one unit (word, line, paragraph) is generated.

    If one number is provided, then that number of units is generated.

    If two numbers are provided, the first is the number of units to be generated, and the second is the maximum line length.

    Thus, if you wish to break lines, you must also specify the number of units that should be generated.

  • Lipsum generation is available as an HTML document placeholder, using the same #lipsum...# syntax as for clippings.

  • Added support for Grep patterns to Canonize. This can be turned on using the check box in the "Canonize" dialog box; or by using a mode line in a Canonize data file.

    There are some restrictions to be aware of:

    • when Grep is in use, two columns are required on all lines (except for blank lines or comment lines).

    • the first column must be a valid Grep search pattern; the second column may be a literal string or a valid Grep replacement pattern.

    • When using Grep, BBEdit will check every search pattern for valid Grep syntax before beginning the Canonize operation. If any pattern is invalid, BBEdit will report an error for that line in the Canonize data file (including the PCRE error) and will not begin the operation.

    • Reminder: whether using Grep or not, "#" is used to comment lines; therefore, you must backslash-escape it ("\#") in any string or pattern where it needs to be used literally.

  • Added support for mode lines in Canonize data files. The mode line must be a comment line and occur on the first or second line of the file. It may contain the following variables (in addition to any other mode-line variables, which Canonize will ignore):

    • x-bbedit-canon-case-sensitive
    • x-bbedit-canon-match-words
    • x-bbedit-canon-grep

    If any of these are present, then the mode line will override the settings in the Canonize dialog box (or Text Factory action settings). In that case, any absent mode settings will default to "off".

    Here are some examples:

    # -*- x-bbedit-canon-grep: 1; -*-
    use grep; "match words" and "case sensitive" are off

    # -*- x-bbedit-canon-case-sensitive: 1; x-bbedit-canon-match-words: 1; x-bbedit-canon-grep: 0; -*-
    "case sensitive" and "match words" are on; "use grep" is off

    You may use "1" and "0" for "on" and "off" respectively; or "t" and "f", or "y" and "n".

    We recommend that you always use a mode line; this makes it easier to share Canonize data files and guarantee that their behavior will be consistent irrespective of the individual user's preferences.

  • Multi-File Search results windows now get a "reload" button, which you can use to repeat the search using the same settings.

  • There's a new command available on the Search menu and in the contextual menu in text views: "Search for [selected text] in [location]". This will start a multi-file search for the selected text (or the word surrounding the insertion point, if applicable), in the locations most recently used in the Multi-File Search Window.

  • There's now a "Word" command on the Select submenu of the Edit menu. Choose it to select the word(s) containing the insertion point or selection range. There is no default keyboard equivalent for this; you can assign one using the "Menus & Shortcuts" preferences.

  • Added a collection of commands to the Miscellaneous group in the Menus & Shortcuts preferences: "Edit View Scrolling". Each of these is for scrolling an edit view in the appropriate direction, and is a convenient hook for assigning a keyboard equivalent for easy keyboard scrolling (e.g. control-up/down-arrow, or control-left/right-arrow).

  • Added a "Clear History" command to the search/replace history menu in the Find and Multi-File Search windows.

  • The setting to enable single-click line selection (by clicking in the line number bar or gutter) is now available in the Editing preferences.

  • Added a "Title Case" option for Change Case. This will make the first letter of each word in the selected range uppercase, except for certain words that would not be appropriate. The implementation uses NSString+IATitleCase, copyright ©2016 Information Architects, Inc. and used under the terms of the MIT License.

  • The Multi-File Search window provides the ability to filter files and folders separately. In this way, you can include only those folders that you explicitly wish to search.

    BBEdit applies folder filters after any automatic filtering (such as .gitignore processing; skipping of invisible folders, node_modules; and so forth).

    There are some things to be aware of:

    • You can use a given filter interchangeably for both files and folders; but not all terms make sense for folders. The following in particular will behave predictably but not necessarily usefully:

      • The "File Contents" term will never match when it occurs in a folder filter.

      • Using the "Language" term to filter a folder may not make sense, but is nonetheless applied as though filtering a file. So if a folder's name happens to map to an available language, the term may match.

      • The "Legacy HFS file type" and "Legacy HFS file creator" values are always zero for folders, and therefore may not match.

    • If a folder matches a filter, there is no assurance that any of its subfolders will be processed, unless they match the same filter. Conversely, if a folder fails to match a filter, none of its contents (files or subfolders) will be examined. So if you have a directory structure like this:

      MyDirectory/
          Foo/
              Mumble/
              Grumble/
          Bar/
              Foo/
      

      And you're using a folder filter of the form:

      Name is "Foo"
      

      And then you start a search of MyDirectory, then only the top-level Foo folder will be searched. Neither of its subfolders Mumble or Grumble will get searched, because they do not match the filter. Likewise, Bar will not be searched, nor will the Foo within it, because Bar and all of its contents are excluded by their failure to match the filter.

      For this reason, if you want to limit searches to folders and their contents by name, your best bet is to use the "Path" term:

      Path contains "Foo"
      

      Given the above, this would allow the search to examine MyDirectory/Foo/, MyDirectory/Mumble/, and MyDirectory/Grumble/. Note, however, that again, MyDirectory/Bar/ would not match this term, and so neither it nor MyDirectory/Bar/Foo/ would get searched. (Since filters can contain multiple terms, adding a "Path contains Bar" term would allow MyDirectory/Bar/ to get searched.)

  • The "Find Differences" command now provides an option for separate folder filtering. This follows the same rules as described in the change for Multi-File Search.

  • Added folder filtering controls to the "Options" panel for text factory windows. (Folder filtering follows the same rules as Multi-File Search and multi-file Find Differences.)

  • The options for Find Differences are now tabbed, to reduce clutter in the dialog box. As a result, you can now make the Find Differences dialog narrower (horizontally) than before.

  • The Find window gets a new button: "First". Clicking this button will always find the first match in the document, irrespective of where the insertion point or selection range may be.

  • There is a new command on the Search menu: "Find First". This command will always find the first match in the document for the current search string or pattern, using the options previously set in the Find window, irrespective of where the insertion point or selection range may be.

    BBEdit enables this command while keyboard focus is in the Live Search box; and using it in that situation will highlight the first match in the document for the current Live Search string/pattern.

  • There is a new command on the Search menu: "First Occurrence of Selected Text". If a selection exists and the global preference to "Display instances of selected text" is turned on (in the Editing preferences), then this command will display the first highlighted range of the selected text that occurs in the document.

  • There's a new command on the View menu: "Merge Windows". When a non-project editing window is active, this command will collect the open documents from all other non-project editing windows that are open behind it, and will then close those other windows. The end result is that all open documents are (...wait for it...) merged into the active window.

    If this command is disabled, it's because the active window is a document-based project (bbprojectd) or an instaproject (created by dropping a folder on the application), or there are no other qualifying document windows open.

  • The "Collapse Folds Below Level" submenu commands can have keyboard equivalents assigned to them, if desired, using the "Menus & Shortcuts" preferences.

  • "Show Working Copy Status" results windows now include a Reload button, which will refresh the results.

  • There is a GUI editor for color schemes. If you drop a .bbcolors or .bbColorScheme file on the application, a color scheme document window will open for that scheme. You can make changes to the colors, similar to the fashion in which the "Text Colors" preferences does it.

    In addition to the color swatches and applicable settings, a scheme editor window has two buttons: "Apply" and "Install".

    The "Apply" button will change the active color scheme to use the colors specified in the window. This is good for trying out a color scheme before installing it, or when testing out changes to a scheme. BBEdit does not save the changes made by the "Apply" button to your preferences.

    The "Install" button is useful for installing a downloaded color scheme, and will copy it to the "Color Schemes" folder in your active BBEdit application support folder.

  • The "Bookmarks" pane in the Setup window now gets "go to" arrows for each bookmark; clicking on the arrow will open that location in an FTP/SFTP browser.

  • BBEdit is now built using the macOS hardened runtime, for increased security protections when running on macOS 10.14.

  • The list items in the "Folders" tab of the Setup window are drop targets; you can drag files on to them and the file(s) will get moved to the appropriate directory. You can hold the Option key down to copy instead.

  • Added a lightweight language module for sandbox profile (SBPL) files; it folds matched pairs of parens and will color comments, strings, and some keywords.

  • Edit => Columns => New Document with Columns will make a new untitled document with the text of the selected columns (given a recognizable column-delimited file).

  • Added a "Remove Blank Lines" pattern to the factory default list of patterns, as an example.

    To add this to your own saved patterns if it's not already there, choose "Setup" on the BBEdit menu; then choose "Patterns" from the toolbar in the Setup window. Click the "+" button to add a new pattern. The "Search Pattern" string should be:

    ^\s*$\n

    Leave the "Replace Pattern" string blank. Then give the pattern a name and click the "OK" button.

  • A simple Swift language module is now included with the application.

  • A "sidebar width" scripting property is available for project/editing windows, which returns the width of the sidebar as a fraction of the window's overall width.

  • Plug-in language modules may now specify custom badge information for use in the function menu. Details on how this works are available in the updated language module developer notes.

  • Added a port of the "Xcode Dark" color scheme to the built-in list. Thanks to Andrew Carter for his contribution.

  • Print settings (via the Print panel) are now remembered per document, and applied as needed. They are saved in the document state.

  • The Open File by Name window now highlights each matching file name, based on its relationship to the search string.

Changes

  • We have reorganized the "Appearance" preferences pane, moving the "Match appearance" check box to the top and making room for an annotation below it. The "Show icons" setting for sidebars has been squeezed out and moved to the Expert Preferences help (the setting is still honored).

  • We have changed the order of menu items in the file filter UI: legacy HFS properties are now at the end of the menu (and some day may go away entirely, so be prepared). In addition, since folders may be used for either files or folders, the word "File" has been removed from the nomenclature except where a term applies specifically to files only (such as "File contents").

  • The "Open" button for results windows (Multi-File Search, SCM operations, and others) has been deemed surplus to requirements and we have removed it from these windows. (You can still open items from a results window many different ways: return or Enter while the list has focus; or double-click on an item.)

  • The Text Options popover (under the gear in the navigation bar) will show an indication when settings in the document you're editing are affected by a .editorconfig file, because changes to affected settings are lost when closing the document.

  • We have retired the built-in Perforce support. You can certainly continue to use BBEdit to edit files under p4 control, and it will continue to function as a P4EDITOR and P4DIFF helper (set those configuration variables to "bbedit -w" and "bbdiff -w", respectively).

  • The Multi-File Search window now shows enhanced summary information; it will provide a full summary of all of the items being searched. There's a scroll bar in case you need it.

  • Added some vertical space to the "Enter License" panel so that there's more room for helpful text.

  • Rearranged the "View" menu slightly, so that it's a little shorter overall. The "Text Display" submenu is now at the top, followed by a "Window Appearance" submenu which contains the previously inlined commands for turning on and off various elements of the window display.

  • When running a Unix script or executable from the Scripts menu, the selection range of the active text document is available by reading from stdin. If there is no selection, the entire contents of the active text document are provided.

  • The "Exclude matches" option for multi-file searches is in the window itself, rather than being hidden behind the Options sheet.

  • In the Multi-File Search window, when "Exclude matches" is turned on, the summary now includes an annotation, so that you'll be reminded why your searches "don't find anything".

  • Cleaned up the "Folders" pane in the Setup window. The arrows are now gone, and each folder icon is a clickable button that does what the arrow used to (and more reliably).

  • Removed the Keyboard preference setting to control Option-Yen behavior. The entry of ¥ on Japanese keyboards is switchable for the applicable input method in the Keyboard system preferences.

  • When running on macOS Mojave (10.14) or later, the Appearance preferences contain an option: "Match application appearance to selected editor color scheme". When enabled, this will do what it says: when the application color scheme is dark, BBEdit's windows and UI elements will use the Dark Mode appearance; otherwise the standard appearance will be in effect. This operates irrespective of the system-wide appearance setting.

    BBEdit will override this setting when you have selected the “Dark” appearance in the General system preferences. This is done so that BBEdit's primary interface can match the system appearance (dialog boxes, palettes, and so forth) will all use Dark Mode when it is turned on system-wide.

    If there is some reason that you would prefer that BBEdit's presentation always match the selected editor color scheme irrespective of whether Dark Mode is on, you can change this:

    defaults write com.barebones.bbedit UseSystemAppearanceWhenInDarkMode -bool NO

    We recommend restarting BBEdit after you change this setting.

    On macOS 10.13 and earlier, this option remains "Match window appearance to selected editor color scheme", and although editor windows will be darkened appropriately, some windows are excluded due to limitations in the older OS versions.

  • The "Save Scheme" button in the "Text Colors" preferences has been changed to "New...", and will create a new color scheme document using the current settings.

  • The "New Disk Browser" command prompts for the directory to browse, rather than always opening in the user's home directory (which would not be possible once macOS sandboxing rules go into effect).

  • Changed the default order of items in the Setup window's toolbar. The toolbar is also configurable, so you can rearrange items as desired (or remove them, although that is probably not a good idea).

  • We have removed support for size-based control of font smoothing; the OS has not supported size-based smoothing controls for a very long time, and the mismatches between our controls and the OS font implementation have been causing problems. The Expert Preferences help has been updated accordingly.

  • Changed the "files visible" AppleScript property of project/editing windows to "sidebar visible" to match the UI nomenclature.

  • Since a Swift language module is built in, BBEdit advertises its ability to edit Swift source files to the OS. What the OS does with that information is completely up to it.

  • On Touch Bar systems, the touch bars for the supported windows are now customizable, so you can rearrange or remove items as desired. (Use the "Customize Touch Bar" item on the View menu.)

  • If a file has a com.apple.TextEncoding extended attribute, BBEdit now assumes that it is a text file for purposes of file filtering (for various use cases). This test gets applied after filename extension mapping and other file metadata tests have failed, but before examining the file's content.

  • Pushed some pixels to improve the appearance of the "clippings" badge used for completions (and other circular badges that may appear in the function menu or elsewhere).

  • The bbdiff, bbresults, bbedit, and bbfind tools are now built with the hardened runtime and appropriate entitlements for enhanced security on macOS Mojave.

  • While drag-scrolling (that is, making a selection with the mouse and dragging it beyond the view boundaries, or using drag-and-drop for the same purpose), BBEdit will throttle the vertical scrolling speed. If you would prefer that it not limit the scrolling speed in this situation:

    defaults write com.barebones.bbedit ThrottleVerticalScrollingSpeed -bool NO

  • BBEdit is now using an updated version of the PCRE regular expression engine which includes significant architectural rework. There are no changes to the pattern syntax; but the new version addresses various performance bottlenecks and limitations that were present in older versions. Among other things, it should now be possible to do Grep searches in files that are larger than 2GB.

  • If multiple items in a folder-backed menu (Scripts, Text filters, etc) have the same base name, their names will appear with the filename extension, to help resolve confusion which might confuse if (for example, purely hypothetical of course) you have "Markdown.pl" and "Markdown.textfactory" in your Text Filters folder.

  • Made changes so that the default height of text factory, color scheme, and FTP windows is less than the height of the display and the width is appropriate to the window's intended use.

  • The "Find Differences" now limits the maximum number of open text documents that are presented in the "Recent" menu next to each file entry area. The overflow is now provided on a submenu below the top few items.

  • BBEdit will (quietly) check for an update the first time it is used, or if it detects that it's running on a different version of macOS than the last time it was started.

  • Since page setup adjustments are now included in the Print panel, we have removed the "Page Setup" command from the File menu.

  • When you opt out of reopening documents that were opened via the built-in FTP/SFTP support (either by changing the preference in Application preferences; or by clicking "Skip" when prompted at startup), BBEdit will opt out of reopening FTP/SFTP browser windows as well.

  • The command-line tools installer will attempt to install the tools without requesting administrator credentials; only if this fails will it prompt you for administrator permissions. That way, if /usr/local/bin/ exists and is writable by you, no privilege escalation is required.

Fixes

  • Made changes to improve compatibility with iCloud Drive when application support and setup data is stored there.

  • Overhauled and modernized the code that locates the BBEdit application support and Setup folders and their contents.

  • "Compare Against Previous Version" and "Compare Against Disk File" are now available for files being displayed in results windows (when keyboard focus is in the editing view).

  • Extensively modernized file system operations in document open/save and other areas.

  • Fixed a memory leak in the Text Options sheet.

  • Fixed a memory leak in the file filtering subsystem.

  • Fixed a bug in which more work than necessary was being done while building the item tree for folders in projects (insta- or otherwise).

  • Fixed bug in which instaprojects would not open up with the correct sidebar width, which was particularly noticeable when the width had been customized via "Save Default Project Window".

  • Fixed a bug in which Hard Wrap would leave the last line of a paragraph unbroken in cases where it was longer than the wrap width.

  • If you use "Edit Markup" in a document whose language is not an HTML variant or XML, and the point at which you invoke Edit Markup is not parseable HTML, the markup builder will pretend that it's within a <body> tag, and will present appropriate options instead of beeping.

  • Fixed bug in which the HTML syntax checker would incorrectly report an error on URLs that contained an ampersand ("&") in the query portion of the URL.

  • Made a change so that -T in a Perl document's #! line is passed through to the Perl interpreter when doing a "Check Syntax", so that it doesn't trigger a note from perl about the mismatch.

  • Fixed bug in which the SFTP client would report a -108 error when trying to perform certain operations after a failed connection attempt.

  • Updated the internal FTP implementation library to the latest available version.

  • Updated an internal API usage to match current recommended best practices.

  • Fixed bug in which file filters specified in a Text Factory window were not applied.

  • Made a change to reduce resource utilization when updating ctags data with many documents open.

  • Fixed a bug in which certain HTML document malformations would confuse the markup tools into thinking that the selection range was inside of a tag pair when in fact it was not, which in turn would cause the generated markup to be inserted in the wrong place.

  • In the Live Search bar, the "Grep" option and saved patterns menu will now respond to the same keyboard equivalents used for activating those items in the Find and Multi-File Search windows.

  • When using the "New Text Document" contextual command in a project window sidebar, BBEdit will add a text encoding attribute to the (empty) file if it is otherwise not recognizable as a text file (based on its filename extension).

  • Fixed bug in which creating a new text file within a Disk Browser window would not select the file in the sidebar, as it should have. (Note that if a file is already selected and has unsaved changes in the browser window, the selection will not change in any event.)

  • Radar 28263496 appears to be fixed as of 10.13, so on the newer OS versions we allow our spelling panel additions ("Skip All Caps") to load.

  • Adjusted the scripting dictionary so that using sdef followed by sdp to generate a Cocoa scripting bridge header generates NSURL* parameters for all of the APIs that need them.

  • Fixed an unreported bug in which the enabling of the "Insert" toolbar item in the Clippings palette was not correct when the Find or Multi-File Search window had keyboard focus.

  • Made a change so that when running on pre-Mojave macOS versions, windows with special needs (FTP browsers and Open File by Name) always use the OS appearance, even when a dark color scheme is selected. This works around various cosmetic issues in macOS 10.12.x and 10.13.x when trying to force a dark window appearance.

  • Fixed typo in the Clippings and Placeholders references in the help book in which DATETIME was used twice in succession, rather than DATETIME_GMT.

  • Fixed a bug in which closing the Find or Multi-File Search window would activate the wrong window in some circumstances (usually involving full screen or Split View mode).

  • The HTML5 syntax checker will no longer generate a warning for <meta http-equiv="Content-Security-Policy" ...> elements.

  • If you attempt to save a document in a location from which another document is already open, BBEdit will prevent you from doing so, because otherwise this causes all kinds of confusion.

  • Fixed bug in which the application allowed you to drop things into the "Currently Open Documents" section (in a project window) that didn't belong there. What happened next was usually shocking.

  • Fixed a case in which symlinks in a folder (at the top level) which pointed to the folder itself would be included when expanding the folder recursively in a project sidebar. (Note that symlinks below the top level can still create an infinite loop if they point to the folder or one of its ancestors.)

  • Fixed bug in which Perl documents containing indented heredocs (<<~XXX) were not colored correctly following the end of the heredoc.

  • Fixed bug in which certain heredoc opening tags were not correctly colored in Perl documents.

  • Fixed bug in which the application would deadlock for the duration of the Apple Event timeout period when running a script from the Scripts menu which either ran the bbedit(1) tool via "do shell script" or sent an event to another application which in turn sent an Apple Event to BBEdit and waited for the reply.

  • Made a change to the Markup Builder panel so that if you enter a element name that it thinks shouldn't be allowed, it'll populate the attribute list with fields for that element anyway, rather than leaving the list empty.

  • "Find All" on the Search menu is now enabled when the Find window is closed (assuming that the text view with keyboard focus has any text in it).

  • Made a change to prevent crashes in cases involving large amounts of stack recursion. (The proximate example was the 100000 unbalanced opening brackets in the example here.)

  • Fixed bug in which Git "Show Blame" did not report any output if the active document was not encoded as UTF-8 and it contained trans-ASCII characters.

  • Changed the way the menu item badges are drawn (during the evaluation period) for improved appearance on macOS Mojave.

  • Fixed bug in which the menu item badges used during the evaluation period would turn green on the last day of the evaluation, rather than red.

  • Fixed bug in which customizing a color setting while a color scheme was in effect did not correctly write out discrete color settings; the setting would then be lost when quitting the application, and subsequently the factory default would apply (which was almost always wrong).

  • Made a change so that status bar items and the summary line in search results windows now uses a variant of the system font in which digits are monospaced, which keeps the displayed text from shifting more than is absolutely necessary.

  • Corrected the appearance of HTML markup palette buttons in Dark Mode on macOS 10.14.

  • Fixed bug in which the "Show updates" option for Subversion "Show Working Copy Status" did not indicate updates in the results.

  • Made a change to fix a crash which could occur while previewing Markdown or HTML with fragmentary URL content.

  • Corrected the appearance of the About Box credits when Dark Mode is in use on macOS 10.14.

  • Fixed a crash which would occur while ingesting a ctags data file which contained invalid UTF-8 characters. BBEdit will now attempt to interpret such symbol names as Mac Roman; but in any case will no longer crash.

  • Made a change to fix a long-standing animation glitch when switching between panes in the Preferences window.

  • Fixed a bug in which naked carriage returns encountered when using "Use Selection for Find" while "Use grep" was turned on in the Find window were escaped as "\r", which would then fail to match. They are now correctly escaped as "\x{0D}".

  • Corrected the appearance of text in the Software Update window when running in Dark Mode on macOS Mojave.

  • Fixed a bug which could have been responsible for a reported crash when quitting (but which we could never reproduce).

  • Rewrote the internals of the Text Colors preferences pane to fix reported bugs (hopefully without introducing too many new ones).

  • Fixed layout bugs in Text Factory windows that resulted from the window not having a minimum width specified.

  • Fixed bug in which bbdiff would not correctly resolve home-relative file references (e.g. ~/path/to/some/file.txt) before asking the application to diff them; this would result in a -1701 error being reported by the tool.

  • Fixed bug in which the Unix Shell Script syntax coloring would be confused by here-strings (<<<).

  • Worked around an OS behavior (Radar 44894340) which prevented the application from remembering that files from /private/etc/ (and probably some other directories) were opened when quitting the application.

  • Made a change to the Ruby language module so that it no longer suggests BEGIN or END as completions.

  • Fixed a bug in which the alert indicator for "wrap around" and similar notifications was not placed correctly (in the center of the display containing the relevant window).

  • When dragging an SVG file into an HTML document, BBEdit will now generate an img tag, rather than an anchor.

  • Fixed a hang in the Java syntax coloring scanner which would occur when scanning a file which was Java-like but which contained certain malformed single-quoted strings.

  • Made a change to work around a bug in macOS Mojave (Radar 44945069) which prevented the dragging of multiple sidebar items (or in fact multiple items from any source).

  • Fixed the tendency of the startup progress panel to stay in front even when BBEdit was in the background.

  • Reworked the internals of the Markup Builder panel (used by Edit Markup and the direct tag-generation commands on the Markup menu) to correct various behavior and appearance glitches.

  • Added an NSAppleEventsUsageDescription value to the command-line tools, so that if the OS ever pays attention to that value when running a UI-less process, the prompts will reflect the intended usage. (Radar 45113119)

  • When running on macOS 10.14, the command-line tools will preflight their operations to make sure that they've been allowed to send events to BBEdit. This may prompt you to allow access. If you deny access, or have previously done so, the tools won't work correctly until you run this Terminal command (and they will tell you so):

    tccutil reset AppleEvents

    If using tccutil doesn't solve the problem, then you are likely using iTerm2 and your beta is out of date. Updating iTerm to the latest available version should resolve this.

  • Fixed a bug in which the HTML link checker would in some situations report that it was unable to find a document referenced by a relative link.

  • Made a change to the Software Update feed download so that it explicitly requests that the local cache be ignored. This should ensure that manual updates always return the latest available data from the server.

  • Fixed a bug in which Zip archives were always assumed to use UTF-8 for encoding file names; if that was not the case then a -4960 error would occur when exploring the archive. There is no reliable way to know what encoding was used, so BBEdit will first try UTF-8, then CP437, and finally give up and try Mac Roman (which will show junk in most cases but is still better than failing).

  • Made a change so that documents that you open in BBEdit are (once again) registered with the OS's "Recent Items" mechanics. This works around a bug in the OS (35052088) which would cause the application to crash, which is why we previously had to disable the feature.

  • Corrected the appearance of the Languages preferences when running in Dark Mode on macOS Mojave.

  • Fixed bug in which color data in dragged Calendar items would confuse the logic used to interpret the rest of the data, such that dragging an item from Calendar (or any other application which included a separate color item in the drag data) would drop nothing into the destination edit view.

  • Made a change so that URL matching for the Open Recent menu won't cause the application to stall in cases where one or more items are located on remote file systems that are unavailable or very slow to respond.

  • Fixed a bug in which windows which had the sidebar hidden when the application was quit would have the sidebar after the application restarted, in cases where the window contained one or more unsaved untitled documents.

  • Fixed bug in which Option-Tab not only forced the skipping of placeholder navigation, but also forced auto-expansion off, so if you had Auto-Expand Tabs turned on, there was no way to get an auto-expanded Tab inserted if the file contained placeholders.

  • Corrected appearance of Git revision pickers when running in dark mode on Mojave.

  • Fixed bug in which the progress bar indication was incorrect for files downloaded via the built-in FTP/SFTP support.

  • Fixed a bug in the markup syntax checker in which links that were correctly percent-encoded would be reported as requiring encoding.

  • Made a change which will hopefully improve the appearance of buttons in the Find and Multi-File Search windows on computers with @1x (non-retina) displays.

  • Made a change to disallow manipulating the "visible" AppleScript property of non-floating windows. (Otherwise, non-wonderful things will happen.)

  • Fixed crash which would occur when trying to compare files and /usr/bin/diff had been deleted. (Don't do that.)

  • Fixed a bug in which lists did not auto-scroll during drag-and-drop operations in situations where they should have.

  • Fixed a bug in which the indentation setting for "Hard Wrap" was observed when "Paragraph Fill" was turned off. In the case of wrapping a single line with "Standard indent" selected, this had the observed effect of shortening the wrapped line by the number of spaces in a tab.

  • Fixed bug in which the "Run with Options" panel on the #! menu would always reset itself to "Unix Script Output" when used.

  • Fixed bug in which the function menu wasn't correctly marked and highlighted when the insertion point was in an Objective-C method implementation (and this affected other items as well).

  • Fixed bug in which comments which immediately followed numbers in a C-family language document were not colored correctly.

  • Fixed appearance of the "Compare Against Previous Version" panel in dark mode on Mojave.

  • Fixed a bug in which files opened from certain symlinked directories (such as /etc/) would behave strangely when attempting to perform operations which depended on an accurate determination of whether BBEdit had the file open already.

  • Fixed bug in which doing a "Save As" on a document would leave certain internal data structures in an inconsistent state. One typical manifestation was that after saving an untitled document, closing it, and making changes using another tool, reopening the file in BBEdit would show the contents of the file as it was before the external tool made the changes.

  • Fixed bug in which the Live Search controls would update the Find panel with the Use Grep setting inverted.

  • Fixed a bug in which keyboard focus was not placed correctly in the Markup Builder panel when running on macOS Mojave.

fin