BBEdit
- 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 filemake-backup-files: 0â”> never back up this fileIf 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 isit 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:
- 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 setThis 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
onwould 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 filemake-backup-files: 0â”> never back up this fileIf 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 isit 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:
- 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 setThis 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/folderIf /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:
- generate tags for the directory rooted at CWD # and write the "tags" file in CWD bbedit --maketags
- 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.onbeforeunloadJavaScript 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 keyReadEncodingValueThe â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


