Requirements

If you are using macOS 10.13 "High Sierra", please make sure that you have updated to the latest available OS version (10.13.3 or later).

Additions

Beginning with this version, you can open documents that are
much larger than was previously possible. In the Before Time,
documents whose in-memory size (about twice the on-disk size)
exceeded roughly 1.5GB would fail to open and report an
out-of-memory error, as would documents whose internal structure
required generation of large quantities of syntax coloring and/or
code folding information (such as complicated XML documents).

Beginning with this version, you can perform many large-scale
operations on very large files without running out of memory or
needing to clear Undo state.

BBEdit is now built as a 64-bit application. This works around
various reported bugs in the OS and has other beneficial side
effects: the application starts more quickly on a "cold" launch;
64-bit color pickers and contextual-menu plug-ins are now
available; and our customers are even more attractive and athletic
than before.

Support for the Touch Bar has been added to various windows
(applicable only to computers that have a Touch Bar, of course):

"Go To Line" (either the menu command or the popover from the
cursor position display) supports the specification of line
ranges, in addition to just a single line and column. For
example, entering one of these forms into the field will behave
as follows:

X

moves the insertion point to the beginning of line X

X:C

moves the insertion point to column C of line X

X-Y

selects the text from the beginning of line X to the end of line Y (including the line break at the end of the line).

X:C-Y

selects the text from column C on line X to the end of line Y(including the line break at the end of the line).

X:C-Y:C2

selects the text from column C on line X to column C2 on line Y.

In this way, you can use "Go to Line" to select ranges of text based on line
and column number.

"Preview in BBEdit" windows get a new item in their tool bar:
"Open in Browser", which will preview the document's contents in
the most recently used preview browser (or your system's default
web browser, if applicable).

For language module developers: modules can now generate a new run kind (or use it as
an available color for keywords):
com.barebones.bblm.syntax-error. This is for use as its name
suggests, in the case where the color scanner detects something
incorrect while examining the document. The color preferences and
built-in color schemes have been updated to include this.

Changes

When the “Match window appearance to selected editor color
scheme” setting is turned on (as it is by default), BBEdit will
use a light or dark (system-defined) appearance for the window
title bar, appropriate to the color scheme. If you would prefer
that BBEdit always use the system standard (light) appearance,
set this preference:

Note that changes to this setting will take effect the next time you start BBEdit.

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

Removed "Show" from the "Scratchpad" and "Unix Worksheet"
commands on the Window menu, because those are not toggles, and
will always bring the appropriate window to the front.

Fixes

Fixed bug in which the Text-to-HTML entity conversion
didn't honor the settings specified in the dialog box, and would
always use named entities even when Decimal or Hex had been
selected.

Fixed a bug in which fold ranges for XML files were not
shown in cases where the XML schema used for the file contained a
title container element which in turn contained a large
quantity of text.

Fixed bug in which documents would leak the data associated with
their display icon, which over time could lead to excessive
memory consumption.

Fixed bug in which Control-Tab did not move the
keyboard focus between panes of a split editing view or between
keyboard-focusable views in project or disk browser windows.

Remedied the omission of the Columns commands from the
Menus & Shortcuts preferences, so it is now possible to assign
keyboard equivalents to those items (or hide the entire submenu,
if desired).

Fixed bug in which trying to use the "Edit Markup"
command from the contextual menu would report a 11104 error.

Worked around an apparent QuickLook bug in which clippings which
had a "clear" background color (used when a light color scheme
was in use) would display with a black background instead.

Worked around a Cocoa behavior in which the wrong window would
be activated when dismissing the Find window and the window on
which the search operated was on a different screen from the Find
window.

(When closing a window, Cocoa activates the next window that is on
the same screen as the window that was just closed, rather than the
window that was in front when the window being closed was previously
activated. This is apparently normal operation, but in cases like
this would lead to confusion when search operated on the correct
window, but a different window got activated.)

Fixed bug in which path tooltips were not shown for top-level
items on the Window menu.

Fixed bug in which double-clicking on an item in a Zip archive
that was being browsed would not open it into a new document
window.

Fixed a bug in which the search history menu would malfunction
when invoked via the keyboard equivalent.

Put in some armorplating to prevent a crash which seems to occur
when the computer's display configuration changes and Cocoa
reports that there are no screens attached.

Made some changes to improve efficiency in the progress-dialog
mechanics.

Fixed bug in which using the AppleScript interface to
set the position property of a window would fail when one of
the coordinates of the point had a zero value.

