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 <[email protected]> 
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.
<[email protected]>                      <https://www.barebones.com/>

Someday I'll look back on all this and laugh... until they sedate me.

-- 
This is the BBEdit Talk public discussion group. If you have a feature request 
or believe that the application isn't working correctly, please email 
"[email protected]" rather than posting here. Follow @bbedit on Mastodon: 
<https://mastodon.social/@bbedit>
--- 
You received this message because you are subscribed to the Google Groups 
"BBEdit Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/bbedit/4515889D-29C2-4FAE-BFE2-43A1A1FC38AF%40barebones.com.

Reply via email to