Good afternoon folks,

We're currently working on a update to BBEdit 14 which adds some new features 
and refinements, and addresses a few recently reported issues.

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/14.2_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 <supp...@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 14.1 public release:

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

version 14.2 (14C179)   (2022-05-23)

Additions
---------

*       Added two new filter terms for file/folder filters: "Any Path
        Component" and "Every Path Component". These can be used to test
        any (or every) component of the file or filter's path using any
        of the available string tests.

*       Added an option to Zap Gremlins (UI, text factory, and
        AppleScript): "Convert fullwidth forms". This converts Unicode
        fullwidth forms (`U+FF01` through `U+FF5E`, inclusive) to their
        ASCII equivalents.

+       If a language server includes "quick fix" information in a
        diagnostic (error/warning) that it returns, BBEdit will add a
        "Fix" button to the diagnostic's item in the popover list.
        Clicking this button will apply the changes supplied by the
        language server. The diagnostic's display message will also
        include the titles of the available fixes.

*   When using any of the Subversion working-copy commands (Show
        Working Copy Status, Commit Working Copy, Update Working Copy),
        you can (if you wish) limit the recent menu to only working copy
        roots (i.e. directories which themselves have an `.svn`
        directory). Use the following expert preference to do so:

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

*       When using a language server that supports symbol renaming
        (specifically, the `textDocument/rename` command), you can
        right-click on a symbol, and if the server thinks you should be
        allowed to rename the symbol, a "Rename" command will appear on
        the contextual menu. The "Rename Selected Symbol" command on the
        Edit menu does this as well.

        Choosing this will prompt you to enter the new symbol name, and
        confirming the entry will perform the rename operation. Symbol
        renames potentially may affect multiple files; if so BBEdit will
        open them as needed.

        Changes performed by a symbol rename are undoable in each file,
        if desired.

+       If an LSP completion returns `additionalEdits` data (such as a
        statement to include a header file necessary to resolve the
        completed symbol), BBEdit will apply those edits as needed, after
        inserting the completion. (Each individual additional edit is
        undoable.)

*       Added support for LSP "Code Actions". If the server supports
        them at all, these are offered contextually based on the
        insertion point/selection range when right-clicking in a text
        document. BBEdit will ask the server what it supports, and the
        server may respond with a list of operations that are appropriate
        for that location in your source file.

        If the server returns such a list, BBEdit will present the
        operations on the "Code Actions" submenu of the contextual menu.

        Not all language servers support this feature; and not all servers
        even document what code actions they *do* support. And even then,
        the list of available operations for any arbitrary point in code is
        not guaranteed. If you aren't seeing the operations you expect when
        right-clicking in a text document, we recommend filing a bug report
        with the server developer.

*       Added "Tail Mode": when turned on, BBEdit will move the
        insertion point to the end of the file if it is changed while
        BBEdit has it open. (When in Tail Mode, BBEdit will change the
        selection range but will not scroll the file to the end *unless*
        the file was already scrolled to the end at the time the file was
        reloaded.)

        This can be quite useful for log files, and thus it is on by default
        for files whose filename extensions map to the "Log File" language.
        You can also turn it on (or off) per-file via any of the usual
        mechanisms: View -> Text Display, Text Options menu command, or the
        Text Options panel. (The setting is available for any locally opened
        file, whether or not it maps to the "Log File" language.)

        The "Tail Mode" setting is persistent, so a file for which you've
        manually turned Tail Mode on (or off) will maintain the setting when
        closed and reopened.

        If you want to turn *off* Tail Mode for the "Log File" language,
        an expert preference command will do this:

        `defaults write com.barebones.bbedit "EditorTailMode_Log File" -bool NO`

+       The Find and Multi-File Search windows get a button for
        exchanging the contents of the "Find" and "Replace" fields. By
        default, you can use Control-shift-F in the window as well, and
        this is configurable in the "Menus & Shortcuts" preferences.

*       The Find, Multi-File Search, and Pattern Playground windows get
        an additional cheat sheet for the "Replace" field. This provides
        a quick reference for constructing Grep replacement patterns.

*       Added a simple language module for Solidity.

*       Added a command to copy a shell-escaped file path, to the "Copy
        Path" submenu on the Edit menu, as well as the "Copy Path"
        contextual submenu for disk browsers and sidebars.

