BBEdit

Licence: Commercial with demo
Version 10.5.9 | Release Date: 2014-03-04 | Download

Requirements

BBEdit 10 requires Mac OS X 10.6.8 or later (10.7.5, 10.8.5, 10.9.2 or later recommended).

PowerPC-based Macs are not supported.

Additions

This release consists entirely of fixes for reported issues, and contains no new features.
Fixes

Rewrote the printing innards for live preview windows, so that the printed output is closer to expectations.

Fixed bug in which progress dialogs would leak memory.

Fixed memory leak in the innards of the font system.

Made changes to significantly improve performance when generating syntax-coloring information for extremely large files (SQL dumps being a good example of same).

Fixed a performance bug when scrolling in text views with extremely long lines and the Line Numbers bar visible.

Made a change to the Open File by Name search logic so that it doesn't search system headers and frameworks unless the search cache is backed by an Xcode project.

Fixed bug in which data structures backing the Scripts menu (and other similar folder-backed menus) were not properly released when the menu was refreshed, leading to creeping memory use.

Fixed a memory leak in SFTP process cleanup.

Made a change to work around a mystery crash at startup.

Various internal changes to improve stability.

Fixed bug in which one pane of a split-pane text view would get blanked out in certain circumstances. (Replace All in a split window was a good way to reproduce this.)

Made changes to improve the display of path names in menus when the path is ~ or /.

Unix tool discovery will now also look in /opt/subversion/bin/ to cover the case of "aftermarket" Subversion installations.

Fixed a bug in which FTP browsers reopened as part of startup state restoration would never reconnect to their previous locations and always drop a sheet asking for connection information.

When reopening files during state restoration at startup, the application will no longer attempt to mount volumes that are not available (e.g. remote file server volumes). This should resolve hangs that occur when the system goes off and tries to reconnect to a server that is no longer available (as tends to occur when taking a laptop home from the office).

If for some reason you preferred the old behavior and want the application to attempt remounting of volumes containing reopened files, you can use this expert preference:

defaults write com.barebones.bbedit AllowVolumeMountDuringStateRestore -bool YES

Fixed a performance regression in filtering directories for the Subversion "Show Working Copy Status" command.

When generating the Markers popup, leading whitespace from the marker name is now used to indent the menu item, so that type-to-select works correctly in the menu.

Fixed a bug in which files opened by external request when starting the application (e.g. double-clicking a document in the Finder) were opened before sleep state was restored, resulting in the desired documents ending up in their own buried window, rather than active.

Fixed bug in which sorting modifier names in Clippings set menu items were not properly stripped out before adding them to the menu.

Made some adjustments to the location computation for the Markup Builder panel, so that it's more likely to appear where expected, particularly on multi-display setups.

Fixed bug in which "Update Site" or "Update Site Images" would show "(null)" as a completion status if no other results were presented.

Fixed bug in which "Update Site Images" would fail to update absolute and server-relative image references (which would manifest as skipping certain files entirely).

Fixed bug in which drawing glitches would be left in the text view when dragging text around, if you paused for long enough.

Control-Tab actually does not work for its intended purpose, which was to flip the sense of "Auto-Expand Tabs" on the fly when entering a tab character. To work around this, Option-Tab has been defined so that it always enters a literal Tab character; thus, if "Auto-Expand Tabs" is turned on, use Option-Tab to enter a tab character instead of spaces.

Made a change to the Markup Builder panel so that keyboard focus comes up in the attribute value field immediately, rather than switching from the attribute name field. This should fix reported problems of accidentally pasting intended attribute values into the attribute name field.

Fixed bug in which "Update Site Images" would report as updated any open documents that it encountered during the process, even if the files weren't actually modified.

Fixed crash which would occur when performing certain transformations on rectangular selections (such as "Shift") with the Jump Points window open.

Fixed bug in which the default "Find in Reference" URL template had an unencoded space in the query string, which would cause an error when trying to do "Find in Reference" from a document whose language was "(none)" and Dash was not installed.

Fixed bug in which valid numeric HTML entities that weren't explicitly listed in BBEdit's internal tables were not converted to character equivalents when using Markup -> Translate -> HTML to Text.

Version 10.5.4 | Release Date: 2013-05-06 | Download
No changes specified
Version 9.6 | Release Date: 2010-10-26 | Download

http://www.barebones.com/support/bbedit/current_notes.html

Version 9.5 | Release Date: 2010-05-30 | Download
  • The text views in browsing windows (disk browsers, search results, P4 opened, and similar) are now editable; rather than having to open a file into a new window from such a browser, you can just edit it right in the window.
  • There is a new command on the Window menu: Show Scratchpad
  • Many more enhancements.
Version 9.5 | Release Date: 2010-04-27 | Download
No changes specified
Version 9.3.1 | Release Date: 2009-12-08 | Download
No changes specified
Version 9.3 | Release Date: 2009-11-04 | Download

Release Date: 11/04/2009 – The update package contains the BBEdit 9.3 application. BBEdit 9.3 is a free update for all customers with BBEdit 9.0 through 9.2.1. You will need a BBEdit 9 serial number to use this version. Customers with any prior version will need to upgrade. (Please download the demo first and give it a try!)

Important: BBEdit 9.3 requires Mac OS X 10.4 or later, and will not run on Mac OS 9 or any previous versions of Mac OS X. This version is a Universal application for both Intel- and PowerPC-based Macs.

Version 9.1.1 | Release Date: 2009-02-02 | Download

When saving a local (or new) document to FTP/SFTP server, and an FTP/SFTP browser is open, BBEdit will now use the browser's current server location as the default connection location for saving.
The Consolas font supplied with BBEdit has been renamed to "Consolas for BBEdit". If you previously set your Editor Defaults font setting to use Consolas, it will be updated to use the renamed font.
Fixed a regression which caused projects not to restore their expanded nodes on reopen.
Fixed bug which broke FTP compatibility with DOS-style listings on Windows NT servers.
Fixed a bug in which various operations which involved moving a temporary item to the trash would cause an alert to appear inappropriately when the user's home directory was hosted on a remote AFP or SMB file server.
Fixed a regression which caused expired recent items to be moved to the trash instead of deleted.
Somehow, the "Save All" button in the modal Confirm Save panel (used when quitting with unsaved documents) ended up in the middle of the panel, where it was obscured by the list of files that needed saving. It is now out of hiding and prepared to receive its fans.
Fixed bug in which the correct sort order was not applied in the FTP browser and panel when sorting by name.
Fixed a bug which caused some FTP servers to refuse to return any items whose names began with a period, so the Show items starting with "." setting was inoperative.
Command-down-arrow in an FTP browser window now properly works as a synonym for "open the selection"; previously it only worked on selected directories.
Fixed bug which would cause a crash when a network timeout occurred during SFTP uploading or downloading.
Fixed a regression where line numbers were drawn with a junk trailing character when using soft line numbers in the linebar.
Fixed a regression in which FTP auto-disconnection didn't occur, so the server was liable to hang up on an active FTP connection, leading to all sorts of strange errors when navigating in FTP browsers or saving documents that had been opened via FTP.
Fixed a bug in which FTP connections weren't properly closed when opening and saving documents via FTP; if the server enforced a limit on the number of outstanding connections, this would lead to subsequent errors.
Fixed a crash which would occur in rare situations when connecting to an FTP server in an FTP browser after having previously used the same browser and disconnecting from the server (or another one).
Fixed bug in which relative project item references weren't correctly resolving via relative data when possible.
Fixed a bug in which the FTP/SFTP browser and save panel didn't remember the open (or save) location when they should have, so that subsequent connection attempts would try to connect to an unexpected location (or none at all).
Fixed bug in which opening files whose names began with a period (.) would fail on certain FTP servers (most notably Windows servers).

Version 9.1 | Release Date: 2008-12-15 | Download

Additions

  • BBEdit now includes a copy of Consolas Regular, an excellent antialiased code editing font. This font is licensed from Ascender Corporation for use only with BBEdit.
  • The internal FTP implementation has been rewritten to improve performance and reliability. Users with dual (or more) core machines may notice additional performance benefits.

    The “Passive” setting for FTP is no longer used. When transferring, BBEdit will first attempt a passive connection; if the server does not support passive transfers, BBEdit will then attempt a non-passive (PORT) connection. Thus, the “Passive” setting is gone from the FTP preferences, FTP browser, Save to FTP dialog, and the scripting terminology for FTP commands.

  • The file filtering interface supports a new term: “File Path”. This is a simple string match against a given file’s full path.
  • The Text Files preference pane carries a new option: “Trim trailing whitespace”. If this preference is enabled, BBEdit will trim all trailing non-vertical whitespace from the file before writing it out.
  • Editing: General has a new control: “Include dictionary words in completion list”
  • The line bar is now drawn in the system font, anti-aliased.
  • You can send data to the scratchpad via the command line tool:

    ls | bbedit --scratchpad

  • You can script appending text to the scratchpad: tell app "BBEdit" append to scratchpad "Dude!" end
  • The ASCII floater uses the “standard” names for NUL, BEL, etc. for characters below space (0x20).
  • The CSS markup tools and function parser are now in sync with the logic used by the syntax coloring engine: a <style> element’s contents are considered to be CSS if there is no type attribute, or if there is one, and it’s value is “text/css”.
  • If Perforce is installed, the bbedit command line tool will attempt to map depot specs and client specs into file paths.
  • You can now enter (or paste) a Perforce depot specification in the “Open File by Name” dialog and BBEdit will ask Perforce to resolve it. (You’ve been able to use Open Selection on a Perforce spec for a while now, so maybe this is more of a bug fix than a feature addition.)
  • If a project document is open, Open File by Name and Open Selection will look in the project for matches, first examining discrete file entries, and then (if necessary) searching any folders in the project. If multiple projects are open, BBEdit will use the frontmost one (in window Z order).
  • Language modules may now be installed by double-clicking them (or by drag-and-drop to the application). Plug-ins and language modules both offer an “Install and Relaunch” option.
  • Project documents now support relative references.

    Newly created items will be created with relative reference information. When resolving a project item, we’ll always try to resolve via the relative information, then fall back to the absolute and alias data.

    Project files created with previous versions of BBEdit are upgraded to contain relative locator information.

Changes

  • The factory default font is now Consolas-12. If you never chose a default font before, your documents may now display in Consolas-12. If this is not to your liking, adjust the display font accordingly in the “Editor Defaults” preferences.
  • Removed the “Create New Document” checkbox from the New HTML Document dialog; it always creates a new document now.
  • Revamped FTP/SFTP browser windows. The layout has been redone, the interactions have been remodeled, the directory popup is much more functional, and the file list now includes the modification date as reported by the server (and the sort order can be changed).
  • The “Save to FTP/SFTP Server” dialog has been rewritten and modernized. The changes here largely parallel the ones made for FTP browsers: freshened look and feel, sortable file list.
  • The default line break description for CR is “Classic Mac” to attempt to discourage people from choosing it inappropriately. Both the preference pane and the Save dialog now use the same wording.
  • Changed the default completion threshold for ctags from zero characters to three (so you won’t see any ctags completions unless you’ve typed at least three characters).

