[ANN] BBEdit 15.5 (15C51) pre-release

126 views
Skip to first unread message

Rich Siegel

unread,
Apr 14, 2025, 10:35:04 AM4/14/25
to BBEdit Talk
Good morning,

We're working on a feature update to BBEdit 15, and a pre-release version is now available.

Note that this is a _pre-release_ version. The intent is to fix bugs and address areas of improvement based on what our customers have reported. However, since the software is at this point not fully tested, there _may_ be bugs and regressions.

If this prospect makes you nervous, then sticking with the public release versions is your best course of action. Nobody will be offended if you choose to do so; you're under no obligation to install and use anything but a public release. :-)

Complete change notes to date for all the pre-release builds in this cycle are available here:

<https://s3.amazonaws.com/BBSW-download/15.5_Notes.txt>

The change notes are organized into additions, changes, and fixes, and are annotated where appropriate with case numbers. So if you recognize a number corresponding to a support case that was opened for you, you can now verify that it's been fixed correctly. Please take the time to review the changes before using the new build -- it'll be worth your time.

One final note: If you run into a bug in a pre-release version, PLEASE DO NOT REPORT THE BUG TO THE LIST. This includes asking about whether others have seen the same problem. Instead, please send a bug report to <sup...@barebones.com> and we will deal with it there. This will help us keep the list discussion on topic and productive for all list members.

Here is the list of changes made since the 15.1.4 public release:

================================================================================


<!-- -*- mode: markdown; coding: utf-8; -*- -->

version 15.5 (15C51) (2025-04-11)

* BBEdit 15.5 requires macOS 12.0 or later.

Additions
---------

+ Introducing "workspaces", a way to switch between arrangements
of open documents and windows. A workspace includes the same
application state that is saved and restored across quit and
relaunch, but can be activated at any time while the application
is running. This is useful for (for example) switching between
working setups for different clients, or for different types of
projects (writing vs programming vs web development).

The applicable menu commands reside on the BBEdit application menu.
To create a new workspace, choose "Save Workspace" and give the
workspace a name. To activate a previously saved workspace, choose
it from the "Workspaces" submenu. You can overwrite an existing
workspace by specifying the same name.

When switching to a different workspace, BBEdit will ask you to save
any unsaved documents which correspond to existing files on disk (or
remote FTP/SFTP items). You must save these before switching
workspaces. Untitled (never-saved) documents are not affected by
workspace changes, and will remain open (and unsaved) when you
switch workspaces.

Saved workspaces reside in the "Workspaces" application support
folder, accessible via the Folders submenu on the application menu.
If you wish to remove an inactive workspace, deleting the
corresponding file will accomplish this. Existing workspaces can be
renamed by renaming the corresponding file (whose extension must be
preserved when doing so).

If there are any saved workspaces, BBEdit's Dock menu will have a
Workspaces submenu, so that you can easily switch via the Dock if
desired.

BBEdit does *not* update a workspace as you open or close documents
or move windows around. If you make significant changes and would
like to update the workspace, use "Save Workspace" and overwrite the
current workspace. (For convenience BBEdit will fill in the name of
the current workspace when you use "Save Workspace".)

Additionally, BBEdit will prompt you to update a workspace when
switching, if necessary. You can control this behavior in the
Application settings, using the "When changing workspaces" group of
settings.

* The Git branch item in the navigation bar grows a menu; when
clicked this will present the eight most recently committed local
branches in alphabetical order, for easy checkout. The "Check Out
Branch" command at the end of the menu performs the same function
as the corresponding command in the menu bar.