*       Added a new completion symbol type to the language module API:
        `kBBLMSymbolTypeColorSpecification`. This is intended for use
        with generated completions which themselves represent a color
        specification (such as a CSS color value). If you generate a
        completion of this type, you may (optionally) set
        `kBBLMCompletionColorSpecColor` to an `NSColor` value, and that
        will be used to color the badge in the completion list.

+       If you make a selection range that looks like a valid color
        specification (hex, CSS color name, and various others), *and*
        the Colors palette is open, BBEdit will update the color palette
        with the appropriate color value.

+       When you select a color from the color panel, BBEdit will ask an
        available language server (if one is engaged for the current
        source file) to provide an appropriate textual representation of
        the color. If the server returns multiple representations, BBEdit
        will present the completion panel so that you can pick one; if
        only a single answer comes back, BBEdit will insert it.

+       Added finer-grained control over invisibles display: it is
        now possible to explicitly turn on (or off) display of spaces and
        line endings when "Show Invisibles" is enabled. The Editor
        Defaults preferences, Text Options sheet, Text Options panel, and
        Text Display submenu of the View menu are updated accordingly.
        The additional settings are available via the scripting
        interface, as well as via EditorConfig and Emacs mode-line
        variables (`x-show-tabs`/`x-show-line-breaks`).

Changes
-------