Fixes

  • Restored some missing code which allowed open events to specify additional properties. This fixes a bug in which, where Workspaces do not correctly restore window positions.
  • Fixed a bug where project items were not opened on single click if that click also had the side effect of scrolling the list item into full view.
  • If Apply Text Factory changes the length of the text, the selection range shrinks or grows as appropriate.
  • The view state (line numbers, tab stops, and page guide) for the Scratchpad window persists across window closures. (previously, only document state was preserved)
  • The Search and Replace fields both scale when the text factory configuration sheet is resized.
  • Improved the printing/pagination behavior when printing web preview windows.
  • Added a default preference for Startup:RestoreApplicationState, and removed the in-code defaults. This corrects the problem where if you had never changed the preference, the application behaved as if it were enabled, but the prefs UI showed it disabled.
  • Trying to save a binary plist with syntax errors now reports a slightly more useful error.
  • PHP classes and interfaces which extend/implement more than one thing (other classes or interfaces) are now listed correctly in the function popup and receive auto-generated fold points.
  • Fixed a regression which made it impossible to select windows with non-ASCII titles from the window menu.
  • Fixed bug which prevented worksheets from reloading their saved markers.
  • Using the shift left operator (in a Ruby file) to append a quoted string onto the end of another quoted string will no longer fool the Ruby module into seeing a heredoc where none was intended. (Syntax disambiguation FTW!)

    Example: foo = “testing ” <<”123”

  • Fixed a regression which broke shell worksheets for users whose default shell was tcsh.
  • Fixed a bug reponsible for the missing context menu in the clippings floater.
  • The document icon in the Preview toolbar now tracks the source file’s icon, instead of being the generic document icon.
  • Fixed the tendency of one of the ponies (the pink one) to throw a shoe on alternate Tuesdays.
  • Worked around a crash that would occur on Mac OS X 10.4.x when dismissing the Multi-File Search window using the Escape key while an alternative input method was active.
  • Fixed bug in which path information provided by “Edit in BBEdit” clients wasn’t displayed in the Window menu (and other places where it should have been used).
  • Fixed bug in which Close & Delete (or its cousin, dragging the proxy icon from the toolbar or window title bar to the Trash) would behave incorrectly when the document in question was on a remote volume. (The file was placed in the volume’s Trash directory, but the Finder didn’t display it in the Trash.)
  • Fixed bug in which the line-number argument (+NNN) to the command-line tool wasn’t honored for requests to open remote URLs.
  • Made changes to improve the performance of auto-save (especially for large files) so that delays when auto-saving should be much less intrusive than before.
  • Made the Licensor button titles and explanatory text agree.
  • Fixed a bug which caused text dropped into a Find or Replace field to be lost if the Find window was inactive at the time.
  • Fixed a bug where displaying or opening a document in a second window caused the soft wrap settings to be toggled off for all views on that document.
  • Improved the results list’s handling of deleted files. (These appear for `P4 Opened` and `Working Copy Status` browsers.)
    • The presence of deleted files no longer incorrectly forces the list into hierarchical mode.
    • Deleted files are no longer inappropriately grouped together in hierarchical mode.
  • Fixed a bug which caused a color mismatch between static text widgets and radio buttons and checkboxes in (some) inactive windows.)
  • Corrected an edge case where the HTML markup tools would not automatically encode ” (double quotes) when used in an attribute value.
  • Fixed crash which would occur when trying to use “Save as Styled Text” or “Save as Styled HTML” on the Scratchpad.
  • Fixed bug in which dragging files directly into a project collection would add them to the project in reverse order.
  • Added “Default Font” to the prefs search table.
  • Fixed a bug which prevented the Recent Items count and Rubber Stamp text preferences from writing themselves out at times other than when the preferences window was closed.
  • Centralized responsibility for trimming off excess recent items to one location, which fixes a bug which caused the oldest recent Project to be the sacrificial recent item, even if there were other older items
  • Fixed crash which would occur when piping to BBEdit with a project window in front, but with no active editing view.
  • Added a try/catch block to handle the case of a missing /usr/bin/tar executable during the upgrade App Support folder process.
  • Functions named “get” or “set” in javascript files will no longer break the function popup.
  • Fixed crash which would occur if a non-text document type ended up being selected in a results browser list, and then subsequently deselected (or the window was closed).
  • Results browsers will no longer attempt to display the contents of non-text document files when such a file is selected.
  • When completing against ctags symbols, BBEdit will only allow tags that are found in files of the same (or appropriately related) language as the source file in which you’re working.
  • Fixed bug in which sending multiple URLs from the “bbedit” command-line tool would cause some to get dropped.
  • Fixed a bug where <#> was incorrectly recognized as a placeholder. The minimum placeholder is <##>.
  • Fixed performance problem which would slow down editing when a results window with a large number of entries was open.
  • Improved the First Run experience by sniffing for old serials, and warning appropriately. Also fill in version numbers dynamically, instead of hard-coding.
  • Attempting a replace all on a rectangular selection provides a more descriptive error than before.
  • Fixed bug in which files opened from FTP/SFTP servers didn’t display the modification date from the server, but rather the date/time the file was downloaded. This made ordered comparison difficult.
  • BBEdit now correctly matches port numbers and sftp vs. ftp when figuring out when a file opened using the built-in interface has already been opened.
  • Fixed bug in which a failed CWD at login in the FTP browser or save panel would leave the window in a strange state.
  • Quieted an assertion when attempting to compute a sub-line diff on an insert operation (where one side of the diff is empty).
  • Fixed bug in which a multi-file Find All or Replace All would cause the next interactive search to behave as though “Start at Top” had been turned on.
  • Fixed a performance problem which would manifest as a delay when saving in the presence of a very large quantity of clippings.
  • If an SFTP server returns an out-of-range length in response to a read request, we now report a specific error code (22814) rather than the generic I/O error result (-36).
  • Fixed bug in which searching a Search Results window would incorrectly search the file selected in that window, rather than searching all files represented in the window’s results.
  • Fixed bug in which a -50 error would be reported if doing a Perforce “Show Opened” operation, with the “Opened Files” results window in front and nothing in it selected.
  • Fixed a bug where in certain situations (close all documents, or the scripting equivalent) documents with unsaved changes which were hosted in a project window could be closed without confirmation (or being saved).
  • Adjusted the focus order in the confirm-close dialogs and sheets to match the ordering used by the system.
  • “Use Selection for Replace” now updates the search/replace history in situations where it didn’t before.
  • Fixed a bug which could lead to a crash when viewing a folder on certain volume types (SMB, for example) in a project window or disk browser, if that folder’s contents changed.
  • Avoid loading up the “Search Backwards” setting at startup unless the modal Find dialog is in use; this avoids mysterious Replace All failures if your last act with 8.x was to do a backwards search.
  • Fixed a bug where selecting a document in the documents drawer had the incorrect side effect of switch keyboard focus to the main window. (This was noticable only if you had “Allow documents drawer to acquire keyboard focus” turned on, and the drawer had keyboard focus.)
  • Updated the Expert Preferences help to address a couple of errors and omissions.
  • Corrected the expert prefs help for image, movie, and PDF handling prefs.
Version 9.0.2 | Release Date: 2008-10-23 | Download
No changes specified
Version 9.0.1 (1326) | Release Date: 2008-09-11 | Download

too numerous to mention.
http://www.barebones.com/support/updates.html

Version 9.0 | Release Date: 2008-08-28 | Download

This page documents all feature enhancements and visible changes included in the BBEdit 9.0 upgrade.

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 9.0 requires Mac OS X 10.4 or later.

This version is a Universal Binary: it runs natively on both Intel-based and PowerPC-based Macs.

Additions

The text views in browsing windows (disk browsers, search results, P4 opened, and similar) are now editable; rather than having to open a file into a new window from such a browser, you can just edit it right in the window.
There is a new command on the Window menu: Show Scratchpad
The Scratchpad window’s purpose is to be a space where you can manipulate text by performing transforms, manual edits, or batches of copy/paste.

It is ideal for quickly beating text from one source into submission before pasting it elsewhere.

The Scratchpad window automatically saves its content and state, eliminating those pesky “Save Untitled 237?” warnings when closing a window, or quitting BBEdit.

The Scratchpad is also available from BBEdit’s dock menu.

Finally, there is a new item on BBEdit’s Services menu: Append Selection to Scratchpad. This command will take the selected text, and place it at the end of the scratchpad, attempting to preserve any selection that was previously present. The Scratchpad window does NOT need to be open to use this command. Any text appended in this fashion will be present the next time the window is opened.

Added a missing Migration command (change column) to the clipping set for Ruby/Rails.
Added “Save as Styled Text” to the File menu, and “Copy as Styled Text” to the Edit menu. These function similarly to their HTML analogs, but the Save variant saves an RTF file, and the Copy variant copies styled text (which is more easily shared with other applications).
Added “Multi-File Search” command to the Find menu. This unconditionally opens the Find dialog with the “Multi-File Search” option turned on.
There is a new command on the File menu: “Reload from Disk”. This command will examine the file on disk, and if it’s different, reload the front document’s contents from the file on disk. This is useful in situations where the file may have changed without BBEdit noticing, which will be the case if “Automatically refresh documents” is turned off in the Application preferences, or in the case of a document on a shared disk that gets modified by another workstation.
When running on Mac OS X 10.5 or later, the “Colors” command is available on the Windows -> Palettes menu. This command shows and hides the system color panel.
There’s a new option in the “Insert Folder Listing” dialog: “Show invisible items”. If turned on, the generated listing will include invisible files/folders and the contents of packages.
There’s a new group of sources in the Find dialog’s source list: “Xcode Projects”. This group shows the projects in Xcode’s Recent Projects menu; selecting one (or more) will instruct the multi-file search to search each text file in the project.
Find Differences now uses the system diff tool for generating the difference ranges displayed in the application. This should result in more usable results.
RCS keywords are canonicalized down to their unexpanded state for comparison.
e.g. $Author: Jim Correia$ -> $Author$

This means that “ignore RCS keywords” isn’t literal, but it does what you’d expect.

changes in RCS keyword expansion state are not diff significant
adding new RCS keywords to a file/line is diff significant
any other changes on a line with RCS keywords is diff significant
Stuff copied to the clipboard carries a source language hint. Pasting into a document whose source language is unknown will cause the document to inherit the clipboard’s hint.
Dragging text into an empty document from another editing view will now pick up the source language from the originating view.
The C/C++/Obj-C/Obj-C++ scanner now generates fold ranges for multi-line parenthesis blocks (including argument lists), subject to the MinimumLinesForBlockFold preference.
“New (with selection)” and “New (with clipboard)” now create the new document using the language of the selection or clipboard (respectively).
The Navigation bar has a document/state dirty indicator, so those inclined to disable the toolbar and ignore the close box indication have some way to see if a document is dirty or not.
The Ruby language support has been rewritten, with improvements as follows:
greatly improved function, class, and module detection.
more extensive support for text folding.
Better handles interpretive strings. The following:
puts "d#{"rie"}w".reverse

... should show only "d#{"rie"}w" colored as a string when in a Ruby file (new module).