Fixed the title of the Undo string for "Canonize".

Reworked the JSON language module's syntax coloring to
better handle invalid data so that it doesn't corrupt the
coloring of the valid data that follows it.

Made a change so that duplicate removal for the Open Recent menu
no longer attempts to resolve references to files. This is much
faster, and works around delays caused by remote servers or
attached disks which are are unavailable or very slow to respond.

Restored missing menu item entry for "Split/Unsplit Text View"
(View => Text Display) so that its keyboard equivalent may be
changed if desired.

Fixed bug in which the title of an FTP/SFTP browser window did
not update as you moved up and down the directory hierarchy.

Fixed a regression in which Control-single/double-quote didn't
work to toggle "Use typographer's quotes" on the fly as in
previous versions.

Made a change so that Undo after a Replace All, Revert, or
Reload will behave the way it used to before 12.0, and put the
selection range back where it was before the operation was
performed.

Made a change to break a deadlock that could occur while an
editing window was being drawn.

Fixed bug in which a few commands on the Go menu were disabled
after the evaluation period when they shouldn't have been.

Fixed a bug in which restoring opened files in a project would
fail after the first file had been reopened, and opening multiple
projects each containing multiple opened files would usually
report an error.

Fixed bug in which choosing an item from the application's Dock
menu didn't activate the window containing the chosen item in
situations where it should have.

Fixed bug in which using the Space bar to toggle visibility of a
menu command (in the Menus & Shortcuts preferences) was
incorrectly allowed to do so for items with a disabled check box.

Fixed crash which would occur when switching between documents
in a (disk, results) browser window or in certain other
situations with a long-running "highlight matches of selection"
or "live search" operation waiting to complete.

Fixed bug in which attempting to open files from the FTP/SFTP
browser window would occasionally fail in ways not explainable by
modern science.

Fixed incorrect coloring of character escapes in Grep search and
replace patterns when the escape code contained non-decimal
characters.

Changed the behavior of the "strip trailing whitespace" option
so that it will no longer consider nonbreaking spaces (U+00A0,
NO-BREAK SPACE) to be whitespace, thus preserving any such that
may be present at the end of a line.

When doing an "Open Selection", if the selected text is not
resolvable to a file on disk, BBEdit will no longer attempt to
open it (which would report a file-not-found error), and simply
opens the "Open File by Name" window with the file name entered.

Fixed bug in which a -1708 error would be reported when closing
an instaproject after having modified it (by manually adding
items) and then opting to "Don't Save".

Fixed bug in which using "New Folder" or "New Text Document" in
an instaproject would create the new item in the folder being
viewed, and then add the item to the top level of the project,
which was needlessly confusing (and marked the project dirty).

Fixed bug in which scanning for spell checking (as when
right-clicking in a word, or other situations) would hang in
certain situations.

Made a change to the file filtering logic so that files whose
type identifiers claim that they're Zip archives are now
double-checked to make sure that they at least begin with the
correct magic number, since there exist enough counterexamples to
make it worth testing.

Fixed a bug in which the "Save after writing" logging option
used in the "Run with Options" dialog for #! scripts did not
reflect (or affect) the actual behavior, so the log would not be
saved after the output was added to it.

Fixed regression in which Command-period stopped working to
cancel operations in a shell worksheet.

Corrected the selection behavior when undoing a Drag operation,
so that the original pre-drag text is selected after the Undo.

Made a change so that mode specifications that aren't of the
form mode: xxx; in a file's mode line are now used to set the
document's language when opening. For example: // -*- C++ -*-
in some of the standard libraries.

Fixed bug in which keyboard focus would end up in the wrong
place when using the Markup Builder panel, so that (for example)
a rapid invocation of Paste would paste into the document rather
than into the panel.

Made a change to bbdiff, bbfind, and bbresults to
incorporate a workaround for the bug in macOS 10.13 which
causes undesired logging when starting the application.

Added kBBLMMinimumCompatibleParamBlockVersion to
BBLMInterface.h (for compiled language modules) so that
developers have a reliable constant for making sure that they're
running in a compatible host application.

Fixed a regression in which using keyboard navigation to select
an item from a folder-backed menu (scripts, filters, clippings)
and then pressing Return/Enter with a modifier key held down
would always run the item rather than perform the modified action
(open for editing/reveal in Finder).

Adjusted the behavior of "Un/Comment" so that leading blank
lines in the selection are ignored when determining whether the
selected text is already commented or not.

When using "Compare Against Previous Version", the
previous-version file now includes the time stamp as part of the
file name, to make it easier to see which version of the file
you're comparing against.

