For detailed information on using any of BBEdit's features, please refer to the user manual (choose "User Manual" from BBEdit's Help menu).

Requirements

BBEdit 10 requires Mac OS X 10.6 or later (10.6.8 or later recommended).

PowerPC-based Macs are not supported.

Additions

In project windows, "New Text Document" and "New Folder" now
prompt you (using a standard save panel) for the location of the
item you wish to create. After creating the item, BBEdit will figure
out whether the item needs to be added to a collection (if one was
selected when using the commands) or to the top level of the
project, or adjacent to another item already in the project.

There's a new script attachment point for documents:
documentShouldFinalizeAuthenticatedSave. This gets called in cases
where an authenticated save is necessary (for text documents only).
An attachment script for this purpose might look like this (the
comments are important, so read them!):

-- on input: tempFilePath points to the contents of the document
-- written to a temp file, ready to move to the destination;
-- destinationPath is where the file should be copied.
-- on exit: if the operation succeeded, delete the temp file (or
-- else the application will assume the operation failed) and
-- return YES for success
-- this is pretty straightforward: "cp tmpFilePath destinationPath"
do shell script "cp" & " " & quoted form of tempFilePath & " " & quoted form of destinationPath with administrator privileges
-- now remove the temp file, this indicates to the application that we did the work
do shell script "rm" & " " & quoted form of tempFilePath
return true
end documentShouldFinalizeAuthenticatedSave

More improvements to Open File by Name:

If there's no project open, and Xcode isn't running, OFBN will
look in the root directory of the frontmost disk browser (if
available). If there isn't one, then OFBN will look in the CWD
of the frontmost shell worksheet (if available). And finally, if
that isn't available, OFBN will use the directory containing
the frontmost text document (if it has been saved to disk).

Choosing "Open Selection" (which is available when appropriate
text is selected in the front editing view) will now bring up
the Open File by Name window, and populate the search box with
the selected text (and the search results, if any).

The contents of the search box are now accessible via the scripting
interface, as the search string property:

get search string of open file by name windowset search string of open file by name window to "Hello World"

Changing the search string will update the results.

The site setup panel (for each site in the BBEdit -> Setup ->
Sites list) now contains an "Addressing:" setting. This lets you
control the default addressing used when generating links for anchor
and image (and other tags with URI attributes). The settings are:

Automatic (pre-10.1.1 behavior): When the linked file is in the
same folder or a descendant of the document, generate the link
relative to the document. Otherwise, generate the link relative
to the site root directory.

Relative to site root: Always generate the link relative to the
site root directory.

Relative to document: Always generate the link relative to the
document.

The "Strip trailing whitespace" and "Ensure file ends with
line break" options can now be configured per-language, if desired.

Added a "Privacy" button in the Application preferences for non-App
Store builds, linked to the privacy policy on our web site.

Changes

BBEdit will no longer automatically reveal documents in the project
list when you select them. View => Reveal in Project List still
works. If you want automatic revealing back:

Scanning for .bbeditSettings files is now off by default, gated
on an expert preference. The feature is deprecated, so don't get too
attached to it because it's going to go away for good in a future
version. Meanwhile, if you rely in it, please let us know how you
use it, and you can turn it back on using an expert preference:

defaults write com.barebones.bbedit EnableSettingsScan -bool YES

Added support for the emacs esc-T (transpose-words)
gesture.

BBEdit now makes a reasonable guess at a filename
extension when using "Save As" for a new document.

Language modules can specify a "BBLMPreferredFilenameExtension" key,
with a string value. This will be used if necessary. If it is
absent, the first item in the BBLMSuffixMap array is used.

You can also use an expert preference to set the preferred extension
on a per-language basis:

Note that the extension you specify should not include the leading period.

The user manual is no longer included in the application
package. When you choose "User Manual" from the help menu, the
application will download the proper user manual PDF and store it in
the Application Support folder. (Thus, it only needs to download the
PDF once, unless you remove it or update to a new version.)

The "Open the User Manual" option has been removed from the
first run dialog.

The file filter menu used in disk browsers and project
windows has been reworked to make it a little more useful. The
options are now:

All Available: When selected, an item is listed if BBEdit
recognizes it as one of its own document types. This includes
text files, images, text factories, and so on.

Text Files Only: Only text files will be listed.

Everything: Every item is listed, including invisible files and
folders.

The default keyboard equivalent for "Un/Comment Selection" is
now Command-/, for consistency with Xcode.

The Markup -> Utilities -> Comment and Uncomment commands
have been removed, since they're redundant with Text -> Un/Comment.

When using Un/Comment, if nothing is selected, BBEdit will
apply the line-comment delimiter to the entire line containing the
insertion point. If you preferred the old behavior:

The PreferLineCommentsWhenCommenting expert preference
now defaults to YES (and it is documented in the Expert
Preferences help now), so BBEdit will prefer to use the language's
line-comment delimiter whenever possible.

Fixes

Fixed bug in which certain external file system changes
would cause the project window to inappropriately activate (and
de-minimize, if it had been minimized).

Fixed bug in which a project document closed with its file
list hidden would be confused when reopened.

Fixed bug in horizontal scrollbar calibration in
files with extremely long lines.

Fixed bug in which an incorrect error was returned from
attempts to save changes in a Zip archive.

Fixed crash in the Pascal function scanner which would
occur in files that used "Object" as a data type.

Fixed bug in which dragging a window to a screen that was too small
to contain it would fail to resize the window to fit on the screen.

Fixed bug in which the markup panel wouldn't open
to the proper size when it was invoked at or below a certain point
on screen.

Updated the Growl framework to 1.2.2.

Fixed bug in which CSS url(...) values with nothing (or
only whitespace) in between the parentheses would crash the CSS
parser.

Restored site-installation-specific preferences (for large managed
installations) to working order.

Fixed bug in which an "omnibus" attachment script
(Application Support/BBEdit/Attachment Scripts/BBEdit.scpt) was
not consulted for attachment points when it should have been.

Fixed bug in which an inopportune click in the markup tools palette
while the markup panel was coming up would result in an
undismissable error alert behind the markup panel, and a hung
application.

Fixed cosmetic bug in which stale action buttons were briefly
visible in windows with the file list collapsed.

Fixed bug in which settings saved in document state were
inappropriately applied when language-specific settings already
existed.

Added .cxx as a factory default extension mapping for
C++.

Worked around bug in the old Flip video codec (which many folks
still have installed) which would cause BBEdit to crash when opening
or viewing images.

Fixed bug in which properties specified in an "open" event
were not properly applied when the target of the event was already
open. Among other things, this meant that saved workspace
restoration didn't move any palettes that were already open.

Fixed bug in which projects would stop letting you interact with
items stored on unmounted volumes, even after the volume had been
remounted. (For example, an SMB or AFP server volume.)

Fixed a couple of bugs which made it difficult to relocate project
documents, and which may interfere with a project's ability to find
files contained in it.

Fixed a latent memory management bug in the Open File by Name text
ranking.

Made a change to improve performance of "Open File by Name" in
situations where a long file name (often complete) was entered or
pasted in to the search box.

Clicking on a project list item that is already selected
will now cause it to be opened, in the case where it had previously
been closed by clicking on the "X" widget and nothing else had been
selected in the meantime.

Fixed bug in which revealing a file in the project list
would sometimes twist open the wrong ancestor, in cases where the
ancestor's name was a prefix of the file's actual ancestor directory
name.

Fixed bug in which clicking on a project list item would
cause it to open in a new window when the project window's editor
view was collapsed.

Quieted a console warning about an autoreleased
NSCFLocale, which occurred when doing a single-file Replace All.

Fixed crash which would occur when attempting to
use a font with defective metrics, such that it reported a zero line
height.

Fixed bug in which manually selecting a tag name from the markup
panel's combo box did not correctly autofill the panel's attribute
list.

When using the short-form "echo" construction in PHP, the
opening = is now colored as a directive, along with the opening
<?.

Made some changes to improve the accuracy of the
Objective-C guesser, so that when opening a header file, the chances
of it being correctly treated as Objective-C are improved.

The "//" operator in Perl should now be interpreted
correctly in context.

Fixed bug in which changes to the Preview Helpers
browser list did not take effect until quitting and relaunching
BBEdit.

Fixed bug in which an overpopulated "Preview In" browser
menu would have most of its commands disabled when they shouldn't
have been.

Fixed bug in which scripted operations returning a list of
results would incorrectly return a null result rather than an empty
list in the case of no results.

Fixed bug in which "contents of selection of text"
would return the wrong text in cases of a rectangular selection.

Added some missing expert preference defaults for CSS generation:

CSSMarkup_NewLineBeforeBrace # use -bool NO to cuddle bracesCSSMarkup_SimpleRulesOnOneLine # use -bool NO to use multi-line blocks for all rulesCSSMarkup_PreferShortHexColors # use -bool NO to force #XXYYZZ instead of #XYZ

Exposed "files list visible" in the scripting terminology,
as a property of the "project window" class (which is used for both
multi-document windows and projects). Changing this property has the
same effect as using "Show Files" or "Hide Files" on the View menu.

Fixed cosmetic in multi-file replace "Save" dialog.