Better handles the optional then at the end of if or elsif statement.
Significant update to the JavaScript module. Better support for Prototype-style object definitions, more consistent throughout.
BBEdit’s support for ctags files has been improved:
relative paths in tags files are now interpreted (relative to the tags file’s location); there is no more need to go through all kinds of gyrations to generate absolute paths in tags files, just so that BBEdit can locate the symbol definition.
BBEdit now supports old-format tags files which contain a vi search string but no line number information.
When loading symbols for ctags syntax coloring, BBEdit will look for files named “tags” in each folder in the chain from the current document’s folder up to the root of the file system. This improves symbol lookups for projects that aren’t structured exactly like ours. :-)
If you have a .Mac/MobileMe account, you can use it to keep your Application Support folder synchronized across machines. The preference to control sync frequency is located in the “Application” preference pane.
There are no controls to force syncing, or provide any sort of user control over what does or does not sync. Just be patient, and don’t try to rush the sync engine. :-)

Added ObjectiveC 2.0 keywords to the Obj-C and Obj-C++ language modules.
Documents as a scriptable element of text window can now be accessed by name and unique ID. (Previously, only indexed access was supported.)
“Open Counterpart” can now be used for files which will be implictly created at save; for example, bbedit foo.h followed by an Open Counterpart command will open foo.cp if it can be found using the standard rules.
BBEdit can now detect versions of Application Support/BBEdit that were created by previous versions. If the folders have not been changed (NOS, for “New Old Stock”), they will be silently upgraded to the current version. When a NOS support folder is detected, it is backed up to ~/Application Support/BBEdit Backups, then replaced with the latest contents.
If a NOS Glossary folder is detected, it is backed up, removed, then replaced with the latest Clippings folder.

There’s a new preference in Text Status Display: “Document statistics”. When turned on, this will add an item to the window status bar, showing the number of characters, words, and lines in the document. There’s also a document-icon indicator; when it’s uncolored the stats represent the entire document; when it’s colored the stats represent the selection range. (Click on the item to toggle between the modes.)
BBEdit now includes a set of clippings for quickly inserting and completing PHP functions. Thanks to Ted Stresen-Reuter for his generous contribution.
You can now double-click on a string delimiter to select the contents of a quoted string, in files with syntax coloring turned on. The selection range honors the “Include delimiter characters when balancing” setting in the Editing: General prefs. You can also double-click on an element’s angle bracket in HTML/XML documents to select the contents of the element.
BBEdit can now transparently read and write text files compressed with bz2 (e.g. rolled system logs in 10.5) as easily as it reads and writes regular text documents (and, as a reminder, gzipped text files). For bonus points, try opening and changing a binary plist compressed with bz2. :-)
When “Make backup before saving” is turned on in the Text Files prefs, and you close a document with unsaved changes and elect to discard those changes (“Don’t Save”), BBEdit will save a snapshot of the document’s contents. Just in case. The snapshot will be written into the same directory as the document, and its name will follow the Emacs convention “#foo.txt#”. If “Preserve file name extension” is turned on, the snapshot’s name will be “#foo#.txt”.
You can now use an Emacs variable to control whether or not a given file is backed up. There are two ways to do this:
Absolute: If the variable line/block contains a “make-backup-files” variable, that variable’s value will override the global “Make Backup before saving” preference.
make-backup-files: 1 —> always back up this file make-backup-files: 0 —> never back up this file

If the first letter of the variable’s value is “y”, “t”, or “1”, the value is “yes”, otherwise it’s “no”. These are all synonymous:

make-backup-files: yes
make-backup-files: y
make-backup-files: true
make-backup-files: t
make-backup-files: 1
Inhibit: If the variable’s line/block contains a “backup-inhibited” variable, and its value is true (see above), then the file will never be backed up, even if “Make backup before saving” is turned on in the global preferences.
It really only makes sense to specify “backup-inhibited: 1”, since otherwise the file would be backed up if the global pref is on, and not otherwise.

If a symbol lookup in a Python file fails, and it appears to be a method of a class, we’ll try to look up the class.method as well.
Projects.
A project is the modern expression of the old “File Group” feature, but much more useful, chiefly because project windows now include an editing view: click on a file in the list on the left, and it appears for editing in the pane on the right.

To create a new project, choose File -> New -> Project… You will need to decide where to place your project on disk; thereafter, the project document will autosave as necessary.

In the project window, you can hide the top toolbar as desired. If the toolbar is hidden, the action buttons in the lower left corner of the file list remain useful for manipulating the project’s members.

BBEdit now handles the (badly chosen, since it omits the “x-” prefix) “txmt:” URL scheme. This allows properly formed “txmt:” URLs generated by the Ruby On Rails “FootNotes” plug-in (and some others) to open files in BBEdit and (optionally) select a requested line and column. (NB: If the system doesn’t correctly recognize BBEdit as an allowable handler for such URLs, RCDefaultApp is a good tool for adjusting the bindings.)
The is now a “Close All” dynamic menu item on the action menu in the documents drawer. This is particularly useful for closing all the documents associated with a project window without closing the project itself.
Also, option-clicking on a close widget in the documents drawer will close all the text documents in that window. (MDI text windows will also close as a side effect, but project windows will remain open.)

The Application menu sports a new item: Provide BBEdit Feedback. This command will ask your default email client to compose a pre-addressed message to [email protected], with with the application name, version number and build number in the message subject.
Selected items in project lists and disk browser lists are now exported to contextual menu plug-ins.
Added “Collapse Enclosing Fold” to the View menu; this command will collapse the auto-generated fold that most closely surrounds the current insertion point (or start of the selection range).
Changes to split views in results and disk browsers:
There is a new command on the view menu “Show/Hide Editor” which can be used to toggle the embedded editor visibility in disk browsers and results browsers.

The toggle editor button in the action bar at the bottom of the file list can also be used for this purpose.

When hiding the embedded editor, the associated document will be removed from the window (and closed, after prompting you, if it was not open elsewhere.) Because of this potential need for user interaction, you cannot collape the editing view entirely by dragging the view splitter; you must use the button, menu command (or in the case of results browsers, a double click on the view splitter.)

Added a “Delete” command to the contextual menu and action menu in disk browsers.
Search Sources can be enabled/disabled via the Text Search preference pane.
Option-clicking the close widget in the windows palette will close all windows. (This matches the same conceptual change made to the documents drawer list, as well as the standard behavior for option-clicking the close widget in the titlebar of windows.)
Added rudimentary support for define_method to the Ruby module. Methods defined with it should be listed in the function popup. Yay, metaprogramming.
“Open Counterpart” will ask Xcode for the file’s counterparts when possible.
The items in the “Saved Search Sets” source group (for multi-file searches) now have an “X” widget; clicking the X deletes the search set (after confirmation).
Items in the “Recent Folders” group in the multi-file search sources list now have an “X” widget; clicking the X will delete the recent item from the list (without disturbing the folder that it refers to).
Disk browsers get “New Text Document” and “New Folder” commands on the action and contextual menus. They work pretty much as one would expect.
Script tags in HTML files which DO NOT have a src attribute are now listed in the function popup (those with src are already listed in the “includes” popup). This is similar to the STYLE entry for stylesheets: functions and objects added to the function popup as a result of the script tag are indented beneath the script tag’s entry, to suggest containment.
New Find windows!
There are new Find and Multi-file Search windows; where they overlap, they provide a consistent and modeless interface to BBEdit’s legendary text search and replace capabilities.

If you’re familiar with the old Find dialog, you’ll generally feel at home, but there are some important differences and additions of which you should be aware:

The Find dialog has been split in two, with one window for searching only the front document, and one window for searching more than one document (including folders, arbitrary open documents, BBEdit and Xcode projects, and so forth).
The (fairly confusing) collection of options to configure which text actually gets searched (for single-file searches) has been condensed down to a single pair of “Search in:” options: “Selected text only” and “Wrap around”.
“Selected text only” affects only the “Find All” and “Replace All” operations: if there is a selection range in the front document, this option will search only the selection range if turned on, or the entire document (starting from the top) if turned off.

“Wrap around” affects only the “Next”, “Previous”, “Replace”, and “Replace & Find” operations: if the search reaches the end of the document (or the beginning, if doing a “Previous”), then “Wrap around” will continue the search from the appropriate end of the document.

Keyboard navigation is radically different (as it must be, given the new windows’ modeless nature).
Return or Enter in the “Find” field will do a “Next” in the single-Find window, or a “Find All” in the Multi-File Search window.
Striking the Escape key (not too hard!) will close the window.
The appropriate commands on the Search menu (Find Next, Find Previous, Replace, Replace All, Replace & Find Again, and a new “Find All”) will trigger the corresponding action in the front Find window.
It’s not possible to use the command-key equivalents from the old modal Find dialog for toggling items in the Find window, because those equivalents collide with factory keyboard equivalents (or system standards) for different menu commands. So there’s a new group of keyboard equivalents for controlling Find and Multi-File Search window items. These keys can be set in Preferences -> Menus -> Find Windows.
The factory defaults for these keys are as follows:

Case sensitive Control-shift-N
Entire word Control-Shift-E
Grep Control-Shift-G
Selected text only Control-Shift-S
Wrap around Control-Shift-W
Open search history Control-Shift-H (new)
Open saved patterns Control-Shift-P (new)
If you are in the habit of assigning keyboard equivalents to saved clippings, it’s possible that these defaults may overlap with your clippings. If so, you can of course change the commands from the factory defaults.

In the Multi-file Search window, you can use the keyboard when the search sources list has focus, as follows:
Return/Enter starts the search;
Escape dismisses the window;
Type-to-select works in the list (when it has focus);
Space toggles the selected items;
Delete removes the selected items from the list (after confirmation, and only if they’re eligible as indicated by the “X” widget).
If you find yourself more comfortable with the old interface, you can continue to use it by turning on “Use modal Find dialog” in Preferences -> Text Search.

Search and replace history is now persistent across runs of the application.
Image windows update their content when the backing file changes, making things like developing POVRay scripts a little bit easier.
Changes to the project list user interaction model.
Removed the anachronistic behavior where holding down option while opening project items opened them using their LS/Finder bindings.
Double clicking on a folder no longer opens a disk browser. Instead, it toggles the expansion state of that node.
When the editor is hidden, the projects list works as it did in previous releases. That is

it accepts keyboard focus
return and double-click open the selected items
When the project editor is visible, the project list can either work the same was as it does when the editor is hidden, or it can work in “single-click” mode.

There are two additional secret preferences which control this behavior.

Projects:ProjectsListCanAcquireKeyboardFocus -> BOOL -> NO
Projects:OpenItemsOnSingleClick -> BOOL -> YES
Having the list not accept keyboard focus, among other things, avoids “dancing focus” when opening items via single click.

When the single click setting is set, most single clicks will open the associated document in the attached editor, and put keyboard focus in the editing view.

Certain single clicks don’t result in an open action. (I’m specifically not listing them all here, but the behavior has been carefully designed so that it will feel right in usage. Examples include clicks which would require we spawn a window, clicks which extend the selection, etc.)

Added a “Reveal in Finder” command to disk browser and project windows.
For compatibility with scripts written for pre-9.0 versions of BBEdit, the scripting interface now performs the following name mapping when changing the “text encoding” property of a document:
“Unicode™ (UTF-8)” = “Unicode (UTF-8)”
“Unicode™ (UTF-8, no BOM)” = “Unicode (UTF-8, no BOM)”
“Unicode™ (UTF-16)” = “Unicode (UTF-16)”
“Unicode™ (UTF-16, no BOM)” = “Unicode (UTF-16, no BOM)”
“Unicode™ (UTF-16 Little-Endian)” = “Unicode (UTF-16 Little-Endian)”
“Unicode™ (UTF-16 Little-Endian, no BOM)” = “Unicode (UTF-16 Little-Endian, no BOM)”
Note that this transformation does not operate in the reverse direction; if you get the text encoding property and explicitly compare the name, you will need to update your script.