Made changes so that single quotes are auto-paired less
aggressively when typing in certain document types.

In C-family languages, typing a pairable character immediately
following a lone backslash will no longer pair it.

Fixed misbehavior which would occur when quitting the
application while a window had a sheet open. FTP/SFTP browser
windows will now auto-close the connection sheet so as to not
interfere with the quit process; if another window is blocked by
a sheet it will be brought to the front.

Made a change to FTP browser behavior so that it remembers your
last-used location on the server after a successful connection,
even if you didn't open anything.

When setting a marker using the prompted "Set Marker" command,
the selection range is used as the initial marker name, as long
as the range is all on one line.

Some fonts (Hasklig, Source Code Pro, and probably others)
misreport their maximum glyph advancement, and consequently some
math comes out wrong when computing for wrapping, scrollbar
calibration, and other purposes. BBEdit will try to detect and
work around this condition.

The bbedit tool now allows txmt: URLs to be supplied as
arguments to be opened.

Updated the built-in cmark tool to the current version
(0.28.3, at this writing).

The Markdown scanner now allows spaces (but not tabs or line
breaks) in URLs that are enclosed in parentheses.

Fixed bug in which certain terms used as identifiers in
Lua would confuse the function scanner.

Made a change to the policy for which elements are
considered by the Markup Builder, which addresses cases in which
unexpected suggestions were made (such as when trying to populate
a list element).

Fixed bug in which disk browsers did not allow you to
navigate to the top level (where all mounted volumes are shown
and angels cavort amongst fluffy clouds).

Fixed case in which the application would not allow you
to quit (and report a -43 error) in cases where an open
document's backing file was no longer available, either because
the file had been deleted or because the remote volume on which
the file was stored got unmounted.

Armorplated the site of a reported crash.

Made a change to reduce the overhead involved in scripted text
transformation options that may prevent a modal progress box.
This will improve the overall performance of scripts that involve
a large number of such operations, especially in cases where the
actual amount of time required for each transformation is small
relative to the run time of the script.

Fixed a bug in which "open file" requests from external
applications would come into the application along a path which
discarded important information, which would cause "Edit in
BBEdit" operations from external applications (most commonly file
transfer clients) to behave incorrectly (local backing file path
would be displayed instead of the remote location, and changes to
the file were not reported to the client for uploading).

Made changes to fix a collection of bugs which would prevent
singleton window positions (such as palettes and the
Find/Multi-File Search) from being restored correctly.

Note: As a necessary result of this change, previous saved
positions for palettes and the Find/Multi-File Search are not used,
so you may have to reposition those windows if they don't open where
you expect them to. "Management regrets the inconvenience."

Fixed bug in which using "Move to New Window" for multiple
selected documents would leave the window with a "stale" title.

Added default to the built-in list of Perl language keywords.

"Paste Using Filter" can now be used when the active window is
the Find or Multi-File Search window.

Dialog boxes for Process Lines Containing, Process Duplicate
Lines, and Sort Lines will now validate the Grep pattern being
used (if applicable) and will report any errors before the dialog
box is dismissed, rather than reporting a 12314 error when trying
to perform the transformation.

Fixed crash which would occur when using an invalid format for a
#DATETIME# clippings placeholder.

Fixed bug in which the "HTML5" item was missing from the "Doc
Type" popup menu in the main HTML markup tools palette.

Fixed bug in which changes to the "Show items starting with “.”"
setting in FTP browser windows weren't persistent.

Fixed bug in which opening a document by dragging it to the
"Currently Open Documents" section in the sidebar would cause
certain internal bookkeeping to get out of whack, which in turn
could cause a crash in certain situations, usually when closing a
document opened in this fashion while the Multi-File Search
window is open.

"Use Selection For Find" and "Use Selection for Replace" will
now hex-escape (using "\x{0D}") any naked carriage returns
(ASCII 13) that occur in the selected text, rather than escaping
them to \r (which would not match).

Disabled the system's automatic text substitution behaviors by
default, since they're either nonfunctional or inappropriate
within BBEdit.

Worked around a bug in modern versions of Microsoft Office in
which certain characters copied from {Word, Excel, Powerpoint}
documents were mis-encoded as UTF-8 and would paste incorrectly
into BBEdit.

Quieted an error alert that would occur when printing a document
with certain OS-provided options set. (Printing occurred anyway,
the error occurred during generation of a recordable script
event; so as a result, printing is no longer AppleScript
recordable).