*       The "Editor Defaults" preference pane gets an advisory notice
        explaining the behavior of the settings; namely, that they
        establish the defaults for new documents (and for documents that
        don't have saved settings), and that changes to the settings in
        the preferences pane don't affect currently open documents.

*       The "Text Options" command now opens the popover attached to the
        "gear" in the navigation bar, if the navigation bar is visible
        (and the "Text Options" item is enabled). The old sheet is still
        used, but will only appear if the popover is not available.

*       Tweaked layout in the Commands panel to fill up the window space
        a little bit more.

*       The Unix Script Output log, as well as file-specific log files
        resulting from "`#!`" script execution, are now autosaved, so
        there is no need to save any changes to those logs before closing
        them.

*       Locating the `PreferenceData` folder in Dropbox or iCloud Drive
        is no longer supported. (It was never really a good idea, but
        BBEdit used to allow it.) If BBEdit detects such a folder when
        starting up, it will copy the folder's contents to the
        appropriate local location, and use the latter going forward.

*       Made changes to improve the performance of "Open File by Name"
        when the data source is a directory of significant size (such as
        a disk browser or instaproject). The first search can still
        require significant time; but changes in the directory which
        affect the search results will no longer require the entire cache
        to be discarded, improving subsequent performance.

*       When cancelling a multi-file search/replace operation in
        progress, BBEdit will immediately cease collecting any
        accumulated results. This improves behavior when a search/replace
        operation generates a large quantity of results very quickly.

*       When generating "smart" quotes while typing or auto-pairing,
        BBEdit will follow the settings for quote characters in the
        "Keyboard" system preferences.

*       Made a change to significantly improve performance when
        soft-wrapping long documents to the window width. (The
        improvement is only available when a fixed-width font is in use.)

        There are some limitations: the math doesn't work for single
        characters which break the fixed-width font contract and render
        at twice their width (i.e. most CJKV characters and emoji).

*       Made a change so that Grep pattern matching considers surrogate
        pairs as a single character. This improves correctness when using
        `\p{...}` for classes of characters which may include combining
        surrogate pairs.

        If for some reason the previous behavior is desirable, you can
        restore it by using the following expert preference command:

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

*       `composer.json` is recognized as a file which defines a
        workspace root (for LSP purposes).

*       Allow system-generated icons for declared file types which
        BBEdit can edit (but for which it does not have a unique icon
        type).

*       Added a distinctive icon for notebooks.

*       Made some structural changes to how BBEdit supplies document
        icons to macOS, taking advantage of updated support in the OS
        itself.

*       When navigating placeholders ("`(<#...#>)`") using the Tab key
        or the commands on the Go menu, BBEdit will ignore anything that
        looks like a placeholder in which the delimiters are separated by
        more than a single line break. If you prefer the previous
        behavior, you can restore it using this Terminal command:

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

*       Added the vertical bar ("`|`", U+007C) to the list of characters
        used as token break points when computing sub-line differences.

*       Changed the order of operations when determining a file's text
        encoding so that an applicable EditorConfig `coding` or `charset`
        value will override an xattr in the file. This *also* means that
        EditorConfig encoding testing (the
        `AllowEditorConfigReadEncoding` expert preference) is on by
        default now.

*       When Auto-Indent is turned on, "New Line Before Paragraph" and
        "New Line After Paragraph" will indent the inserted line by the
        same indentation as the line on which the command was invoked.

Fixes
-----

*       Made a change so that BBEdit only requests the current shell
        login environment once, the first time it's needed. This improves
        performance when doing anything within BBEdit that involves
        running a Unix script or command.

*       Made a change so that shell worksheets will use `zsh` if `fish`
        is your default shell. (Fish can't be used in shell worksheets.)

*       Reworked the shell worksheet internals to improve efficiency.

*       Made a change to improve the performance of code for certain
        clients which involves repeatedly scanning a directory to
        enumerate its contents.

*   Improved the accuracy of guessing Objective-C variations in C/C++
    source and header files.

*   Updated PCRE to 10.40.

*       Fixed bug in which placeholder text that should have shown up in
        the simple entry field sheet's text box did not appear.

*       Made some internal changes to reuse existing code and improve
        performance.

*       Fixed bug in which Open File by Name would make inappropriate
        `git-ignore` requests, which would cause git to report a fatal
        error and exit, subsequently breaking git-ignore filtering in the
        Open File by Name window and possibly elsewhere.

*       Fixed a thread-safety issue in the FTP (not SFTP) client code
        which might be responsible for sporadically reported stalls at
        the end of file upload transfers.

*       Make sure that the title of a Preview in BBEdit window keeps up
        when the name of the document changes.

*       Added a note about language servers to the `Read Me.txt` in the
        application support folder.

*       Updated the default worksheet stationery to correct some
        anachronisms.

*       Corrected the math used for calculating the line number column
        width when printing, and guarantee a minimum of four digits worth
        of space, so that no change in column width will take place until
        the next power of ten (10,000).

*       Made a change to slightly improve startup performance when
        recovering a very large number of autosaved documents.

*       The HTML5 syntax checker will no longer inappropriately report
        `autocomplete` as an invalid attribute for `<textarea>`.

*       Made the character inspector behave a little better with
        rectangular selections.

*       Fixed various bugs in string and comment scanning in codeless
        language modules that used literal delimiters (as opposed to grep
        patterns).

*       Fixed bug in which a language server log file would not get
        created if the language had a slash in its display name.

*       Removed a conflict-named "`URL`" property from the `FTP Info`
        AppleScript record (the document's `URL` property has the same
        value in it, if it was opened via the built-in FTP/SFTP support.

*       Aliases/symlinks to folders are no longer eligible to be twisted
        open in disk browsers and project windows. This prevents
        confusion and madness when browsing directories in which symlinks
        are used to create loops in the directory graph.

*       When evaluating whether a file about to be opened into a
        project's sidebar is in a project directory, the process now
        guards against loops in the directory graph created
        (intentionally or otherwise) by the use of symlinks or aliases.

*       Improved completion behavior compatibility with language servers
        which don't comply with the published specification. <_glares at
        the TypeScript language module_>.

*       Fixed bug in which specifying an end-of-line character offset in
        Go to Line Number would not move the insertion point to the
        requested location.

*       Fixed crash which would occur when trying to open a legacy
        BBEdit plug-in.

*       Fixed bug in which question marks in Ruby source files were
        inappropriately colored using the number coloring in certain
        situations.

*       Corrected the badging of Ruby class definitions in the function
        menu.

*       Made a change so that line breaks are no longer escaped when
        using "Use Selection for Find (grep)". This avoids semantic
        changes in multi-line patterns which use `(?x)`.

*       Fixed bug in restoration of a previously used "Preview in
        BBEdit" window position, in cases where it was on a different
        screen than the default position.

*       Fixed bug in which an assigned keyboard equivalent for "Open
        Text Options" in the Navigation Bar shortcuts didn't actually do
        anything.

*fin*

The package can be downloaded from our web server:

    <https://s3.amazonaws.com/BBSW-download/BBEdit-14.2_14C179.dmg>

Enjoy,

R.

-- 
This is the BBEdit Talk public discussion group. If you have a feature request 
or need technical support, please email "supp...@barebones.com" rather than 
posting here. Follow @bbedit on Twitter: <https://twitter.com/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 bbedit+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/bbedit/1CA74819-104E-48FA-8FE8-CF1FCDF3F2E1%40barebones.com.

Reply via email to