Integrated Jim’s .ini language module.
C-language files (and all related languages, like Obj-C, C++ and header files) will now show FIXME and TODO items in the function popup. Only ”//” comments are searched, and the comment must start with one of the following: “FIXME:” “FIXME!” “FIX-ME:” “FIX-ME!” “TODO:” “TODO!” “TO-DO:” or “TO-DO!”. The text added to the function popup starts with the first character of the FIXME or TODO and ends with the last non-white character on the same line.
Examples:

// FIXME This little bug could erase the intertubes.
// TODO! Add support for Apple's "Crash Only When Convenient"
The command formerly known as “Open in Separate Window” is now called “Move to New Window”. It will move the current document (or selected documents when invoked from the documents drawer) into a new editing window (removing them from their current editing window.)
There is an additional command “Open in Additional Window” which will open the current document (or selected documents when invoked from the documents drawer) in an additional window that can be edited side by side with the original document.

Both commands are only available for text documents.

Ponies.
Attempting to bring up a contextual menu in the “dead” space at the bottom of a disk browser list now works, presenting you with “globally” available commands New Folder and New Text Document.
The application automatically saves its state (open documents and windows) once per minute, so if something bad happens to your machine, there’s a pretty good chance that the next time you start up, things will be as they were when the event occurred.
Python function decorator names are now detected and colored.
You can drag stuff to the sources list for Text Factory configuration
The Text Factory sources list remembers selected items and twist state between invocations.
Text completion!
BBEdit can now figure out completions for symbols as you’re editing. The preference for controlling when this happens is in the “Editing: General” preferences:

After a delay in typing
If you pause briefly while typing, BBEdit will figure out the completions for what you just typed, and display them.

The delay can be adjusted from the command line if desired:

defaults write com.barebones.bbedit Editor:AutoCompleteDelay -float 0.5 # sets the auto-complete delay to half a second

Only manually
Completion will only take place when using a manual completion command (see below).

Automatic completion can be turned on and off on a per-language basis (in the Languages preferences) if desired. It is off by default for the “Log File” and “Data File” languages.

Completions can be derived from a variety of sources, including (in no particular order and without limitation):

clippings (both language-specific and universal);
ctags symbols computed by running the current document through ‘ctags’;
ctags symbols found in ‘tags’ files in the current document’s hierarchy;
predefined names for the source code language at the point of completion;
language-specific completions;
completions provided by the system spelling system.
Completion may be triggered at any time (whether or not automatic completion is enabled) by using the “Complete” menu command on the Edit menu. By default, F5 is assigned to this command; you can change this equivalent (as usual) by using the Menus preferences.

Note: Text completion completes clippings in the same way that the “Insert Clipping” command used to (and still does). So, the behavior of F5 should be indistinguishable if you were used to using it to complete clippings.

You can also use the Escape (“Esc”) key to invoke text completion. This is off by default, and may be turned on using the command line, as follows:

  1. allow the Escape key to invoke the "Complete" command defaults write com.barebones.bbedit Editor:UseEscapeKeyAsCompletionTrigger -bool YES

Note: Because the Escape key has a special meaning when “Use Emacs key bindings” is turned on (Editing: Keyboard preferences), if you choose to use the Escape key as a completion trigger, you will have to press it twice to invoke completion in this case.

The tab key can now be overloaded to perform certain actions in addition to the traditional “insert a tab” (or the equivalent amount of spaces).
When these actions are enabled, holding down the option key while pressing the tab key will bypass the special actions and insert a tab character.

In all cases, if the special action is not appropriate in the current context, pressing the tab key will result in the default behavior (insert tab character).

The first of these new actions is “go to next placholder.” (Hold down the Shift key to reverse the direction.) This is equivalent to the command on the Search menu. To control this behavior, use the “Use Tab key to navigate Placeholders” preference (Editing: Keyboard).
For refugees from Windows who are used to having Tab indent a line (or selected range of lines), there’s a new preference in Editing: Keyboard: “Allow Tab key to indent text blocks.” When turned on, this setting allows Tab to function as a synonym for Shift Right on the Edit menu (and Shift-Tab as a synonym for Shift Left).
There’s a new color setting in the Text Colors preferences: “Predefined names”. This symbol class is used for words which are not language keywords, but which are predefined by the language’s reference implementation and/or are part of the language’s standard library/framework support and/or have other “special” meaning to developers writing code in that language.
The color may be changed on a per-language basis in the Languages preferences: double-click on the language’s name in the list and examine the Colors tab in the resulting sheet.

Language module developers may use the following constructs to support predefined names:
If a BBLMPredefinedNameList key appears in the module’s property list, it is an array of strings, each of which is a predefined name. (This key is mutually exclusive with BBLMPredefinedNameFileName; you may use one or the other but not both.)
If a BBLMPredefinedNameFileName key appears in the module’s property list, it is a string which names a text file in the module’s Resources bundle directory; the file contains one predefined name per line. (This key is mutually exclusive with BBLMPredefinedNameList; you may use one or the other but not both.)
If BBLMSupportsPredefinedNameLookups appears in the module’s property list and is TRUE, BBEdit may call the module with the kBBLMMatchPredefinedNameMessage. The parameters for this message are the same as for kBBLMMatchKeywordWithCFStringMessage.
In the Languages prefs, the options sheet for Python now has a tab for Python-specific options, in which you can choose the color to use for decorators.
Reworked the existing entries in the CSS clipping set to use the placeholder mechanism.
Added a couple of new useful entries to the CSS clipping set for @media, @import and rule sets.

Added .php5 to the factory default list of language mappings.
Clipping set auto-switching is now more context sensitive. The active clipping set will be picked based on the language of the insertion point. This is a significant improvement particularly when working with languages embedded in HTML. (CSS, JavaScript, Ruby, PHP, etc.)
The list of clippings generated for text completion or Insert Clipping is always language sensitive. Clippings will be picked from
- all appropriate sets for the current language - additional sets appropriate for that language (e.g. HTML for Ruby in HTML or JSP) - possibly the active set (see below) - the universal set

This makes it much more likely that you’ll end up with a useful clipping in the completion set.

The active set is always included for “Insert Clipping”. It is only included in completion set if it is appropriate for the current language, or was a manual pick for the target document. (This avoids having PHP clippings appear in a Python file, for example, because you don’t have a Python clipping set and the PHP set was the last one used.)

You can now review and apply sub-line differences individually in the results of Find Differences.
Yeah, you heard that right.

New command on the Search menu: “Replace to End”. This command provides the pre-9.0 behavior for anyone who needs it: everything is processed from the current insertion point or start of the selection range to the end of the document.
When setting up the default browser list for HTML previews, we now recognize application stubs created by VMWare 2.0’s “Unity” feature, so that you can preview your documents in FireFox or Windows IE while running in VMWare 2.0.
If you have an existing browser list, you can as always add these applications to the list in the “HTML Preview” preferences, either manually or by using the “Find All” button.

Added a new clippings placeholder: #selectionorplaceholder placeholder_name#.
If the document has a selection when the clipping is inserted, the placeholder will be replaced with the selected text. If there is no selection, a placeholder named “placeholder_name” will be inserted into the document.

This placeholder is particularly useful when building “dual-mode” clippings – that is clippings that are designed to be inserted via traditional means (the clippings palette, keybindings) or via the completion mechanism.

Changes

Fixed misleading wording in the alert for running #! scripts with non-Unix line breaks.
New and improved software update checker, the same as the one used in Yojimbo 1.5.
When a browser has nothing selected, or has a deleted file selected (like in a P4 window), the combined text view is replaced with a status view, telling you so.
The mechanics that BBEdit uses to determine whether a file was changed on disk have been completely rewritten. Consequently, the group of “Verify open files after:” preferences (see Application prefs) has been replaced by a single setting: “Automatically refresh documents as they change on disk.” If you wish, you may turn this off and reload a document manually at any time by choosing the “Reload from Disk” command on the File menu.
Document drawer side bias is no loner controllable from the prefs UI.
Expunged references to the “Open Here in Terminal” bundle override, since that feature is no longer supported.
Tightened up the layout of the disk browser window and dropped the focus ring around the file list.
The “Save As” and “Save a Copy” dialogs now run as sheets, as does the dialog for the “Save Selection” contextual menu item.
“Save As” for Find Differences results windows has been changed to “Export” for consistency with results browser windows.
The “Save As Selection” command has been consigned to the dustbin of history.
Support for the CodeWarrior IDE has been removed. If you are still using BBEdit as an external editor for CodeWarrior, you can run 8.7.2 alongside 9.0.
In a results browser, the Save command (or apple event) now works on the viewed document. The Export event or command can be used to write out a text file containing the results entries. (This was previously accomplished via the Save As command.)
When writing data to the pasteboard (clipboard or drag), BBEdit now also includes a UTF-8/NSStringPboardType copy of the data with LF line endings. This provides smoother interoperability with Cocoa applications which are not line ending agnostic. (Or more specifically, do not convert the pasteboard data to their native internal representation, often resulting in a mixed line ending document.)
N.B. BBEdit has always been line ending agnostic when reading data from the pasteboard.

The window menu and windows palette are named differently, so multiple results browsers pointing at the same document are easier to distinguish from each other.
If the search terms are available at window construction time, Search Results windows include them in the base window name in preference to the instance number, so instead of getting “Search Results 42 (search term)”, it’s now just “Search Results (search term)”.
The options and behavior for backing up files at save have changed, as follows:
“Make backup before saving” is now a global preference only, and is no longer controlled per file. The “Make Backup when Saving” and “Make Backup Now” options have been removed from the File menu.
The settings controlling backup location (in the Text Files prefs) have been removed. Backups are always made to a specific location, as follows:
If “Keep historical backups” is turned on, backups are kept in ~/Documents/BBEdit Backups/. Within that folder is one folder for each day’s backups. The format of the dated folder name is static and non-localized: YYYY-MM-DD. Inside of each day’s backup folder will be all of the backups made on that day, each named using the 8.7.x timestamp format.
If you want the backups to live somewhere else, lay down a folder alias named “BBEdit Backups” in ~/Documents/ and BBEdit will follow the alias.

If “Keep historical backups” is turned off, BBEdit makes only a single backup, located in the same directory as the original, so “backup creep” is a thing of the past. The backup is named according to current OS conventions (which themselves follow the old Emacs convention): the backup file is named as the original file, with a tilde appended: “foo.html~” is the backup of “foo.html”.
If you want the backup to have the same file name extension as the original, turn on the “Preserve file name extension” in the Text Files prefs. This will cause BBEdit to place the tilde after the “base” name of the file: “foo~.html”.

