[ANN] BBEdit 14.2 (14C179) pre-release

83 views
Skip to first unread message

Rich Siegel

unread,
May 23, 2022, 3:53:57 PM5/23/22
to bbe...@googlegroups.com
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 <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 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.

Darren Duncan

unread,
May 25, 2022, 8:35:53 AM5/25/22
to bbe...@googlegroups.com
On 2022-05-23 12:53 p.m., Rich Siegel wrote:
> Here is the list of changes made since the 14.1 public release:

Thank you for that. Looks like a lot of solid additions/changes/fixes in this
one! -- Darren Duncan

Bruce Van Allen

unread,
May 25, 2022, 12:10:16 PM5/25/22
to bbe...@googlegroups.com
Was there a reason 14.2 doesn’t show up if I use Check for Updates... (I’m pre-release user)?

> On May 23, 2022, at 12:53 PM, Rich Siegel <sie...@barebones.com> wrote:
>
> 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. ...

_bruce__van_allen__santa_cruz_ca_
_831_429_1688_p_
_831_332_3649_c_




Rich Siegel

unread,
May 25, 2022, 12:15:44 PM5/25/22
to bbe...@googlegroups.com
On 25 May 2022, at 12:10, Bruce Van Allen wrote:

> Was there a reason 14.2 doesn’t show up if I use Check for Updates... (I’m pre-release user)?

Yes. It's not currently on the Early Access build train, and this is intentional.

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