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.