The machinery behind the Preferences window has been overhauled; this is not user-visible; however, the layout conventions for the prefs panels have changed, which does affect the overall look of the Preferences window. This will affect screen shots.
Wildcard mappings for filename extensions to source code languages now work the way they were originally intended to; a suffix mapping of “php*” will now match any file whose filename extension begins with “php” and ends with anything, rather than attempting to apply the wildcard against the entire file name.
The dialog used for adding and editing filename extension-to-language mappings (in the Languages prefs) has been modernized.
Modernized the options dialog for multi-file Replace All.
The “Add…” button for adding Grep patterns in the Text Search preferences has been consigned to the dustbin of history. The “Change” button has been renamed to “Rename” to reflect that it now simply renames the selected pattern.
The Application menu and Help menu have been reorganized to follow the conventions established by Apple’s current iLife applications.
“Check for Updates” is now on the application menu.
BBEdit no longer loads CFM (Code Fragment Manager, the Mac OS 9 executable format) language modules. If you have such a language module installed, a message will be logged to the system console.
After careful consideration, the “Remember Find dialog�s �Start at Top� setting” checkbox has been shot, and tossed in a ditch. (The setting is still stored in preferences, and honored if present.)
Significant look-and-feel work on the disk browser: the top bar is gone; the action gear in the lower-left corner has some useful commands on it (a strict superset of what’s on the contextual menu), and file filtering control is on the filter popup next to it.
Modernized the Save Workspace and Delete Workspace dialogs. (And the Delete Workspace dialog lets you delete more than one workspace.)
The file filtering options in the Open… dialog have been simplified to present the following items:
All BBEdit Documents
Anything that BBEdit can usefully open into a document window will be enabled for selection. (This is equivalent to the “All Readable Files” setting in previous versions.)

Text Files Only
Only files that are quickly recognizable as text files (without inspecting their contents) will be enabled for selection. (This is equivalent to the “Text Files” setting in previous versions.)

Everything
Enables all files for selection, regardless of type. (This is equivalent to the “All Files” setting in previous versions.)

The file filtering popup in disk browser windows has been reworked to be close to the browser’s primary purpose (browsing text files on disk). It now consists of just two items (in addition to user-defined file filters):
Text Files Only Invisible Items

“Text Files Only” will limit the display to items which pass the text-file test (without examining their content). “Invisible Items”, if turned off, will limit the display to items which would be visible in the Finder (and also filters out CVS, Subversion, and package directories).

The factory default keystroke for “Open Counterpart” has been changed to Command+Option Up-Arrow.
The factory default keyboard shortcuts for “Go to Next/Previous Error” have been changed to Command+Control Up/Down-Arrow.
The gesture for switching focus from a text view (which normally accepts Tab as an input character) has been changed from Option-Tab to Control-Tab.
Moved File Filters to the main find dialog, as it was in BBEdit 7.x.
Collapse All Folds now behaves more usefully in documents where there is a single top-level fold (such as HTML or XML documents, as well as in a few other situations).
Updated Application Support Folder/Readme.txt with information on backups, and syncing.
Adjusted the layout of the Find dialog, eliminating the Saved Sources popup menu (since they are expressed in the sources list directly), and adding a Save Set button instead.
Saving Search Sets is done in a sheet, instead of application modal dialog.
The separate history popups for search and replace strings have been condensed into one.
The term lists for file filters have been buffed a bit.
The popup menu used for file filtering in the modal Find dialog, Find Differences, the Multi-file Find window, and Text Factory options has been rearranged. In those locations, the separate “Use File Filter:” check box has been removed; filtering is completely controlled from the menu. (Choose “None” to turn off filtering.)
The search history item in the modal Find dialog has sharp corners, just like the one in the modeless dialogs.
The command to save Grep patterns from the Find dialog (modal or modeless) is now called “Save” and it’s at the end of the pattern popup in the respective dialog.
The window stacking preference has been retired.
New windows always stack down and right 20px. If you have saved a default window size, and the window is screen height, new windows will just stack to the right, and preserve their saved height.
“Find Selected Text (backwards)” is now “Find Previous Selected Text”. (There’s really no good wording for it that doesn’t make the menu wide. Really, it’s “Find the previous occurrence of the selected text”.)
The MDI preference no longer has an internal vs. external distinction.
The list of actions in a Text Factory is now sorted alphabetically.
The ”+” and ”-” buttons in Text Factory windows have been adjusted to account for metrics changes in the system.
“Replace All” in the old modal Find dialog now replaces every occurrence in the document (or in the selected range, if there is one and “Search Selection Only” is checked), rather than from the insertion point to the end of the document. This makes its behavior consistent with the modeless Find window and the “Replace All” menu command.
Updated the “Clear Markers” dialog.
“Preview in BBEdit” now factory defaults to Cmd-Control-P (was previously assigned to “Preview in <default web browser>”.

Version 8.7.2 | Release Date: 2008-03-28 | Download
No changes specified
Version 8.7.1 | Release Date: 2007-10-31 | Download

Release notes available here: http://www.barebones.com/support/bbedit/current_notes.shtml

Version 8.6 | Release Date: 2007-02-14 | Download

Code Folding

Code folding collapses sections of text to simplify your document’s structure and improve readability.

* Language sensitive: Compiled and codeless language modules generate information that BBEdit uses to indicate automatic fold points.
* Manual: You can select any range of text in any kind of document and fold it. Or you can use “Balance & Fold” to quickly collapse a range of text in between matching parentheses, braces, brackets, or curly quotes.

Clippings

Formerly known as the Glossary, BBEdit’s powerful Clippings system provides quick access to frequently used pieces of text.

* Easier clipping creation: New “Save as Clipping” and “Save Selection as Clipping” make it much simpler than before to create new clippings and sets.
* Clippings menu: Provides quick access to clippings sets, clippings in the currently active set, and commands to insert and manage clippings.
* Improved “Insert Clipping” with auto-completion: “Insert Clipping” now brings up a panel that allows you to search for clippings by name. If you’ve typed a partial word before choosing Insert Clipping, BBEdit will use the word to auto-complete the clipping.

Preferences

BBEdit’s rich Preferences interface has been enhanced and revised for greater usability and control.

* Show and hide individual menu commands—or entire menus: Use the new “Menus” preferences to turn off menus and commands that you never use, to get them out of sight and out of mind.
* Organizational improvements: The Preferences window and controls have been enlarged for easier reading, and preferences have been reorganized into fewer preference panels. Unused preferences have been consigned to the dustbin of history.
* Searching: Can’t find a preference setting? No problem! Just open the search drawer in the Preferences window, start typing, and BBEdit will list the preferences whose names or concepts match what you’ve typed.

Code Editing

Version 8.6 features even more improvements to BBEdit’s already legendary code-editing abilities.

* Per-language editing and display options: Set different text colors for different languages; control soft wrap, spell checking, and more on a per-language basis; selectively show and hide status bar and navigation bar elements.
* Codeless Language Module improvements: Use regular expressions to define function bodies for greater flexibility.
* Ruby, YAML, and SQL: Built-in syntax coloring and function navigation; SQL support includes generic SQL, MS Transact-SQL, MySQL, Oracle PL/SQL, and PostgreSQL.
* Improved JavaScript support: improved handling of object-oriented JavaScript, and display of anonymous functions.

User Interface Enhancements

This release of BBEdit features extensive user interface refinements.BBEdit 8.6w Application Icon

* Editing window overhaul: The tool bar has been simplified, and elements that used to be hidden under popup menus are now visible in the editing view for easier access.
* UI buff and polish: HIG updates to dialog and alert window layouts and contents.
* And even… new application and document icons.

And more!

* Indented soft wrapping: Wrapped lines can now be indented to the window’s left margin, to the same level as the beginning of the line, or reverse indented.
* Improved disk browsers: Hierarchical file list, with available file filtering.
* Sub-line differences: When comparing files using Find Differences, BBEdit shows you the differences in words within each line of differences.
* Read, write, and search gzip (.gz) files: How cool is that?
* Auto-save: Periodic snapshot of unsaved documents to avoid data loss in the event of power failures or system crashes.
* PCRE 5.0: Extended regular-expression matching engine adds support for named subexpressions and many other new features.

Version 8.5 | Release Date: 2006-09-24 | Download
No changes specified
Version 8.2.6 | Release Date: 2006-07-05 | Download

Requirements

* This version of BBEdit is a Universal Binary: it runs natively on both PowerPC-based Macs with Mac OS X 10.3.5 or later, and on all Intel-based Macs.

Additions & Changes

* When printing, BBEdit now limits the size of the font used in the page headers. The factory default is 14 point; you can adjust this from the command line if desired:

defaults write com.barebones.bbedit Printing:MaximumHeaderFontSize 14

* Added "self" to the list of colored Python keywords.

Fixes

The following problems have been corrected in BBEdit 8.2.6:

* Corrected an omission where it wasn't possible to specify the window position signature for Mach-O floating tools.
* Fixed a bug in SVN Compare where standard error output was erroneously appended to the end of the contents of the file being to.
* Fixed a bug where editing a CSS ruleset would insert extra whitespace after the selector if the ruleset was auto indented.
* Fixed a crash in the URL resolver which could occur if the HTML Web Site's server URL was blank.
* Fixed an off-by-1 bug in the quoted text rewrapper where it didn't use all of the characters alloted to each line when rewrapping.
* Fixed bug in the handling of HTML palette prefs on Intel Macs which would prevent changes from being recognized.
* The PHP function scanner now handles classes that implement interfaces:

class Foo implements Bar
{
/*...*/
}

* Fixed a bug in which performing certain edits with "Remove leading white space from indented line" (Editing: General) turned on would result in a crash; at times the crash wouldn't occur until some time after the edit had taken place.
* The "No occurrences found" sheet used for multi-file searches is now suppressed if the search was initiated by an external AppleEvent (usually a script command). This change prevents BBEdit from unnecessarily blocking the script until the user dismisses the sheet.
* Worked around a sy

Version 9.2.1 | Release Date: 2006-06-19 | Download
No changes specified
Version 9.2 | Release Date: 2006-05-07 | Download

http://www.barebones.com/support/bbedit/arch_bbedit9.html

Additions

The text views in browsing windows (disk browsers, search results, P4 opened, and similar) are now editable; rather than having to open a file into a new window from such a browser, you can just edit it right in the window.
There is a new command on the Window menu: Show Scratchpad
The Scratchpad window’s purpose is to be a space where you can manipulate text by performing transforms, manual edits, or batches of copy/paste.

It is ideal for quickly beating text from one source into submission before pasting it elsewhere.

The Scratchpad window automatically saves its content and state, eliminating those pesky “Save Untitled 237?” warnings when closing a window, or quitting BBEdit.

The Scratchpad is also available from BBEdit’s dock menu.

Finally, there is a new item on BBEdit’s Services menu: Append Selection to Scratchpad. This command will take the selected text, and place it at the end of the scratchpad, attempting to preserve any selection that was previously present. The Scratchpad window does NOT need to be open to use this command. Any text appended in this fashion will be present the next time the window is opened.

BBEdit now includes a copy of Consolas Regular, an excellent antialiased code editing font. This font is licensed from Ascender Corporation for use only with BBEdit.
The internal FTP implementation has been rewritten to improve performance and reliability. Users with dual (or more) core machines may notice additional performance benefits.
The “Passive” setting for FTP is no longer used. When transferring, BBEdit will first attempt a passive connection; if the server does not support passive transfers, BBEdit will then attempt a non-passive (PORT) connection. Thus, the “Passive” setting is gone from the FTP preferences, FTP browser, Save to FTP dialog, and the scripting terminology for FTP commands.

Added a missing Migration command (change column) to the clipping set for Ruby/Rails.
Added “Save as Styled Text” to the File menu, and “Copy as Styled Text” to the Edit menu. These function similarly to their HTML analogs, but the Save variant saves an RTF file, and the Copy variant copies styled text (which is more easily shared with other applications).
Added “Multi-File Search” command to the Find menu. This unconditionally opens the Find dialog with the “Multi-File Search” option turned on.
There is a new command on the File menu: “Reload from Disk”. This command will examine the file on disk, and if it’s different, reload the front document’s contents from the file on disk. This is useful in situations where the file may have changed without BBEdit noticing, which will be the case if “Automatically refresh documents” is turned off in the Application preferences, or in the case of a document on a shared disk that gets modified by another workstation.
When running on Mac OS X 10.5 or later, the “Colors” command is available on the Windows -> Palettes menu. This command shows and hides the system color panel.
There’s a new option in the “Insert Folder Listing” dialog: “Show invisible items”. If turned on, the generated listing will include invisible files/folders and the contents of packages.
There’s a new group of sources in the Find dialog’s source list: “Xcode Projects”. This group shows the projects in Xcode’s Recent Projects menu; selecting one (or more) will instruct the multi-file search to search each text file in the project.
Find Differences now uses the system diff tool for generating the difference ranges displayed in the application. This should result in more usable results.
RCS keywords are canonicalized down to their unexpanded state for comparison.
e.g. $Author: Jim Correia$ -> $Author$

This means that “ignore RCS keywords” isn’t literal, but it does what you’d expect.

changes in RCS keyword expansion state are not diff significant
adding new RCS keywords to a file/line is diff significant
any other changes on a line with RCS keywords is diff significant
Stuff copied to the clipboard carries a source language hint. Pasting into a document whose source language is unknown will cause the document to inherit the clipboard’s hint.
Dragging text into an empty document from another editing view will now pick up the source language from the originating view.
The C/C++/Obj-C/Obj-C++ scanner now generates fold ranges for multi-line parenthesis blocks (including argument lists), subject to the MinimumLinesForBlockFold preference.
“New (with selection)” and “New (with clipboard)” now create the new document using the language of the selection or clipboard (respectively).
The Navigation bar has a document/state dirty indicator, so those inclined to disable the toolbar and ignore the close box indication have some way to see if a document is dirty or not.
The Ruby language support has been rewritten, with improvements as follows:
greatly improved function, class, and module detection.
more extensive support for text folding.
Better handles interpretive strings. The following:
puts "d#{"rie"}w".reverse

... should show only "d#{"rie"}w" colored as a string when in a Ruby file (new module).

Better handles the optional then at the end of if or elsif statement.
Significant update to the JavaScript module. Better support for Prototype-style object definitions, more consistent throughout.
BBEdit’s support for ctags files has been improved:
relative paths in tags files are now interpreted (relative to the tags file’s location); there is no more need to go through all kinds of gyrations to generate absolute paths in tags files, just so that BBEdit can locate the symbol definition.
BBEdit now supports old-format tags files which contain a vi search string but no line number information.
When loading symbols for ctags syntax coloring, BBEdit will look for files named “tags” in each folder in the chain from the current document’s folder up to the root of the file system. This improves symbol lookups for projects that aren’t structured exactly like ours. :-)
If you have a .Mac/MobileMe account, you can use it to keep your Application Support folder synchronized across machines. The preference to control sync frequency is located in the “Application” preference pane.
There are no controls to force syncing, or provide any sort of user control over what does or does not sync. Just be patient, and don’t try to rush the sync engine. :-)

