================================================================================ version 15.5 (15C59) (2025-05-05) * BBEdit 15.5 requires macOS 12.0 or later. Additions --------- o (none in this build) Changes ------- o (none in this build) Fixes ----- * [NFR] [503884] Fixed regression in which "Balance" didn't properly select the range of text in between balanced HTML/XML tags. * [NFR] [504010] Fixed erroneous warning when doing an Extract operation with nothing in the Replace field. * [NFR] [504073] Fixed regression in which "Run in Terminal" would not work correctly if the application had been granted sandbox access. * [503819] Honor "Auto-expand tabs" for built-in formatting implemented by the language module. ================================================================================ version 15.5 (15C57) (2025-04-28) * BBEdit 15.5 requires macOS 12.0 or later. Additions --------- * [DOC] When the insertion point is inside of an opening delimiter, or immediately outside a closing delimiter, BBEdit will highlight the matching delimiter, as appropriate. If the insertion point is immediately inside of a container element in an HTML document, delimiter matching will highlight the corresponding pair of opening and closing elements. (As part of the HTML tools, this feature is only available during evaluation or with a paid license.) The default color is the same one for highlighting live search matches; this may be adjusted in the respective color scheme via the "Text Colors" preferences. This feature may be controlled via the "Highlight matched delimiters" option in BBEdit's "Editing" preferences. Changes ------- * [NFR] [503361] Made a change so that the Unix script progress window won't open at all for scripts that take less than two seconds to run. * "Collect Diagnostic Data" allows cancellation of the panel before data collection is finished, which is helpful when the system profiler request hangs. * Beep instead of alerting when certain invalid character insertions are attempted (using the character panel or other input-simulating systems). Fixes ----- * [NFR] [503361] Fixed bug in which the Unix script progress window did not automatically close itself after running scripts with default output options. * [NFR] [503690] Fixed regression in which the HTML syntax checker would fail to recognize `` as HTML5. * [503586] Corrected misleading tooltips in the Grep search pattern cheat sheet. * [475054] Ensure that the selection range is properly in view when (re)opening a document which was soft wrapped to the window width. * [503536] Fixed bug in which changing a text color setting in the preferences didn't update the display of the list view in the Settings window. * [503625] Abbreviate (if necessary) the search string/pattern for "not found" multi-file search alerts, to avoid a macOS alert layout bug (FB8924294) that places the "OK" button offscreen. * Made some performance improvements to HTML document type identification from strings in the `` declaration. * Improved the logic which generates qualified file name displays in the sidebar for currently open documents. ================================================================================ version 15.5 (15C55) (2025-04-21) * BBEdit 15.5 requires macOS 12.0 or later. Additions --------- + Added `--ignore-blank-lines` as an option for `bbdiff(1)`. As with the corresponding options in the Find Differences window, this will cause lines consisting solely of whitespace to be considered empty for purposes of comparison. Changes ------- - In Markdown documents, headings are now indented according to their level. H1 ("# this is an H1") is not indented, H2 is indented by one space, etc. The foldable section associated with a heading now encompasses lower level headings and their sections. So, an H1's foldable section will include an H2's section that immediately follows it. These headings will be listed in the function popup with indentation to match this nesting, like an outline. Additionally, blockquote sections (indicated with a '>') and list items "belong" to the heading section immediately before them, and act like nested documents. The result is that any headings within those subsections are indented below the parent section. Here's a small example: ``` ### This is an H3 > This is a blockquote > > # This is an H1 in a blockquote > > This section will be nested in the function popup > below/within the H3 at top of the example. ``` Fixes ----- * [502364] Fixed internal exceptions and other misbehavior that would occur after deleting a customized AI chat API model that had been set for use as the default or referenced by existing worksheets. ================================================================================ version 15.5 (15C53) (2025-04-17) * BBEdit 15.5 requires macOS 12.0 or later. Additions --------- * Added support for the "Writing Tools" feature introduced in macOS 15.2 as part of the Apple Intelligence suite. Thus, the corresponding commands on the Writing Tools submenu of the Edit menu are operational. Changes ------- * [DOC] When using "Export as HTML", BBEdit will examine the generated output, and if it lacks a basic HTML document structure, the application will apply a simple structure. This is useful for HTML renderers which don't do this on their own (e.g. most Markdown renderers). Fixes ----- * [NFR] Fixed layout regressions in the completion panel. ================================================================================ version 15.5 (15C51) (2025-04-11) * BBEdit 15.5 requires macOS 12.0 or later. Additions --------- o (none in this build) Changes ------- * [502534] Add "(no text filters)" placeholders to the "Paste Using Filter" and "Apply Text Filter" submenus, when they would otherwise be empty. Fixes ----- * [499679] 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. * [502534] Fixed spurious behavior of the "Collapse Folds Below Level" submenu. ================================================================================ version 15.5 (15C49) (2025-04-09) * BBEdit 15.5 requires macOS 12.0 or later. Additions --------- o (none in this build) Changes ------- o (none in this build) Fixes ----- * [NFR] [502250] Fixed regression in which application state was not restored across an application update if "Reopen documents that were open at last quit" had been turned off. * [NFR] Fixed a spurious Apple Event error which could be reported when trying to quit the application. ================================================================================ version 15.5 (15C47) (2025-04-07) * BBEdit requires macOS 12.0 or later. Additions --------- + [DOC] 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 ------- * 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. Fixes ----- * [501838] 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. * [497878] 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. ================================================================================ version 15.5 (15C45) (2025-03-31) * BBEdit requires macOS 12.0 or later. Additions --------- + [DOC] 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. + [DOC] 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. Changes ------- * [DOC] If a folder (for multi-file search or other operations) does not match a specified folder filter, BBEdit will still examine its descendant folders (but not files). Thus, BBEdit will process the contents of descendants which *do* match the folder filter (which includes applying filtering to their respective descendants). This contrasts with the previous behavior, in which BBEdit would skip a folder which did not pass a folder filter **as well as all of its descendants**. The old behavior was intentional, but potentially confusing. Fixes ----- * [NFR] Fixed (possible) cause of a crash which would occur at some point following the dismissal of the Preferences window. * [500654] Fixed bug in which "greater than" comparisons in file filters (as for dates) did not work correctly. * Fixed incorrect drag-and-drop highlighting bounds around items in the Find Differences window and Canonize dialog. * Fixed bug in which the Find Differences window did not correctly apply its knowledge of the last-used file locations. * Made a change to nominally improve performance of folder comparisons. * [510246] Improved behavior of Undo when editing in the Pattern Playground's scratch space. ================================================================================ version 15.5 (15C43) (2025-03-14) * BBEdit requires macOS 12.0 or later. Additions --------- * [NFR] [DOC] Added a security level selector to the project deployment settings, replacing the old "SFTP" check box. Changes ------- * [DOC] 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.) Fixes ----- * [NFR] [500522] Undid the change to address [499046], since it caused more problems than it solved. * [500643] 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. ================================================================================ version 15.5 (15C41) (2025-03-11) * BBEdit requires macOS 12.0 or later. Additions --------- * [NFR] [DOC] 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. Changes ------- o (none in this build) Fixes ----- * [NFR] [499910, 499912] Fixed FTPS client misbehaviors, including a long delay when opening the first file from a server, as well as errors when opening more than one file (sequentially). ================================================================================ version 15.5 (15C39) (2025-03-10) * BBEdit requires macOS 12.0 or later. Additions --------- * [NFR] [DOC] When switching workspaces, a workspace that has been changed (by opening/closing documents or windows) may be saved. This is controlled by preferences in the "Application" settings. The default is to ask; but you may opt to always save, or to discard any changes. (Note that this applies to the workspace *itself* as a list of document and window states, and does not apply to any of the individual documents referenced by the workspace configuration). Changes ------- * [NFR] [DOC] Clarify warning when overwriting an existing workspace. Fixes ----- * [NFR] Fixed bug in which the `FTPShowParentDir` expert preference did not behave as intended when set to `false` (from its factory default `true`). * [NFR] [499849] Fixed bug in which windows corresponding to open project documents were not correctly closed when switching workspaces. * [NFR] Fixed bug in which saving a new workspace didn't make it the active one, so the wrong (or no) menu item was marked in the Workspaces submenu. * [498405] Made a change to improve robustness of LSP interactions when the server exits unexpectedly; this should resolve reports of hanging during attempted completions. * [500053] Allow display paths in the Multi-File Search window to occupy as much width is available when the window is widened. ================================================================================ version 15.5 (15C37) (2025-03-03) * Beginning with this build, BBEdit requires macOS 12.0 or later. Additions --------- + [DOC] 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). 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".) Changes ------- * [DOC] This version of BBEdit requires macOS 12.0 or later. Fixes ----- * [NFR] [DOC] Added a "Cancel" button to the "documents with unsaved changes" dialog that appears when quitting without state saving. This does exactly the same thing as the neigboring "Review Documents", but reinforces the "easy out" perception. * [NFR] [499170] Fixed off-by-one in the count/list of documents requiring review in the dialog used when quitting the application without state restoration. * [NFR] [498886] Fixed regression in which certain SFTP flows would result in a password prompt when none was necessary. * [499244] Saved application state includes cheat sheets, so these will reopen in their last-used locations across an application quit/relaunch. ================================================================================ version 15.5 (15C35) (2025-02-20) Additions --------- * [DOC] 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. * [NFR] Enabled data channel security for explicit FTPS. Changes ------- * [NFR] The behavior of Un/Comment has been returned to _status quo ante_, all previous change notes regarding behavior changes should be disregarded. * [499046] When editing an existing HTML element (via the Edit Markup panel), preserve any attributes with empty values, even if removing them wouldn't change the semantics of the markup. Fixes ----- * [NFR] [498973] Fixed bug in which customized language-specific settings (such as the renderer for Markdown) were ignored everywhere except in the preferences UI. ================================================================================ version 15.5 (15C33) (2025-02-14) Additions --------- * [498362] [DOC] 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. Changes ------- * [DOC] [NFR] [498665] When opening the Git revision history navigation bar menu, if the file is unmodified, keep the most recent revision in the menu, but disable it so as to avoid affecting muscle memory. Fixes ----- * [NFR] [498428] Fixed regression in which commenting in files which used spaces and Auto-Expand Tabs for indentation would mess with the line indentation, which is the opposite of the intended behavior. * [NFR] [498407] Fixed regression in which Grep patterns with backslash character escapes in them were inappropriately optimized for searching, which would cause match failures when applied. * [NFR] [498656] Fixed bug in which closing a script progress window would fail to do so if the script hadn't completed (which would auto-close the window). * [NFR] Made various changes to improve selection roundtripping behavior in Un/Comment. * [498264] Made a change to improve performance of the test used to enable the stash-related commands on the Git menu. ================================================================================ version 15.5 (15C31) (2025-02-07) Additions --------- o (none in this build) Changes ------- * [DOC] 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). * [DOC] [498171] When using "Compare Revisions" or the navigation bar revision menu for a Git file, BBEdit will omit 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 on the list, rather than the second. * Made improvements to Un/Comment to better manage whitespace around line comment delimiters, and avoid altering indentation when feasible. The old trick of adding whitespace after a line comment delimiter is no longer needed (or effective). Fixes ----- * [NFR] [497981] Fixed bug in which any Script Output windows left open when quitting would reopen as FTP/SFTP browser windows. * [481427] Handle block comments and character escapes in Lisp files. * [497817] 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. * [497920] If a project contains references to any Finder saved searches, these will be evaluated when using the project as a multi-file search source. * [470798] 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). ================================================================================ version 15.5 (15C29) (2025-01-29) Additions --------- o (none in this build) Changes ------- * Made an optimization to improve "Find All" and multi-file search performance when using a literal string (no special Grep characters) 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.) Fixes ----- * [NFR] [496882] Fixed regression which prevented proper maintenance of the Open Recent history. * [NFR] Fixed regression in selection range calculation when doing LSP completion and the results contained an automatically selected placeholder. * [497392] Worked around FB16415546, which caused truncation of very large files (over 2GB on disk) when doing Add/Remove Line Numbers (and also Tidy operations). ================================================================================ version 15.5 (15C27) (2025-01-22) Additions --------- o (none in this build) Changes ------- o (none in this build) Fixes ----- * [NFR] Added additional SFTP interaction logging. * [NFR] [497189] Fixed regression in which the long-form `--new-window` and friends were not accepted by `bbedit(1)`. * [NFR] [496962, 497159] Fixed regression in which SFTP connections from which the password was omitted during initial connection would inappropriately prompt for password entry when attempting to open (or reopen) a file. ================================================================================ version 15.5 (15C25) (2025-01-17) Additions --------- * [DOC] 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) [NFR] This is very much work in progress; please report any issues promptly. FTPS servers which require both data and control channel security are not currently supported; this is being worked on. * [DOC] The "Selecton 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. * [496210] Added support to `bbedit(1)` for `-F`, `-N`, and `-S` as synonyms for `--front-window`, `--new-window`, and `--separate-windows`, respectively. Changes ------- * 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. Fixes ----- * [NFR] [496527] Fixed bug in which the application was vending an attributed string to the pasteboard when asked for RTF data; although this doesn't seem to have caused a visible symptom, it might be responsible for some other applications hanging due to the mismatch. * [496815] Xcode folder references (new in recent versions) are now properly loaded when enumerating the contents of an Xcode project. ================================================================================ version 15.5 (15C23) (2025-01-05) Additions --------- o (none in this build) Changes ------- o (none in this build) Fixes ----- * [NFR] Corrected behavior regression in Open Selection when selecting a file name root whose name extension was followed by a colon-delimited line/column specifier. * 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. * [496037] Improve handling of application-specific URLs and such items dragged in from URL clipping (`.inetloc`) files in projects. * [477027] Fixed bug in which multiple "additional edits" returned with language server completions were not applied correctly. ================================================================================ version 15.5 (15C21) (2024-12-19) Additions --------- o (none in this build) Changes ------- o (none in this build) Fixes ----- * [487651] Improved results when using multi-word search terms in the Settings window. You can use wildcards now too, if you want. * [491144] 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). ================================================================================ version 15.5 (15C19) (2024-12-16) Additions --------- o (none in this build) Changes ------- o (none in this build) Fixes ----- * [NFR] Fixed memory violation when trying to guess the Emacs coding from a file less than 256 characters long. * [NFR] [495118] Fixed a regression in which multi-file processes would mostly fail to use the contents of open documents, leading to incorrect search results on open documents with unsaved changes. * [NFR] Restored a search optimization that had been disabled in the previous build due to regressive behavior. * [495098] Fixed uncaught exception which would occur when cancelling privilege escalation while trying to save a file located in the Trash. ================================================================================ version 15.5 (15C17) (2024-12-13) Additions --------- o (none in this build) Changes ------- o (none in this build) Fixes ----- * [NFR] Made a change to explicitly disable cascading for the Commands and Open Recent panels, which *might* address sporadically reported positioning issues. * [NFR] Fixed a regression in "find all" search behavior with case-insensitive literal searches. * [NFR] The FTP (not SFTP) networking implementation has been rewritten in order to make way for planned improvements. * Made some changes to slightly reduce file system overhead during multi-file operations. ================================================================================ version 15.5 (15C15) (2024-12-10) Additions --------- Changes ------- o (none in this build) Fixes ----- * [NFR] Correct appearance of the script output window in dark mode. * [NFR] Automatically close the script progress window when the script finishes. * 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. ================================================================================ version 15.5 (15C13) (2024-12-02) Additions --------- * [DOC] Various sheets which provide access to saved Grep patterns have added the ability to save and manage patterns from within the window. * [DOC] 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). Changes ------- o (none in this build) Fixes ----- [NFR] Fixes in this build are from the most recent 15.1.3 beta updates: * [492058] When using a http/https download URL (from the command line or Open File by Name), determine the file type based on the resource name so that image files open as images rather than as binary data. * Fixed latent bug in which backslash character escapes in files being evaluated as possible JSON documents would potentially cause the guesser to access unmapped memory and crash. * [492248] Fixed bug in which selecting a top-level window from the Windows palette would select an arbitrary document in the window, rather than simply activating the window itself. * Added a "date opened" property to documents, corresponding to when the document was opened (or, for untitled documents, created). This could hypothetically be used in scripts which process documents opened more (or less) than a desired time interval ago. * [492835] Fixed a drawing glitch when resizing the sidebar in Notes windows. * [492849] Window cascading no longer clamps the maximum width of the cascaded windows, so whatever width was chosen by "Save Default Window" will take effect. * [492840] When creating a new Note, keyboard focus is now placed intentionally in the text area, rather than (possibly) being allowed to remain in the sidebar. * [492698] Added some new predefined names for Go. * [493221] Make backslash escaping in a search results window title consistent with the escaping used in the summary display. * Made an adjustment to the HTML language guesser to improve accuracy when guessing for "PHP in HTML". * Allow underscore as a digit separator in JavaScript numeric literals. ================================================================================ version 15.5 (15C11) (2024-10-21) Additions --------- * [DOC] 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.) Changes ------- * [DOC] 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. Fixes ----- * 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. * [489270] Made a change so that an asterisk at the beginning of a line (with or without intervening whitespace) is not paired while entering text. * Corrected display of qualifiers in the custom language preferences when a status bar setting was changed. * [415931] Fixed bug in which CSS syntax coloring didn't recognize negative floating-point numbers without a leading zero (e.g. `-.10`). * [415931] Correct coloring of identifiers in CSS at-rule specifiers. * [415931] Various CSS keyword additions and updates. * [490849] 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. * [490689] 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. * [491147] 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. * [489790, 491366] 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. * [490570] 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.) * [491579] Fixed missing text for the "Remove Blank Lines" item summary in text factories. * [491587] Fixed bug in which words in comments and heredocs in Ruby files weren't subject to spell checking, as they should have been. [NFR] This is actually a general fix to cover a bug which can occur in language module construction, in which a module breaks the rules and specifies `BBLMNonSpellableRuns` but doesn't *also* specify `BBLMSpellableRuns`. In that case the fix is to always spell check strings (including heredocs) and comments. ================================================================================ version 15.5 (15C9) (2024-09-27) Additions --------- * 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. Changes ------- * [490354] Added a "kill switch" for AI Worksheets. When employed, BBEdit will not be able to open existing AI worksheets or create new ones, nor are the corresponding preferences available. Use the following Terminal command, and then restart the application: `defaults write com.barebones.bbedit DisableAIChatWorksheets -bool YES` * 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. Fixes ----- * [NFR] Fixed bug in which the "Minimize Window" and "Minimize All" commands didn't use the configured keyboard equivalent (Command-M, by default). * [NFR] [490509] Fixed bug in which application and document autosave state was not correctly managed when "Reopen documents that were open at last quit" was turned *off*; documents with unsaved changes would undesirably have their autorecovery state applied at startup. * When reopening minimized windows during state restoration, the animation into the Dock no longer occurs. (Each minimized window will still briefly appear on screen.) * [490278, 490322] 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. * [489701] 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. * [490494] 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). ================================================================================ version 15.5 (15C7) (2024-09-17) Additions --------- o (none in this build) Changes ------- o (none in this build) Fixes ----- * [NFR] Fixed regression in menu command key setup. ================================================================================ version 15.5 (15C5) (2024-09-17) Additions --------- o (none in this build) Changes ------- * [DOC] 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). Fixes ----- * [NFR] Refined the fix for [489354], with efficiency improvements. * Made changes to improve performance of high-frequency operations involving EditorConfig. * [489807] Removed duplicate entries from the output of `bbedit -h`. * [489881] 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. ================================================================================ version 15.5 (15C3) (2024-09-06) Additions --------- * [DOC] When running on macOS 15, the Window menu includes "Fill" and "Center" commands, as well as the "Move & Resize" submenu and associated commands. [NFR] At present, the system default keyboard assignments for these commands don't get picked up; this will be examined before release, but in the meantime you can use "Menus & Shortcuts" to configure them. * [DOC] The "Zoom" command makes a triumphant return to the Window menu. Changes ------- o (none in this build) Fixes ----- * [NFR] [489296] Fixed bug in which the last row of a CSV/TSV was omitted from the generated preview. * [NFR] [489317] Added an entry to the scripting dictionary for PDF documents. * [NFR] [489354] Fixed deadlock which would occur when running a text factory with more than a few steps. * [NFR] [489373] Fixed possible cause of a crash when running on beta versions of macOS 15. * [480068, 489321] 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. * [488689] 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. ================================================================================ version 15.5 (15C1) (2024-09-04) Additions --------- * [DOC] 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 branch in the menu bar. * [DOC] 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. * [DOC] Grep pattern entry fields in various transformation and setup dialogs are syntax colored. * 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. * [487416] 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. * [488553] 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` Changes ------- * [NFR] Beginning with this build, the application is optimized for code size, trading off execution speed where appropriate. In general there should be no noticeable difference in performance. If you notice a marked performance difference compared to a previous version, please submit a bug report with an example document and steps. * [DOC] 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. * [DOC] 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. * [DOC] Updated imagery in the LSP diagnostics popover so that errors, warnings and notes can be distinguished by shape as well as by color. * [DOC] 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. * 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. * [483068] 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. [NFR] If you notice any unexpected behavior changes in any codeless language modules that you use, please report them immediately and provide a Zipped copy of the language module as well as an example file and a description of the behavior change. Fixes ----- * [483864] 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. * [488336] 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. * [488709] 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. * [489272] Fixed bug in which the `-Z` (`--null`) output option in `bbfind(1)` did not work as intended. * [489276] Fixed hang which would occur in the Rust language module when a `where` clause in a function header was at EOF. *fin*