-*- coding: utf-8; tab-width: 4; mode: markdown; -*- version 12.6 (412031) (2019-02-18) * This version of BBEdit requires macOS 10.12.6 or later. It will not run on previous versions of macOS or Mac OS X. * BBEdit is now a sandboxed application. “App Sandboxing” is a term that refers to a collection of security technologies built in to macOS. Sandboxing is intended to protect you and your data by limiting the operation of applications to their intended use, which in turn makes it harder for malicious software or accidental misuse to cause data loss or damage to your computer. One of the core concepts of App Sandboxing is that BBEdit, as a sandboxed application, is not allowed to use any of your files or folders without your explicit permission. You can grant this permission in one of a small number of ways, including (but not necessarily limited to): - Asking BBEdit to open a file from the Finder by double-clicking it; - Dragging a file from the Finder on to BBEdit’s application icon; - Using BBEdit’s “Open…” command to choose a file or folder. However, as an advanced developer tool, BBEdit frequently requires access to files or folders that that you may not have specifically asked it to open, for safe and legitimate reasons: - If you have located BBEdit’s application support folder in Dropbox or iCloud Drive, BBEdit needs to be able to figure out where the folder actually is, and be able to use that location; - When opening a document, BBEdit needs to know: - whether the file is under revision control with Git or Subversion; - whether there are one or more .editorconfig files which control editor options for the file; - whether any ctags data is available to support BBEdit’s completion and "Find Definition" features; - When previewing a file with unsaved changes, BBEdit needs to be able to write a temporary file out in the same directory, so that relative links within the file remain correct; - If you have turned on “Make Backups” in the Text Files preferences, BBEdit needs to be able to write backup and auto-recovery files in the same directory as the file being saved; - The “Open File by Name” feature needs to be able to examine all possible directories that may contain files for which you're searching, including some that you may never have used before in BBEdit; - Many dialog boxes in BBEdit which allow you to choose a file or folder give you the choice of directly entering a file path; ...and many more similar cases. Without unrestricted access to your files and folders, many of BBEdit’s most useful features, from the basic to the most powerful, won't work at all; or they may misbehave in unexpected ways. At the very least, this hinders your ability to work done. In order to resolve this fundamental conflict between security and usability, we have devised a solution in which BBEdit requests that you permit it the same sort of access to your files and folders that would be available to a non-sandboxed version. For this reason, the first time you start BBEdit, it will prompt you to allow this access. The prompt will not be repeated; so if you decline to allow this access and later reconsider, go to the Application preferences, and click on the "Allow" button in the "Sandbox Access" section. This in no way compromises your security or that of your computer while using BBEdit, but does allow BBEdit to function at its fullest potential. If you have been using a previous non-sandboxed version, your existing settings and support folder contents are unaffected by this change. * Because of restrictions imposed by App Sandboxing, we had to make some changes in how BBEdit interacts with iCloud Drive when looking for support folder items. In particular, BBEdit is not able to look for, nor can it use, support folder items in your top-level iCloud Drive folder. If you were previously using `iCloud Drive/Application Support/BBEdit` for support folder items, please follow these instructions: 0. Look in your iCloud Drive folder. If there is a folder named "BBEdit" there which has the BBEdit application icon imprinted on it, skip to step 4. 1. Start BBEdit. If necessary, allow sandbox access. 2. Quit the application. 3. You should see a new "BBEdit" folder in your iCloud Drive. 4. Open the "BBEdit" folder in your iCloud Drive, and use the Finder's "New Folder" command to create a new folder inside of it. Name the new folder "Application Support". 5. Open up iCloud Drive/Application Support/BBEdit/, and copy its *contents* into the new folder you've just created. So to summarize, what you're doing is moving the *contents* of `iCloud Drive/Application Support/BBEdit/` *into* `iCloud Drive/BBEdit/Application Support/`. The next time you start BBEdit, it will use your support folder contents from the new location. === If you have *not* been using iCloud Drive for your BBEdit support folder items, we recommend that you consider an alternative such as Dropbox. This is because of some intentional idiosyncrasies in how macOS handles items in application-specific iCloud Drive folders. However, if you simply *must* use iCloud Drive: 0. Look in your iCloud Drive folder. If there is a folder named "BBEdit" there which has the BBEdit application icon imprinted on it, skip to step 4. 1. Start BBEdit. If necessary, allow sandbox access. 2. Quit the application. 3. You should see a new "BBEdit" folder in your iCloud Drive. 4. Open the "BBEdit" folder in your iCloud Drive, and use the Finder's "New Folder" command to create a new folder inside of it. Name the new folder "Application Support". 5. Make a new window in the Finder, and then use the Finder's "Go to Folder" command and enter "`~/Library/Application Support/BBEdit/`" in the panel that appears. 6. Copy the *contents* of this folder into the Application Support folder that you created in step 2. The next time you start BBEdit, it will use your support folder contents from the new location. Additions --------- * Added a "Folders" submenu to the main application menu. This menu gives quick access to BBEdit's application support folder (the same list that is available in the Folders tab of the Setup window). This is useful on its own merits, but is of particular relevance in the application sandbox, in which support folders can be buried in locations that are not easily accessible from the Finder. Changes ------- * Made a change so that double-clicking anywhere in a syntax-colored number will select the entire number, even if it contains a decimal point (which would otherwise be a word break). * When running on macOS 10.14.1 or later, BBEdit now uses built-in OS support for performing operations which require privilege escalation, namely authenticated saves and (if escalation is necessary) installation of the command-line tools. * If the application resets the evaluation period, the splash screen at startup will now advise you of this, via an alert. (The evaluation period gets reset when we've made significant changes to the application which we believe would warrant a full trial.) * Reworked the way BBEdit runs AppleScripts from the built-in Scripts menu and other sources, for sandbox compatibility and to resolve various longstanding issues. AppleScripts are now run in a separate process, which means that any previous differences in scripting behavior as the result of running a script within BBEdit or from the Script Editor should be a thing of the past. * If "Keep folders on top when sorting by name" is selected in the Finder's preferences when BBEdit starts up, FTP browser windows will now obey the option and behave accordingly. * Changes to expert preferences from the command line (via "`defaults write`") are allowed to take effect immediately (except in documented cases where the preference change is intended to apply at a specific point in time, such as when restarting the application). * The panel that appears when using "New Disk Browser" from the File menu now contains a helpful prompt. * The Save panel used for in response to "New Project Document" now has a prompt to clarify its purpose. * There is now an expert preference for controlling SSH "keepalive" behavior. If you have problems with your SSH server closing the connection after a period of non-use (which will subsequently cause errors in BBEdit), you can tell BBEdit to send a periodic "keepalive" message to while connected to the server. This is configurable per host, per domain, or globally. Determining the appropriate value may require some experimentation, but 90 seconds is probably a good starting point. ``` # only for "foobar.example.com" defaults write com.barebones.bbedit SSHServerKeepaliveInterval:foobar.example.com -int 90 # only for servers in "example.com" ast">defaults write com.barebones.bbedit SSHServerKeepaliveInterval:example.com -int 90 # global preference defaults write com.barebones.bbedit SSHServerKeepaliveInterval -int 90 ``` We recommend that that you adjust this setting per host whenever possible, rather than globally or per-domain. * The "Text Options" sheet gets a setting for the tab width, and an indicator when the file's settings are managed by EditorConfig. * BBEdit-specific print settings are now available in the Print panel when printing a text document. As a result, we have removed the "Printing" section from the "Text Options" panel, and restored the latter to its former simplicity. * The displayed path for files opened from within Zip archives or tarballs is now abbreviated using a tilde, if it is within the current user's home directory. Fixes ----- * Modernized the internals of the #! script and Unix executable runner, SFTP operations, and shell worksheets. * Rewrote the internals of the built-in software updater to be sandbox-friendly. (This does not apply to Mac App Store builds.) * Updated the privilege escalation internals (used for authenticated saves and command-line tool installation when running on macOS versions prior to 10.14.1) for compatibility with app sandboxing. * Fixed bug in which the initial line number in "Go To Line" would not take into account any folded ranges in the text. * Fixed bug in which dragging the title bar icon in a window would drag the full-sized icon image. * Fixed bug in which the Windows palette didn't re-sort when the active document changed in an open window, or when certain other changes were made to open documents or windows. * Fixed bug in which the font smoothing expert preferences were inappropriately allowed to disable font smoothing while printing. * Fixed bug in which type-to-select in FTP browser windows would behave unpredictably, because as it turned out, the system was helpfully attempting to match in columns other than the "Name". (Thanks to [Daniel Jalkut](https://www.red-sweater.com/) for figuring this out. Go buy one of his products or [become a member of his podcast](https://coreint.org/membership/).) * Fixed bug in which SCSS interpolation structures (`#{...}`) would confuse the SCSS block parser and result in incorrect fold generation and function listings. * Fixed bug in which folders that were twisted open when saving state for a disk browser (when quitting) were selected when the disk browser window was reopened at startup. * Fixed crash which could occur if a document was closed while processing a (possibly accidental) command-click (the gesture to open an URL). * Fixed bug in which Command-Shift-click on an URL did not open it in the background, as it should have. (The intended behavior is to open the URL in its designated application while keeping BBEdit active.) * Fixed bug in which certain inline-input edits which involved deleting in-progress input at the beginning of a hard line in a soft-wrapped document would leave the insertion point in the wrong place, and cause unexpected arrow-key navigation afterwards. * Made a change to improve text encoding detection in XML files whose filename extensions didn't map to XML. As long as the file has an exact "` Text Display submenu, did not mark the document's state dirty. * Fixed bug in which search results text generated for items inside of Zip archives or tarballs did not actually include the archive-relative path to the file. * Made a change so that `bbedit --maketags` ignores the `ctags` present in the freestanding Xcode command-line tools installation, in case those are installed. * Fixed bug in which clicking on an internal link in an unsaved or untitled HTML document that was being live previewed would report an error trying to open an `applewebdata:` URL. * If BBEdit can't send save or close notifications because you previously denied it permission to send Apple Events to the application which needs them (usually a file transfer client from which you used "Edit in BBEdit"), you'll now get an alert to this effect; the help button in the alert takes you to [a page which explains how to fix things](https://www.barebones.com/support/bbedit/ODBAutomationError.html). * Fixed bug in which "Sort Lines" would sometimes inexplicably stall for a second or more in the middle of the sorting process. * Fixed a bug in which in-text fold indicators would draw over the gutter or line number bar while scrolling, in cases where the document had been scrolled horizontally until the indicator was out of view to the left. * Corrected the appearance of text fields in various editing window popovers when running on macOS 10.14. * Fixed omission of `onmouseleave` from the HTML5 global attributes list, which caused an error to be reported for any element which used this attribute. * Fixed a bug in which trying to edit a Sandbox Profile file would go nonlinear. * Fixed crash which would occur when opening the Languages preferences after moving the BBEdit application support folder while the application was still running (which you should never do, but we can't stop you). *fin*