Added ObjectiveC 2.0 keywords to the Obj-C and Obj-C++ language modules.
Documents as a scriptable element of text window can now be accessed by name and unique ID. (Previously, only indexed access was supported.)
“Open Counterpart” can now be used for files which will be implictly created at save; for example, bbedit foo.h followed by an Open Counterpart command will open foo.cp if it can be found using the standard rules.
BBEdit can now detect versions of Application Support/BBEdit that were created by previous versions. If the folders have not been changed (NOS, for “New Old Stock”), they will be silently upgraded to the current version. When a NOS support folder is detected, it is backed up to ~/Application Support/BBEdit Backups, then replaced with the latest contents.
If a NOS Glossary folder is detected, it is backed up, removed, then replaced with the latest Clippings folder.

There’s a new preference in Text Status Display: “Document statistics”. When turned on, this will add an item to the window status bar, showing the number of characters, words, and lines in the document. There’s also a document-icon indicator; when it’s uncolored the stats represent the entire document; when it’s colored the stats represent the selection range. (Click on the item to toggle between the modes.)
BBEdit now includes a set of clippings for quickly inserting and completing PHP functions. Thanks to Ted Stresen-Reuter for his generous contribution.
You can now double-click on a string delimiter to select the contents of a quoted string, in files with syntax coloring turned on. The selection range honors the “Include delimiter characters when balancing” setting in the Editing: General prefs. You can also double-click on an element’s angle bracket in HTML/XML documents to select the contents of the element.
BBEdit can now transparently read and write text files compressed with bz2 (e.g. rolled system logs in 10.5) as easily as it reads and writes regular text documents (and, as a reminder, gzipped text files). For bonus points, try opening and changing a binary plist compressed with bz2. :-)
When “Make backup before saving” is turned on in the Text Files prefs, and you close a document with unsaved changes and elect to discard those changes (“Don’t Save”), BBEdit will save a snapshot of the document’s contents. Just in case. The snapshot will be written into the same directory as the document, and its name will follow the Emacs convention “#foo.txt#”. If “Preserve file name extension” is turned on, the snapshot’s name will be “#foo#.txt”.
You can now use an Emacs variable to control whether or not a given file is backed up. There are two ways to do this:
Absolute: If the variable line/block contains a “make-backup-files” variable, that variable’s value will override the global “Make Backup before saving” preference.
make-backup-files: 1 —> always back up this file make-backup-files: 0 —> never back up this file

If the first letter of the variable’s value is “y”, “t”, or “1”, the value is “yes”, otherwise it’s “no”. These are all synonymous:

make-backup-files: yes
make-backup-files: y
make-backup-files: true
make-backup-files: t
make-backup-files: 1
Inhibit: If the variable’s line/block contains a “backup-inhibited” variable, and its value is true (see above), then the file will never be backed up, even if “Make backup before saving” is turned on in the global preferences.
It really only makes sense to specify “backup-inhibited: 1”, since otherwise the file would be backed up if the global pref is on, and not otherwise.

If a symbol lookup in a Python file fails, and it appears to be a method of a class, we’ll try to look up the class.method as well.
Projects.
A project is the modern expression of the old “File Group” feature, but much more useful, chiefly because project windows now include an editing view: click on a file in the list on the left, and it appears for editing in the pane on the right.

To create a new project, choose File -> New -> Project… You will need to decide where to place your project on disk; thereafter, the project document will autosave as necessary.

In the project window, you can hide the top toolbar as desired. If the toolbar is hidden, the action buttons in the lower left corner of the file list remain useful for manipulating the project’s members.

BBEdit now handles the (badly chosen, since it omits the “x-” prefix) “txmt:” URL scheme. This allows properly formed “txmt:” URLs generated by the Ruby On Rails “FootNotes” plug-in (and some others) to open files in BBEdit and (optionally) select a requested line and column. (NB: If the system doesn’t correctly recognize BBEdit as an allowable handler for such URLs, RCDefaultApp is a good tool for adjusting the bindings.)
There is now a “Close All” dynamic menu item on the action menu in the documents drawer. This is particularly useful for closing all the documents associated with a project window without closing the project itself.
Also, option-clicking on a close widget in the documents drawer will close all the text documents in that window. (MDI text windows will also close as a side effect, but project windows will remain open.)

The Application menu sports a new item: Provide BBEdit Feedback. This command will bring up the tech support contact form on our website.
Selected items in project lists and disk browser lists are now exported to contextual menu plug-ins.
Added “Collapse Enclosing Fold” to the View menu; this command will collapse the auto-generated fold that most closely surrounds the current insertion point (or start of the selection range).
Changes to split views in results and disk browsers:
There is a new command on the view menu “Show/Hide Editor” which can be used to toggle the embedded editor visibility in disk browsers and results browsers.

The toggle editor button in the action bar at the bottom of the file list can also be used for this purpose.

When hiding the embedded editor, the associated document will be removed from the window (and closed, after prompting you, if it was not open elsewhere.) Because of this potential need for user interaction, you cannot collape the editing view entirely by dragging the view splitter; you must use the button, menu command (or in the case of results browsers, a double click on the view splitter.)

Added a “Delete” command to the contextual menu and action menu in disk browsers.
Search Sources can be enabled/disabled via the Text Search preference pane.
Option-clicking the close widget in the windows palette will close all windows. (This matches the same conceptual change made to the documents drawer list, as well as the standard behavior for option-clicking the close widget in the titlebar of windows.)
Added rudimentary support for define_method to the Ruby module. Methods defined with it should be listed in the function popup. Yay, metaprogramming.
“Open Counterpart” will ask Xcode for the file’s counterparts when possible.
The items in the “Saved Search Sets” source group (for multi-file searches) now have an “X” widget; clicking the X deletes the search set (after confirmation).
Items in the “Recent Folders” group in the multi-file search sources list now have an “X” widget; clicking the X will delete the recent item from the list (without disturbing the folder that it refers to).
Disk browsers get “New Text Document” and “New Folder” commands on the action and contextual menus. They work pretty much as one would expect.
Script tags in HTML files which DO NOT have a src attribute are now listed in the function popup (those with src are already listed in the “includes” popup). This is similar to the STYLE entry for stylesheets: functions and objects added to the function popup as a result of the script tag are indented beneath the script tag’s entry, to suggest containment.
New Find windows!
There are new Find and Multi-file Search windows; where they overlap, they provide a consistent and modeless interface to BBEdit’s legendary text search and replace capabilities.

If you’re familiar with the old Find dialog, you’ll generally feel at home, but there are some important differences and additions of which you should be aware:

The Find dialog has been split in two, with one window for searching only the front document, and one window for searching more than one document (including folders, arbitrary open documents, BBEdit and Xcode projects, and so forth).
The (fairly confusing) collection of options to configure which text actually gets searched (for single-file searches) has been condensed down to a single pair of “Search in:” options: “Selected text only” and “Wrap around”.
“Selected text only” affects only the “Find All” and “Replace All” operations: if there is a selection range in the front document, this option will search only the selection range if turned on, or the entire document (starting from the top) if turned off.

“Wrap around” affects only the “Next”, “Previous”, “Replace”, and “Replace & Find” operations: if the search reaches the end of the document (or the beginning, if doing a “Previous”), then “Wrap around” will continue the search from the appropriate end of the document.