* The popover for LSP diagnostics gets a "Copy" button ("Copy All"
if there's more than one listed), and you can also use "Select
All" or select multiple diagnostics and use the Copy command.

* Grep pattern entry fields in various transformation and setup
dialogs are syntax colored.

* When running on macOS 15, the Window menu includes "Fill" and
"Center" commands, as well as the "Move & Resize" submenu and
associated commands.

* The "Zoom" command makes a triumphant return to the Window menu.

* Added "Cascade on Left" and "Cascade on Right" commands to the
Arrange submenu on the Window menu. These commands will
(respectively) cascade windows on the left and right side of the
display, without allowing them to cross the middle. (This is
generally more useful on large wide-aspect displays.)

* Various sheets which provide access to saved Grep patterns have
added the ability to save and manage patterns from within the
window.

* Made changes to improve the experience when running #! or Unix
language scripts that take a nontrivial amount of time to
complete.

Using "Run" on a script window, or choosing a Unix script or
executable from BBEdit's Scripts menu will open a window with an
icon you can click to get back to the document being run, a progress
bar, an elapsed-time indicator, and a cancel button. These all work
as you might expect.

Any output produced by the script will appear in the text area,
and when the script execution has finished it will also be added to
the appropriate log file. You can get to the log file using the
button provided for the purpose.

Additionally, the output can be selected and copied, and "Save a
Copy" on the File menu is available to save the output to a separate
file, if desired.

If the script takes less than two seconds to run and does not
generate any output, the progress window will not appear (there's no
need for it).

* The keyboard equivalents configurable for opening the search
history, saved Grep patterns, and cheat sheet in the Find and
Multi-File Search windows can also be used (as applicable) in
other locations that use the same menus.

* When right-clicking on two selected files in the sidebar, in
addition to "Compare", "Find Differences" is provided. Choosing
the latter will open the Find Differences window prepopulated
with the selected files. This provides an opportunity to adjust
settings or (if desired) swap the files before doing the
comparison.

* Added the ability to preview CSV and TSV files (explicit
indicated language of "Comma-separated Values" and "Tab-separated
Values", respectively) using "Preview in BBEdit" or a designated
web browser. "Export as HTML" works as well. Note that BBEdit is
still not a spreadsheet.

* When copying code responses in an AI worksheet, if the
worksheet's language is Markdown and the selected text of range
is in between two fenced code block delimiters with a language
specified, BBEdit will attempt to determine the language based on
the specified mode, and use that as the language when pasting
into a new document.

* Added a contextual menu to the list in the Expert preferences,
to simplify copying and resetting individual settings. (Copy was
previously available via the Edit menu, and still is.)

* Remote Git push/pull/fetch will display a "Completed"
annunciator after successful completion of the operation, so that
you at least know that something happened.

* An expert preference is available so that BBEdit uses the active
user locale rather than the core system locale when comparing
text for Sort Lines. By default this is off; but if for some
reason you require localized sort order based on the active
language in the system, this is available by employing the
following Terminal command:

`defaults write com.barebones.bbedit SortLines_UseCurrentUserLocale -bool YES`

* Individual notifications can be disabled via expert preferences; these
are listed in the "Expert Preferences" listing; type "Notification" in
the search box to see them.

+ New text transformation: "Strip Diacriticals". This transform
replaces composed diacritical forms in the text with the base
character. Thus, "á" becomes "a", "ç" becomes "c", and so forth.
The transform is available via the Text menu, "Apply Text
Transform", text factories, and the scripting interface.

+ Color schemes get a setting for controlling the color used to
highlight occurrences of the selected text (or of the word
surrounding the insertion point). To adjust this, use the
corresponding color setting in the "Text Colors" preferences.
Absent an explicit setting, BBEdit will derive this color from
the foreground text color.

+ Color schemes get a setting for controlling the color used for
live search matches (via the Find window or Live Search bar); one
setting for the selected match, and one setting for all others.
To adjust this, use the corresponding color setting in the "Text
Colors" preferences. Absent an explicit setting, BBEdit will use
the previous defaults.

+ If completions provided by an LSP server include a "details"
field, this is displayed next to the completion's display text in
the completion panel.

Changes
-------

* If desired, you can force BBEdit to read files as UTF-8, even if
they are not valid UTF-8. To do this, add "Unicode (UTF-8)" as
the **only** encoding in the list of encodings to try if a file's
encoding can't be guessed (in the "Text Encodings" preferences).

This should be used with caution and under advisement; BBEdit can
already automatically detect and read valid UTF-8 files, and
malformed UTF-8 files may behave unpredictably when edited,
searched, and/or saved.

* If the `OpenPDFsAsText` expert preference is off, as it is by
default, BBEdit will display PDFs in-application alongside other
documents. This is provided as a convenience; BBEdit is not a
replacement for Preview or any other PDF tool.

* Updated imagery in the LSP diagnostics popover so that errors,
warnings and notes can be distinguished by shape as well as by
color.

* Updated the iconography in the navigation and text status bars
to use images provided by the OS, for a more up-to-date
appearance and improved behavior when using the "Large" and
"Extra Large" status bar item sizes.

* BBEdit uses the standard macOS Window menu, which improves
compatibility with ongoing system-wide UI changes in that menu.
System-provided commands on that menu can be customized using the
System Settings application (and apply to all applications).

* Per-language preferences no longer include the ability to hide
the Language status bar item, since doing so makes it impossible
to change the document's language.

* Added support for FTPS (FTP protocol run over TLS). The
connection panel for "Open from FTP/SFTP Server" and friends
provides a popup menu for choosing the security model, as
follows:

* `FTP`: FTP protocol, no transport security
* `SFTP`: SSH file transfer protocol, SSH transport security
* `FTPS (Explicit)`: FTP protocol, TLS transport security (negotiation requires server `AUTH TLS` support and negotiation)
* `FTPS (Implicit)`: FTP protocol, TLS transport security (connection opened immediately; requires server support)

* The "Selection only" check box is enabled in the Find window
when the target document has a rectangular or other
non-contiguous selection. The "Find All", "Extract", and "Replace
All" buttons will behave accordingly and operate only in the
selected ranges of text. NB: if a replacement involves adding
line breaks, the outcome may not be what you expect.

* Changes in the Git revision pickers:

- Rearranged the columns in the Git revision picker; the
commit hash is always listed first.

- Display the commit hash in a monospaced font.

- Disable sorting based on the commit hash (which is
arbitrary and not useful for sorting).

* When using "Compare Revisions" or the navigation bar revision
menu for a Git file, BBEdit will disable the `HEAD` revision from
the list of available revisions if the file does not have any
pending changes. This improves the overall experience by making
sure that the most recent comparable revision is always the first
one available, rather than the second.

* When starting the application with the Shift key down, an alert
will now appear confirming whether you want to skip the reopening
of previously opened documents. (Heretofore the application would
do so without prompting and post an OS notification, which quite
often could be missed or suppressed.)

* Reworked the internals of multi-file search/replace and Text
Factory execution to improve performance and eliminate legacy API
use. (The brevity of this description in no way reflects the
amount of effort this required.)

* When quitting the application, and *either* "Restore unsaved
changes" *or* "Reopen documents that were open at last quit" have
been turned **off**, BBEdit will check for documents with unsaved
changes before beginning the quit process. If there are any, you
can opt to review the documents (which cancels the quit process),
or discard all of the unsaved changes (after which the
application will quit.)

* Corrected the appearance of the popup menu buttons in the CSS
dialog boxes (also used in a few other places) when running in
Dark Mode.

* If an instaproject is open on the user's home directory, BBEdit
will avoid opening arbitrary files into its window, since
otherwise *everything* would open there. Rather, only files
located immediately in the home directory will open into the
instaproject window, as well as files located in invisible
directories whose immediate parent is the home directory. (This
probably doesn't make sense to anyone except the one person who
needs this behavior, hi Steve.)

* When performing a Grep replacement or Extract operation, the
application will warn you if the replace pattern contains
references to nonexistent capture groups (subpatterns) in the
search pattern.

* If there is a saved default window position (created via "Save
Default Text Window" on the Window menu), BBEdit will use this
when arranging windows using the "Stack" command.

* Made changes to improve the execution performance of complicated
Grep pattern searches, as well as to enable performance
improvements for the patterns used in codeless language modules.

* BBEdit will ignore lines beginning with `#` when processing
delimited text files (CSV or TSV) for column analysis as well as
previewing. This can be configured via a custom language setting
for the respective language, if needed.

* Made a change to improve legibility in the sidebar when it does
not have keyboard focus and the system-wide accessibility
"Increase contrast" setting is turned on.

* Added support to `bbedit(1)` for `-F`, `-N`, and `-S` as
synonyms for `--front-window`, `--new-window`, and
`--separate-windows`, respectively.

* Made an optimization to improve "Find All" and multi-file search
performance when using a literal string (no special Grep
characters or character escapes) but "Grep" is turned on.

* Made changes to improve performance of large-scale operations
which involve line analysis and computation (Add/Remove Line
Numbers, Prefix/Suffix Lines, Process Duplicate Lines, Sort
Lines, Strip Trailing Whitespace).

* Made changes to improve performance in Normalize Spaces, Remove
Blank Lines, and Strip Trailing Whitespace on very large files.

* Made a change to improve text scanning performance in the
HTML/XML syntax coloring mechanics. (This is most likely
noticeable only on extremely large files.)

* When prompting for factory defaults reset in the Text Colors
preferences, the list of settings affected is too long and not
useful, so it is omitted.

* Add "(no text filters)" placeholders to the "Paste Using Filter"
and "Apply Text Filter" submenus, when they would otherwise be
empty.

Fixes
-----

* Made a bunch of optimizations to improve performance in the HTML
function scanner in pathological cases.

* Made a change to significantly improve layout performance in the
Minimap.

* Made some minor cosmetic adjustments to the rendering in the Minimap window.

* Fix for folds on YAML scalars at the end of the document

Like this:

```yaml
a:
b: |
value of b
can be multiple lines
```

The fold starts after the pipe and will now include the s
at the end of the last word.

* Updated the entitlements in the App Store build to include
`/opt/homebrew/Cellar/` and `/opt/homebrew/opt/`, so that
Homebrew binaries are usable without requiring explicit sandbox
access.

* Fixed typo in an expert preference defaults entry.

* Made a change so that the lifetime of temporary files generated
for certain #! menu operations (such as "Run" or "Run in
Terminal") is now tied to the lifetime of the document; BBEdit
will delete temporary files when the document is closed, rather
than when the application is quit.

* Made a nominal performance improvement to reduce time spent in some
cases when opening and closing documents when there are a large number
of documents on disk open.

* Fixed bug in which closing a live preview window would fail to
save any customizations to preview filter/template/CSS
selections.

* Made a change so that the "Get Info" panel will decline to count words
in very large documents (same threshold as the Text Statistics status bar
item). This improves performance and usability.

* Made a change to significantly improve the performance of soft text
wrapping calculations in the text engine.

* Made a change so that the `OpenPDFsAsText` expert preference takes
effect without requiring an application relaunch; turning this setting
off will override the PDF language module's built-in mapping. (Changing
the setting does not affect the display of any open PDFs; any such will
need to be closed and reopened.)

* Corrected display of some header entries in the Open Recent submenu.

* Fixed bug in which the `-Z` (`--null`) output option in
`bbfind(1)` did not work as intended.

* Fixed hang which would occur in the Rust language module when a
`where` clause in a function header was at EOF.

* Made a change to improve performance and correctness when
updating modification dates for FTP/SFTP files, when the file's
directory is displayed in the browser, and there are many
(thousands) of items in that directory.

* Fixed crash which would occur when attempting some SFTP
operations in the wake of a broken connection.

* Corrected the appearance of menu section headers when running on macOS
14.0 and later.

* Made changes to improve performance of high-frequency operations
involving EditorConfig.

* Removed duplicate entries from the output of `bbedit -h`.

* Fixed bug in which notebooks were not added to the list in the
Multi-File Search window if they were opened while the MFS window
was open.

* Added some declarations to the application's property list, to let the
OS know that BBEdit can open image files, and a "catchall" declaration
for other file types.

* When reopening minimized windows during state restoration, the animation
into the Dock no longer occurs. (Each minimized window will still briefly
appear on screen.)

* Fixed bug in which bash numeric base specifiers would confuse
syntax coloring and function scanning.

* Made a change to significantly improve the performance of
"Convert to ASCII" when processing fullwidth character forms.

* Fixed bug in which creating a new file in an instaproject folder
didn't select the newly created file in the Project list in cases
where the selected or right-clicked item was another file.

* Fixed a potential cause of a reported crash in Open File by
Name.

* Fixed bug in which "Close All in Project" did not close any
non-text documents (such as images or text factories).

* Made a change to "Cascade Left" so that the windows start at the
right-hand side of the display, rather than somewhere in the
middle.

* Made a change so that an asterisk at the beginning of a line
(with or without intervening whitespace) is not paired while
entering text in Markdown documents.

* Corrected display of qualifiers in the custom language
preferences when a status bar setting was changed.

* Fixed bug in which CSS syntax coloring didn't recognize negative
floating-point numbers without a leading zero (e.g. `-.10`).

* Correct coloring of identifiers in CSS at-rule specifiers.

* Various CSS keyword additions and updates.

* Fixed crash which would occur when closing the Multi-File Search
window *after* a previous attempt at closing it via the scripting
interface failed because the window was displaying a sheet.

* Fixed bug in which the list of items to process in a Text
Factory window did not correctly mark items at the top level
(such as windows) in cases where a subordinate item (a document
in that window) was automatically marked when the document in
question was open.

* Fixed bug in which project windows would open at an infinite
width in cases where the editor view had been hidden when the
project was closed.

* Fixed crash which would occur while saving FTP/SFTP bookmarks
after creating or editing a bookmark, when (any) one of the saved
bookmarks was malformed.

* When the string entered into "Open File by Name" contains
slashes (for separating path elements), BBEdit will wildcard the
intermediate path elements, so that it's no longer necessary to
precisely specify each directory along the path to the file.
(This does not guarantee a match, but improves flexibility.)

* Fixed missing text for the "Remove Blank Lines" item summary in
text factories.

* Fixed bug in which words in comments and heredocs in Ruby files
weren't subject to spell checking, as they should have been.

* Made an assortment of changes to improve multi-file process performance.

* Made a change to significantly improve performance when looking
for a `coding:` variable in an Emacs mode line or variable block.
This reduces overhead in multi-file operations.

* Made changes to improve literal (non-Grep) text searching
performance for multi-file search and other "find all"
situations.

* Made some small efficiency improvements to file reading.

* Made some changes to slightly reduce file system overhead during
multi-file operations.

* Fixed uncaught exception which would occur when cancelling
privilege escalation while trying to save a file located in the
Trash.

* Improved results when using multi-word search terms in the
Settings window. You can use wildcards now too, if you want.

* Made a change to the behavior of "Open Selection", so that
automatic filename extension selection doesn't occur if the thing
that looks like a filename extension isn't actually known to the
OS.

* Made some efficiency improvements in the Markdown parser to
improve performance on very large files (multiple megabytes).

* The merch link in the about box goes directly to the merch site,
rather than to a landing page.

* Fixed non-blinking insertion point cursor in source control
commit windows.

* Improve handling of application-specific URLs and such items
dragged in from URL clipping (`.inetloc`) files in projects.

* Fixed bug in which multiple "additional edits" returned with
language server completions were not applied correctly.

* Xcode folder references (new in recent versions) are now
properly loaded when enumerating the contents of an Xcode
project.

* Worked around FB16415546, which caused truncation of very large
files (over 2GB on disk) when doing Add/Remove Line Numbers (and
also Tidy operations).

* Handle block comments and character escapes in Lisp files.

* Made a change so that AppleScript execution, whether implicit
(as in Startup Items or text factories) or explicit (via the
Script menu or other UI invocation) will fail if the script file
has been quarantined by macOS.

* If a project contains references to any Finder saved searches,
these will be evaluated when using the project as a multi-file
search source.

* When committing a submodule, the branch name in the navigation
bar will reflect the name of the submodule branch being committed
(rather than the branch of the enclosing repository).

* Made a change to improve performance of the test used to enable
the stash-related commands on the Git menu.

* Saved application state includes cheat sheets, so these will
reopen in their last-used locations across an application
quit/relaunch.

* Made a change to improve robustness of LSP interactions when the
server exits unexpectedly; this should resolve reports of hanging
during attempted completions.

* Allow display paths in the Multi-File Search window to occupy as
much width is available when the window is widened.

* Corrected appearance of the icon in the "Recently Used Items"
heading in the Open Recent submenu, when running in Dark Mode.

* Made a change so that presence of certain Objective-C macros in
a header file will improve the accuracy of guessing
Objective-C/C++.

* Fixed bug in which double-clicking on an item in the "Find
Symbol in Workspace" panel did not dismiss the panel and select
the corresponding item.

* Worked around a bug in the macOS color panel in which the panel
would send a spurious notification when closing the Settings
window after changing a color setting's opacity. This in turn
resulted in an unexpected color value being inserted in the
active document.

* Fixed bug in the PHP color scanner which would cause unexpected
selection effects when double-clicking on a word that occurred
after a `__halt_compiler()` directive in the file.

* Fixed bug in which starting to drag an item from an inactive
list in the sidebar would move keyboard focus there, which often
resulted in unexpected file selection behaviors.

* Fixed spurious behavior of the "Collapse Folds Below Level"
submenu.

*fin*

The package can be downloaded from our web server:

https://s3.amazonaws.com/BBSW-download/BBEdit-15.5_15C51.dmg

Enjoy,

R.

--
Rich Siegel Bare Bones Software, Inc.
<sie...@barebones.com> <https://www.barebones.com/>

Someday I'll look back on all this and laugh... until they sedate me.
Reply all
Reply to author
Forward
0 new messages