Fixed bug in which the "move" scripting verb reported an
error when trying to move documents between editing windows.

Fixed bug in which the Editor Defaults tab width and a
couple of other preferences settings didn't take effect when edited
unless you remembered to hit Enter.

"Strip trailing whitespace", if selected, is now applied
before "Ensure file ends with line break", to avoid an edge case in
which the file grows an extra line if the last line consists solely
of whitespace.

Fixed bug in which items on unavailable volumes would show no icon
rather than the intended generic icon.

Fixed bug in which BBEdit would inappropriately attempt to resolve
remote volume references in projects when drawing the list of files.

Fixed bug in which multiple selected files were not
accepted from the "Open Files with BBEdit" service. (Only the first
selected file was opened.)

Fixed bug in which files opened from collections in the
project list would inappropriately expand their parent hierarchy in
cases where the item's parent folder was also in the project list.

Fixed bug in which documents were inappropriately revealed
in the project list when being reopened in the course of opening the
project document.

Fixed bug in which menu scripts which were aliases to the
actual script file would not work correctly unless the alias name
ended with ".scpt" or one of the other filename extensions known to
be AppleScripts.

Fixed bug in which project windows (backed by an actual project on
disk) or instaprojects were inappropriately mixed in with
non-project windows which contained multiple documents.

Fixed bug in which querying the "open file by name window"
property from the scripting interface would result in undesired
opening of the Open File by Name window, along with its attendant
computational work.

Fixed bug in which certain changes to language-specific
preferences would not take effect when they should have.

Fixed bug in which save authentication was inappropriately
attempted in a case where it was unnecessary; specifically: a
document with only dirty state and no content changes.

Normalized the behavior of Un/Comment when applied to text enclosed
in block comment delimiters; this also ensures that HTML/XML text is
commented correctly when using this command.

Fixed crash which would occasionally occur when closing a
window while the Multi-File Search window was also open.

Fixed bug in which certain PHP expert preference keys were
misnamed, which led to them being ignored (including their factory
defaults).

Fixed bug in which clicks in a floating window weren't
correctly passed through to the window's content, unless the window
was the floating window that had been most recently clicked.

Added the PHP expert preferences to the help.

Assorted memory management fixes.

Fixed bug in which the Setup window would appear on screen before
moving to its saved position.

CSS Un/Comment now works like the other languages.

Fixed bug in which the "Save Default Window" entry for
differences results showed the incorrect name.

Fixed bug in which some of the fields of the "New HTML
Document" dialog were ignored.

Made a change to reduce the amount of
workplace-inappropriate daydreaming done while the application is
idle.

Fixed a bug in which too much filesystem work was done by
the internal document mechanics; it was most noticeable on slow
file systems like sshfs.

Fixed crash which would occur when attempting to script a Find
Differences operation and one (or both) of the items were not
references to open documents or items on disk.

When using the Markup Builder, if there is only one option for tag
creation (e.g. inside of a list), the panel will preconfigure itself
for that option, rather than making you choose it from a one-item
combo box first.

Corrected some omissions from the Tcl keyword list, and created a
new list of predefined names.

Because pie.

In project lists, nodes representing aliases to folders can be
tipped open to reveal their resolved contents.

Fixed bug in which certain file system changes would cause
the active document to be undesirably switched to the one selected
in the project or Currently Open Files lists.

Put in a defense against language modules with malformed
suffix mapping lists (any or all of the mapping items are zero
length).

If the AutoShowFileList or AlwaysShowFileList expert
preferences are in use, "Save Default Window" will no longer store
the file list visibility, so that those expert preferences aren't
second-guessed.

Leading and trailing whitespace and line breaks
are now stripped from string values in codeless language modules, to
resolve situations in which a multi-line formatted pattern using
(?x:...) ended with one or more carriage returns after the closing
parenthesis, which would in turn cause the pattern to not function
as intended.

Fixed bug in which certain malformations in codeless
language modules were not detected early enough to prevent them from
causing problems later on.

Codeless language modules undergo a more thorough check at load time,
to catch errors such as missing key values, incorrect pattern syntax,
and a couple of other things. The DebugCodelessGrepPats expert preference
is no longer needed; any problems are logged to the console and problems
of sufficient severity will prevent the module from loading at all.

Fixed bug in which "Run in Terminal" and "Run in Debugger"
were inappropriately sticky for scripts run from the Scripts or
Apply Text Filter menus.

Fixed a bug in which typing at the end of a line would fail to
scroll the insertion point into view as it should have. Merry
Christmas, Jim.

Armorplated the site of a reported (but not reproduced) crash; and
made a change to startup error reporting in order to prevent a
future occurrence.