Keyboard navigation is radically different (as it must be, given the new windows’ modeless nature).
Return or Enter in the “Find” field will do a “Next” in the single-Find window, or a “Find All” in the Multi-File Search window.
Striking the Escape key (not too hard!) will close the window.
The appropriate commands on the Search menu (Find Next, Find Previous, Replace, Replace All, Replace & Find Again, and a new “Find All”) will trigger the corresponding action in the front Find window.
It’s not possible to use the command-key equivalents from the old modal Find dialog for toggling items in the Find window, because those equivalents collide with factory keyboard equivalents (or system standards) for different menu commands. So there’s a new group of keyboard equivalents for controlling Find and Multi-File Search window items. These keys can be set in Preferences -> Menus -> Find Windows.
The factory defaults for these keys are as follows:

Case sensitive Control-shift-N
Entire word Control-Shift-E
Grep Control-Shift-G
Selected text only Control-Shift-S
Wrap around Control-Shift-W
Open search history Control-Shift-H (new)
Open saved patterns Control-Shift-P (new)
If you are in the habit of assigning keyboard equivalents to saved clippings, it’s possible that these defaults may overlap with your clippings. If so, you can of course change the commands from the factory defaults.

In the Multi-file Search window, you can use the keyboard when the search sources list has focus, as follows:
Return/Enter starts the search;
Escape dismisses the window;
Type-to-select works in the list (when it has focus);
Space toggles the selected items;
Delete removes the selected items from the list (after confirmation, and only if they’re eligible as indicated by the “X” widget).
If you find yourself more comfortable with the old interface, you can continue to use it by turning on “Use modal Find dialog” in Preferences -> Text Search.

Search and replace history is now persistent across runs of the application.
Image windows update their content when the backing file changes, making things like developing POVRay scripts a little bit easier.
Changes to the project list user interaction model.
Removed the anachronistic behavior where holding down option while opening project items opened them using their LS/Finder bindings.
Double clicking on a folder no longer opens a disk browser. Instead, it toggles the expansion state of that node.
When the editor is hidden, the projects list works as it did in previous releases. That is

it accepts keyboard focus
return and double-click open the selected items
When the project editor is visible, the project list can either work the same was as it does when the editor is hidden, or it can work in “single-click” mode.

There are two additional secret preferences which control this behavior.

Projects:ProjectsListCanAcquireKeyboardFocus -> BOOL -> NO
Projects:OpenItemsOnSingleClick -> BOOL -> YES
Having the list not accept keyboard focus, among other things, avoids “dancing focus” when opening items via single click.

When the single click setting is set, most single clicks will open the associated document in the attached editor, and put keyboard focus in the editing view.

Certain single clicks don’t result in an open action. (I’m specifically not listing them all here, but the behavior has been carefully designed so that it will feel right in usage. Examples include clicks which would require we spawn a window, clicks which extend the selection, etc.)

Added a “Reveal in Finder” command to disk browser and project windows.
For compatibility with scripts written for pre-9.0 versions of BBEdit, the scripting interface now performs the following name mapping when changing the “text encoding” property of a document:
“Unicode™ (UTF-8)” = “Unicode (UTF-8)”
“Unicode™ (UTF-8, no BOM)” = “Unicode (UTF-8, no BOM)”
“Unicode™ (UTF-16)” = “Unicode (UTF-16)”
“Unicode™ (UTF-16, no BOM)” = “Unicode (UTF-16, no BOM)”
“Unicode™ (UTF-16 Little-Endian)” = “Unicode (UTF-16 Little-Endian)”
“Unicode™ (UTF-16 Little-Endian, no BOM)” = “Unicode (UTF-16 Little-Endian, no BOM)”
Note that this transformation does not operate in the reverse direction; if you get the text encoding property and explicitly compare the name, you will need to update your script.

Integrated Jim’s .ini language module.
C-language files (and all related languages, like Obj-C, C++ and header files) will now show FIXME and TODO items in the function popup. Only ”//” comments are searched, and the comment must start with one of the following: “FIXME:” “FIXME!” “FIX-ME:” “FIX-ME!” “TODO:” “TODO!” “TO-DO:” or “TO-DO!”. The text added to the function popup starts with the first character of the FIXME or TODO and ends with the last non-white character on the same line.
Examples:

// FIXME This little bug could erase the intertubes.
// TODO! Add support for Apple's "Crash Only When Convenient"
The command formerly known as “Open in Separate Window” is now called “Move to New Window”. It will move the current document (or selected documents when invoked from the documents drawer) into a new editing window (removing them from their current editing window.)
There is an additional command “Open in Additional Window” which will open the current document (or selected documents when invoked from the documents drawer) in an additional window that can be edited side by side with the original document.

Both commands are only available for text documents.

Ponies.
Attempting to bring up a contextual menu in the “dead” space at the bottom of a disk browser list now works, presenting you with “globally” available commands New Folder and New Text Document.
The application automatically saves its state (open documents and windows) once per minute, so if something bad happens to your machine, there’s a pretty good chance that the next time you start up, things will be as they were when the event occurred.
Python function decorator names are now detected and colored.
You can drag stuff to the sources list for Text Factory configuration
The Text Factory sources list remembers selected items and twist state between invocations.
Text completion!
BBEdit can now figure out completions for symbols as you’re editing. The preference for controlling when this happens is in the “Editing: General” preferences:

After a delay in typing
If you pause briefly while typing, BBEdit will figure out the completions for what you just typed, and display them.

The delay can be adjusted from the command line if desired:

defaults write com.barebones.bbedit Editor:AutoCompleteDelay -float 0.5 # sets the auto-complete delay to half a second

Only manually
Completion will only take place when using a manual completion command (see below).

Automatic completion can be turned on and off on a per-language basis (in the Languages preferences) if desired. It is off by default for the “Log File” and “Data File” languages.

Completions can be derived from a variety of sources, including (in no particular order and without limitation):

clippings (both language-specific and universal);
ctags symbols computed by running the current document through ‘ctags’;
ctags symbols found in ‘tags’ files in the current document’s hierarchy;
predefined names for the source code language at the point of completion;
language-specific completions;
completions provided by the system spelling system.
Completion may be triggered at any time (whether or not automatic completion is enabled) by using the “Complete” menu command on the Edit menu. By default, F5 is assigned to this command; you can change this equivalent (as usual) by using the Menus preferences.

Note: Text completion completes clippings in the same way that the “Insert Clipping” command used to (and still does). So, the behavior of F5 should be indistinguishable if you were used to using it to complete clippings.

You can also use the Escape (“Esc”) key to invoke text completion. This is off by default, and may be turned on using the command line, as follows:

  1. allow the Escape key to invoke the "Complete" command defaults write com.barebones.bbedit Editor:UseEscapeKeyAsCompletionTrigger -bool YES

Note: Because the Escape key has a special meaning when “Use Emacs key bindings” is turned on (Editing: Keyboard preferences), if you choose to use the Escape key as a completion trigger, you will have to press it twice to invoke completion in this case.

The tab key can now be overloaded to perform certain actions in addition to the traditional “insert a tab” (or the equivalent amount of spaces).
When these actions are enabled, holding down the option key while pressing the tab key will bypass the special actions and insert a tab character.

In all cases, if the special action is not appropriate in the current context, pressing the tab key will result in the default behavior (insert tab character).

The first of these new actions is “go to next placholder.” (Hold down the Shift key to reverse the direction.) This is equivalent to the command on the Search menu. To control this behavior, use the “Use Tab key to navigate Placeholders” preference (Editing: Keyboard).
For refugees from Windows who are used to having Tab indent a line (or selected range of lines), there’s a new preference in Editing: Keyboard: “Allow Tab key to indent text blocks.” When turned on, this setting allows Tab to function as a synonym for Shift Right on the Edit menu (and Shift-Tab as a synonym for Shift Left).
There’s a new color setting in the Text Colors preferences: “Predefined names”. This symbol class is used for words which are not language keywords, but which are predefined by the language’s reference implementation and/or are part of the language’s standard library/framework support and/or have other “special” meaning to developers writing code in that language.
The color may be changed on a per-language basis in the Languages preferences: double-click on the language’s name in the list and examine the Colors tab in the resulting sheet.

Language module developers may use the following constructs to support predefined names:
If a BBLMPredefinedNameList key appears in the module’s property list, it is an array of strings, each of which is a predefined name. (This key is mutually exclusive with BBLMPredefinedNameFileName; you may use one or the other but not both.)
If a BBLMPredefinedNameFileName key appears in the module’s property list, it is a string which names a text file in the module’s Resources bundle directory; the file contains one predefined name per line. (This key is mutually exclusive with BBLMPredefinedNameList; you may use one or the other but not both.)
If BBLMSupportsPredefinedNameLookups appears in the module’s property list and is TRUE, BBEdit may call the module with the kBBLMMatchPredefinedNameMessage. The parameters for this message are the same as for kBBLMMatchKeywordWithCFStringMessage.
In the Languages prefs, the options sheet for Python now has a tab for Python-specific options, in which you can choose the color to use for decorators.
Reworked the existing entries in the CSS clipping set to use the placeholder mechanism.
Added a couple of new useful entries to the CSS clipping set for @media, @import and rule sets.

Added .php5 to the factory default list of language mappings.
Clipping set auto-switching is now more context sensitive. The active clipping set will be picked based on the language of the insertion point. This is a significant improvement particularly when working with languages embedded in HTML. (CSS, JavaScript, Ruby, PHP, etc.)
The list of clippings generated for text completion or Insert Clipping is always language sensitive. Clippings will be picked from
- all appropriate sets for the current language - additional sets appropriate for that language (e.g. HTML for Ruby in HTML or JSP) - possibly the active set (see below) - the universal set

This makes it much more likely that you’ll end up with a useful clipping in the completion set.

The active set is always included for “Insert Clipping”. It is only included in completion set if it is appropriate for the current language, or was a manual pick for the target document. (This avoids having PHP clippings appear in a Python file, for example, because you don’t have a Python clipping set and the PHP set was the last one used.)

You can now review and apply sub-line differences individually in the results of Find Differences.
Yeah, you heard that right.

New command on the Search menu: “Replace to End”. This command provides the pre-9.0 behavior for anyone who needs it: everything is processed from the current insertion point or start of the selection range to the end of the document.
When setting up the default browser list for HTML previews, we now recognize application stubs created by VMWare 2.0’s “Unity” feature, so that you can preview your documents in FireFox or Windows IE while running in VMWare 2.0.
If you have an existing browser list, you can as always add these applications to the list in the “HTML Preview” preferences, either manually or by using the “Find All” button.

Added a new clippings placeholder: #selectionorplaceholder placeholder_name#.
If the document has a selection when the clipping is inserted, the placeholder will be replaced with the selected text. If there is no selection, a placeholder named “placeholder_name” will be inserted into the document.

This placeholder is particularly useful when building “dual-mode” clippings – that is clippings that are designed to be inserted via traditional means (the clippings palette, keybindings) or via the completion mechanism.

The file filtering interface supports a new term: “File Path”. This is a simple string match against a given file’s full path.
The Text Files preference pane carries a new option: “Trim trailing whitespace”. If this preference is enabled, BBEdit will trim all trailing non-vertical whitespace from the file before writing it out.
The ASCII floater uses the “standard” names for NUL, BEL, etc. for characters below space (0x20).
If Perforce is installed, the bbedit command line tool will attempt to map depot specs and client specs into file paths.
You can now enter (or paste) a Perforce depot specification in the “Open File by Name” dialog and BBEdit will ask Perforce to resolve it. (You’ve been able to use Open Selection on a Perforce spec for a while now, so maybe this is more of a bug fix than a feature addition.)
Language modules may now be installed by double-clicking them (or by drag-and-drop to the application). Plug-ins and language modules both offer an “Install and Relaunch” option.
BBEdit now supports .ini-style preferences (primarily for setting Expert settings), as follows:
The existing .plist is still the preferred preference storage.

If a preference key does not exist in CFPreferences, we then look in ~/.bbedit for a matching preference key.

Our two-stage namespace has been preserved, so if the old preference was was:

<key>StatusBar:SGIButton</key>
<true/>

then the .bbedit file would have this data:

[StatusBar]
SGIButton = 1
If neither preference system possesses a setting, the factory default is used.

For those who feel the need to, you can create a section in your .bbedit file:

[PreferINIPrefs]
Which will cause BBEdit to ignore things set in the GUI, and prefer those settings.

If you do this, note that the UI does not, and will never, track changes to the .bbedit file.

There’s a new command on the View menu: “Go Here in Terminal”. It’s enabled when the active document exists on disk; choosing it will open a Terminal window with the current working directory set to the document’s parent directory.
BBEdit now has a “Sleep” command. The menu command is on the application menu, and the application responds to kBBEditSuite/kAESleepApplication.
Control over saving of existing documents is in place with an expert pref:

defaults write com.barebones.bbedit Misc:SaveTitledDocumentsBeforeSleeping -bool YES

If it’s set to YES, then any document that exists on disk will be saved before sleeping. If set to NO (the default), the document gets an autosave which will be restored when the app comes up again. (Untitled unsaved documents are always autosaved, irrespective of the preference setting.)

When BBEdit gets quit because of a system shutdown, restart, or user logout, it now does a “Sleep BBEdit” in order to restore as much of the application state as possible when starting back up. (This means that you may not be prompted to save new or unsaved documents, since they will be autosaved when the application sleeps.)

There’s now an expert preference for disabling passive FTP, in order to deal with hosts that misbehave with given the “PASV” command.
Passive FTP can be disabled per host, per domain, or globally:

FTP:AllowPassiveFTP:foobar.example.com - only for "foobar.example.com" FTP:AllowPassiveFTP:example.com - only for servers in "example.com" FTP:AllowPassiveFTP - global preference

Our recommendation is that you disable per host in preference to globally or per-domain, but at the end of the day, do whatever works. :-)

There’s now an expert preference for controlling the use of ssh compression when using SFTP, in order to deal with hosts that can’t handle ssh compression.
SSH compression can be disabled per host, per domain, or globally:

FTP:EnableSSHCompression:foobar.example.com - only for "foobar.example.com" FTP:EnableSSHCompression:example.com - only for servers in "example.com" FTP:EnableSSHCompression - global preference

Our recommendation is that you disable per host in preference to globally or per-domain.

(Note that ssh compression is on by default.)

There’s greater control available over whether documents on remote servers (FTP/SFTP) or unmounted volumes are opened when automatically reopening documents at application startup. BBEdit will now prompt you if you have one or more documents opened via FTP/SFTP, and give you the opportunity to skip them or to reopen them.
The following expert prefs may be used:

Startup:AllowVolumeMount # If set to NO, BBEdit will not attempt to mount a volume # containing a document it wants to reopen. defaults to YES.

Startup:ReopenRemoteDocuments # If set to NO, BBEdit will not attempt to open any # documents that were opened from FTP/SFTP servers. Defaults # to YES.

Startup:PromptToReopenRemoteDocuments # If set to NO, BBEdit will open remote documents without # asking, if Startup:ReopenRemoteDocuments is set to YES. If # set to YES, BBEdit will prompt to give you the opportunity # to skip remote documents. Has no effect if # Startup:ReopenRemoteDocuments is set to NO. Defaults to YES.

Lasso is now a fully supported language, with syntax coloring, functions listed in the function popup, and automatically generated fold points.
By request, the Scratchpad window gets “Save a Copy”.
The bbdiff command-line tool now supports an additional command form:
bbdiff [options] file /path/to/some/folder

If /path/to/some/folder/file exists, then file will be compared against /path/to/some/folder/file. Otherwise, an error is reported.

The command line tool can make BBEdit compatible ctags files:
bbedit --maketags [optional list of dirs]

This can be used as an express way to invoke exuberant ctags, as follows:

  1. generate tags for the directory rooted at CWD # and write the "tags" file in CWD bbedit --maketags
  1. generate tags for each of the supplied directory trees, and # create a "tags" file at the top of each directory tree bbedit --maketags /path/to/some/directory /path/to/some/other/directory

Language modules can now specify a default value for the “Reference URL Template” language-specific preference. This is specified in the plist as follows:
<key>BBLMReferenceSearchURLTemplate</key> <string>http://www.example.com/foobar.cgi?SYMBOLNAME</string>

There’s a new color setting in the Text Colors preference: “Numeric Constants”. This can also be adjusted on a per-language basis in the appropriate language’s settings (in the “Languages” preferences).
Next to the file path display in the editing view toolbar, there is a small menu control. Clicking this control displays a popup menu with commands to copy the file’s name, path, or URL. (These commands are also available via Edit -> Copy Path.)
The Go To Line sheet can take relative input: Entering a value prefixed with +/- will add the value to the current line number. For example, with line 100 selected, “+75” will move to line 175; “-75” will go to line 25. An unsigned number will move to the specified line number, as before.
There’s a new setting in the Windows preferences: “Cascade new windows”. When turned ON (the factory default), new windows (or documents with no saved state) are cascaded down-and-right, beginning with the placement and size determined by “Save Default Window” (if such exists). When turned OFF, new windows (or documents without saved state) are placed in the same location every time.
Disk browsers and project windows get an “Open with Finder” command on the contextual menu and action (gear) menu. Choosing this command asks the system to open the selected items, which in turn may open them in an application other than BBEdit.
The contextual menu in text views gets a new command: “Move Selection to Scratchpad”. This will append the selected text to the end of the Scratchpad, and delete it.
Added “Go Here in Disk Browser” to the View menu and to the contextual and action menus for disk browsers and project windows. Choosing it will open a disk browser on the selected item (if it’s a folder) or selected item’s directory (if it’s a document or a file in a project list or disk browser).
Two new commands on the contextual menu in text views: “Find all …. in Selection” and “Replace all … with … in Selection”. These commands use the current search state (same as what drives the commands on the Search menu). “Find All…” will create a results window. If the replace string is empty, then “Replace all” will change to “Delete all” to reflect the behavior.
There’s a new command on the Search menu, which appears right below the “Multi-File Search” command: “Search in …”.
If a project or disk browser is the front window, then this command’s name reflects the name of the project, or the name of the directory that you’re currently browsing in the disk browser.

Choosing this command will open the Multi-File Search window with the project (or disk browser’s current directory) selected as the source for the multi-file search. Make any desired adjustments to the search settings and then start the search (or just hit Return/Enter and you’re off and running).

If the Multi-File Search window is in front, the command will target the frontmost (Z-order) project or disk browser, whichever occurs first.

The same command is available on the action (‘gear’) menu in projects and disk browsers as well.

Added a feature to the language module interface for giving the module control over resolution of include file references.
If the language module has

<key>BBLMCanResolveIncludeFiles</key> <true />

in its plist, then BBEdit will send kBBLMResolveIncludeFileMessage for every include chosen off the includes menu. The param block will include a CFStringRef with the name, a CFURLRef to the document on disk (which may be NULL) and a place for you to put a CFURLRef when returning.

If the module returns NULL and noErr, then BBEdit will assume that the module declined to do anything with the string and will look for the file as usual.

If the module returns a non-NULL URL, BBEdit will resolve it, so the module can make a file://, http://, FTP or SFTP URL and the right thing will happen. If the module returns something other than noErr, BBEdit will not attempt anything else with the include and will report the error.

The Menus preferences now has a group of commands so that you can assign keyboard equivalents to operations in FTP/SFTP browsers, if desired.
New option in the Python language settings (Preferences -> Languages and then double-click on the Python item in the languages list): “Scan HTML strings for functions”. When turned on (the default, and 9.0 behavior), items in HTML code in triple-quoted strings are shown on the function menu (as though the code existed in a freestanding HTML document); when turned off, they don’t.
There is an option to suppress callouts embedded in comments from the function menu. See Preferences -> Text Status Display.
There’s a new setting in the “Editing” tab for language-specific preferences (Preferences -> Languages): “Tab width”. Edit the value here to set a language-specific value for the default tab width.
BBEdit now implements the necessary hooks so that the following JavaScript functions now work when using “Preview in BBEdit”:
window.alert
window.confirm
window.prompt
window.onbeforeunload

JavaScript user interaction is disabled during auto-reloads that BBEdit performs as you type or save your documents.

window.onbeforeunload is not triggered for an auto-reloads, or on window close.

Additionally, the “Choose” button for <input type=”file”> elements is now functional.

If the list of a results browser is modified (by deleting items from the list), a confirmation is required to close the results window.
Disk browsers can now explore tarballs (.tar, .tar.gz, .tgz files). When an eligible file is in the listing, it will have a disclosure triangle next to it. Twist it open to reveal the files and directories within. As with other items displayed in disk browser listings, you can view files in the editor view, or double-click them to open in a separate window for editing.
Added an additional Apple Event parameter for programmatically determining a “fallback” encoding, in cases where the file’s encoding could not be automatically determined:
#define keyFallbackEncoding 'RdFB' // typeLongInteger, same semantics as keyReadEncodingValue

The “Run Unix Filter” action in text factories is now more flexible. Previously these required a unix executable (+x mode).
Unix executables continue to work as they have in the past.

If the chosen ‘filter’ is not an executable, but has a #! line, is it automatically run for you.

All other ‘filters’ log a reasonable error.

When choosing “Don’t Save” from the confirm save before Preview prompt (when preview is working in Ask mode), the document is previewed through a temporary file. (The previous action was identical to cancel; a no-op.)
The various “reveal in Finder” operations (explicit command, or click on the document’s icon in an editing view toolbar) will now ask PathFinder to do the work, if it is running.
“Move to New Window” is enabled in for project windows containing only one document.
Added support for using ‘space’ (modified by at least the command or control key) as a keyboard shortcut.
Auto-save now works for all document classes for which auto-save is approprate (i.e. not projects, which are already autosaved), not just text documents. Untitled documents are now remembered with saved application state (including sleep) and restored to their correct content and position as necessary.
If writing a backup file requires elevated privileges, BBEdit can help you out.
Added support for Python 3 to the #! -> Check Syntax command.
You can now use the scripting interface to create new items in a project:
tell application "BBEdit"

tell project document 1

-- add a file or folder:
make new project item with properties {file:POSIX file "/Users/siegel/p4/trunk/BBEdit/dox/"}

-- add a URL (with optional name):
make new project item with properties {URL:"ftp://foo.example.com/", name:"Mumble"}

-- add a collection (name required):
make new project collection with properties {name:"fumble"}

end tell

end tell

BBEdit uses Growl to notify upon completion of some actions (Replace All, Compare Folders, Multi-file Search/Replace, and Text Factory execution).

Version 8.2.4 | Release Date: 2006-02-20 | Download
No changes specified