BBEdit 12.0.2 Release Notes

All groups and messages. Dec 03, 2017 Version 12.0.2: Fixes: In order to work around a crash in the OS (Radar 35052088), BBEdit will no longer submit recently opened items to the system-wide 'Recent Items' list that appears on the Apple and Dock menus. We regret any inconvenience this may cause, and hope that it is strictly temporary.

Note that you can rename the menu item by renaming the script, and can assign the menu item a keyboard shortcut in the BBEdit preferences, under Menus & Shortcuts. CLion Integration ¶ clang-format is integrated into CLion as an alternative code formatter. BBEdit 12.0 or greater; Go 1.8 or greater; Xcode 6 or greater (particularly the command line tools package) Install. Download the latest release and install with BBEdit. The package should be cloned into a working directory. The Makefile will build the sources. Oct 21, 2017 Bare Bones Software has issued BBEdit 12.0.1, the first maintenance update to the company’s recently released version 12 (see “Modernized BBEdit 12 Manipulates Columnar Data and More,” 14 October 2017). The long-standing text editor addresses the “probable cause” of a crash that occurred in macOS 10.13 High Sierra, improves stability.

BBEdit 12.0.2 contains fixes for reported issues, as well as refinements tonew features that were added in BBEdit 12.0.

For details on all the new features and enhancements available in BBEdit 12, please see its release notes.

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 12.0.2 requires Mac OS X 10.11.6 or later, and is compatible with macOS 10.13 'High Sierra'.

Additions & Changes

  • This release contains no new features or changes.

Fixes

  • In order to work around a crash in the OS (Radar 35052088),BBEdit will no longer submit recently opened items to thesystem-wide 'Recent Items' list that appears on the Apple andDock menus. We regret any inconvenience this may cause, and hopethat it is strictly temporary.

  • Fixed bug in which menu items indicated by searching for themusing the Help search box would be disabled in situations wherethey shouldn't have been.

  • Fixed bug in which the 'Update' scripting event would return anerror.

  • BBEdit now writes out temporary files for live preview windowswith 644 permissions, so that other processes (such as Apache)can read the file if necessary.

  • Fixed a bug in which a request from the command line (orelsewhere) to open an sftp URL without a username (or password)would return a -50 error.

  • Fixed a memory leak in the SFTP client listing code.

  • Fixed bug in which twisting open an item in the FTP/SFTP browserwould not always show its contents.

  • Fixed a collection of bugs that conspired to slow down SFTPoperations, particularly the initial connection to the remoteserver.

  • Fixed a bug in which attempting to create a new FTP/SFTP itemwith the same name as one that was just deleted would report thatan item with the same name already existed.

  • Fixed a bug in which the FTP/SFTP navigation popup menu wouldnot display all of the folder names in the ancestry chain if twoadjacent folder names were spelled the same. (Thanks,NSPopUpButton, you're a real big help.)

  • Fixed a regression in which 'Save [a Copy] to FTP/SFTP' serverdidn't pick up on an active connection in cases where an FTP/SFTPbrowser window was open.

  • Fixed bug in which dragging the title bar icon from a windowdisplaying a document opened via the built-in FTP/SFTP supportwould drag the location of its backing file, and not the remoteURL.

  • Fixed bug in which the 'Save [a Copy] to FTP/SFTP Server' paneldidn't automatically connect to the destination server in caseswhere it had enough information available to do so.

  • After connecting to a server, the FTP/SFTP browser window willmove keyboard focus to the listing view; and after disconnecting,it will move focus back to the 'Connect' button. This will save apress or two of the Tab key.

  • Fixed bug in which disconnecting from an SFTP server would nevertake less than two seconds, which made processes like reopening alot of SFTP files at application startup take much longer thanthey should have.

  • Made a change to SFTP I/O to improve performance and CPUefficiency when waiting for data to arrive.

  • Fixed a bug in which the SFTP client would report a successful'change working directory' operation even if the desireddirectory did not exist. Usually this would cause problems whendeploying a site and adding directories that were not present theremote server.

  • Fixed bug in which a -1704 error would be reported when choosinga directory from the title bar menu for a document that had beenopened via the built-in FTP/SFTP support.

  • BBEdit will (once again) warn about malformed UTF-8 files ratherthan simply refusing to open them.

  • Fixed bug in which the 'Allow the Escape key to trigger textcompletion' preference was ignored, and the Esc key did notwork to trigger completions.

  • Fixed bug in which no completion sources were allowed forplain-text languages (Text File, CSV, TSV), which was notnecessarily a useful outcome.

  • Fixed layout bugs in the completion panel with certain font/sizecombinations.

  • Made ctl-n and ctl-p functional again in the completionpanel.

  • Fixed crash which would occur when quitting the applicationwhile the completion panel was open.

  • Fixed bug in which the mouse/trackpad event that causeddismissal of the completion panel wasn't passed through to thetext afterwards.

  • Fixed a bug in which the initially selected item in thecompletion panel wasn't scrolled into view when it should havebeen.

  • Fixed a bug in which invoking a clipping from the completionpanel would lead to a bizarre chain of events in which thecompletion panel ran an AppleScript with a display dialog verbwhich accepted user input, and the Return or Enter key was usedto accept the input in the dialog. The result was that the scriptwould run again, lather rinse repeat.

  • Fixed a bug in which completions for predefined selectorsprovided by the CSS/SCSS module would be out of order, leading tounexpected behavior in the completion panel.

  • Fixed a bug in which the first completion suggested by adocument's language would be selected in the list, even if othercompletions were before it (such as clippings).

  • Rewrote ancestor discovery code (used for finding .git,.svn, and such like) to improve performance as well as behaviorwhen used for files that aren't on the boot volume.

  • Fixed crash which could occur when certain changes were made inthe Font panel while adjusting a font preference.

  • Fixed bug in which the 'New Text Window' and 'All RunningBrowsers' commands were left out of the 'Preview In' submenu onthe Markup menu.

  • Fixed bug in which the window resulting from a Preview/New TextWindow operation didn't have the desired title.

  • Fixed bug in which certain errors reported during attempts toautomatically back a file up were not reported correctly.

  • Fixed bug in which contextual-menu commands in the CurrentlyOpen Documents list of a project sidebar would be targeted to theProject list instead.

  • Made a change to the 'Rearrange Columns' panel so that it can beexpanded horizontally to accommodate long column header names.

  • Fixed a bug in which preview temp files generated for livepreviews didn't have the appropriate extended attributes whichallowed them to be excluded from various site operations.

  • Fixed crash when trying to remove customized settings for aspecific language (in the Languages settings).

  • Fixed bug in which window activation changes were mismanaged bythe application. Although there weren't any reported bugsattributable to this, it was wrong and needed to be fixed.

  • Fixed bug in which zooming (option-click on the green button, orkeyboard equivalent for the Zoom command) a window would notmaximize it to the correct height.

  • Fixed bug in which folder aliases/symlinks in disk browsersweren't correctly followed when double-clicked.

  • Fixed a bug in which the non-focused pane in a split text viewwould drift when lines were added or removed while editing.

  • Keyboard events that arrive during mouse tracking are nowreposted when the mouse tracking is completed, rather than beingignored and beeping.

  • The 'handle' used for view splitters in some situations is nowtinted using the prevailing color, rather than being drawn black.

  • Fixed crash which would occur when switching an existing TextFactory action to a one that required certain parameters to bepresent.

  • Fixed bug in which 'Bring All to Front' didn't.

  • Fixed a bug in which typing was visibly slow while editingdocuments in languages implemented by codeless language modules(although the language module was itself not the source of theproblem).

  • The factory default for showing Git ignored files in diskbrowsers and project folders has been changed, so that such itemsare now visible. The 'Git Ignored Files' item in the filter menu(magnifying glass in the sidebar) can be used to adjust thissetting.

  • Fixed a latent bug that could have caused a crash when draggingtext into the Find or Multi-File Search text boxes.

  • Corrected behavior when attempting to initiate dragging from abackground window; the drag now starts correctly rather thanactivating the window (and potentially obscuring thedestination).

  • Fixed bug in which multi-file search/replace results windowswould leak a small amount of memory after use.

  • Fixed bug in which Differences windows would leak a small amountof memory after use.

  • Fixed bug in which clicking in the 'scroll' area of a horizontaltext view scrollbar would fail to scroll in the appropriatedirection.

  • Fixed a singleton memory leak.

  • Made a change to work around an OS application frameworkbehavior which would sometimes cause Apple Events to bedispatched incorrectly, which in turn could lead to unpredictableand undesired behavior during various operations.

  • Fixed incorrect baseline layout of printed page headers whenusing certain fonts.

  • Fixed a bug in which quitting the application while it washidden (by using Log Out, Restart, Shut Down, or the Quit menu onthe dock icon) would fail to save its internal state. This wouldresult in data loss in cases where the state included unsaveddocuments that hadn't recently been autosaved.

  • Fixed a memory leak when putting attributed text on thepasteboard.

  • Made a change to prevent a crash when closing the Clippingsand/or Insert Clipping panel while running on 10.11.6.

  • Fixed bug in which files which were explicitly added to aproject (vs being within a folder that had been added to theproject) were not filtered correctly during multi-file searchoperations.

    Please note that if you use the Multi-File Search window to specifyindividual files, and you are using a file filter, the files youspecify must match the filter or they will not be searched.

  • Fixed a bug in the PHP function scanner/fold generator in whichit didn't properly handle certain kinds of brace/paren/bracketnesting, and so wouldn't correctly generate folds for arrays incertain files.

  • Symlinks/aliases are now allowed for items in the PreviewFilters and Preview CSS application support folders, which makesit easier to work with (for example) preinstalled Markdown toolsand style sheets in existing project directories.

  • Restored heading level indicators for entries in the functionmenu for Markdown documents.

  • Fixed a memory leak which would occur when closing the Find orMulti-File Search windows.

  • Windows are once again listed on the application's Dock menu.Windows containing multiple documents will have those documentsdisplayed in a sub menu for the window's item.

  • Fixed bug which caused the tick marks used in vertical scrollbars to be drawn in an inverted coordinate system (and thus inthe wrong place in the scrollbar track) on macOS 10.11 and 10.13.

  • Made a change to the startup progress mechanics so that theprogress panel doesn't appear unless the application takes morethan a couple of seconds to restore its saved state. Theapplication is also a better citizen during state restoration.

  • Added search keywords to the Editing preferences for thepinch-to-zoom control.

  • Made a change to display the name of each remote file that isbeing reopened at startup, rather than its entire URL (whichusually got truncated).

  • The 'Unix Shell Script' color scanner is now better aboutheredocs which begin with a '-' after the '<<' opener, andbetter about whitespace between the '<<' and the first string.

  • If the user had previously done 'Skip This Version' in responseto a Software Update check, manual 'Check for Updates' wouldcease to offer updates for that version. Now, a manual 'Check forUpdates' will always offer the current version if it is newerthan what is running. (Automatic updating will continue to honor'Skip This Version'.)

  • Fixed a bug in which the application wouldn't remember whichfloating palettes were open, in cases where the application wasquit while in the background (as well as when quit from theforeground, in some situations).

  • Fixed bug in which BBEdit would open an untitled text documentat startup when the 'New text document' application preferencewas set, even in situations when non-text documents had alreadybeen opened.

  • Fixed bug in which Command-D didn't work to dismiss the 'do youwant to save' panel on keyboards whose layouts changed dependingon whether the Command key was down (Dvorak+QUERTY being theproximate example).

  • Fixed case in which the application would crash if it ran out ofmemory while saving a sufficiently large document with 'Striptrailing whitespace' turned on.

  • The PHP fold generator was a little too aggressive aboutgenerating folds for paren and bracket ranges, and now only doesso when there's at least one line break in the range.

  • Fixed a bug in which the 'Use LCD font smoothing when available'system preference was not honored when drawing various UIelements.

  • Fixed a bug in which expanded package nodes in a project (orinstaproject) were not rescanned when changing file filtersettings.

  • Fixed bug in which a nib-backed script would report a -43 errorif the dialog box was cancelled.

  • Fixed bug in which items in the Currently Open Documents panecouldn't be clicked on when a project was opened with the'Project' pane collapsed.

  • Fixed bug in which unsplitting a text view, switching to adifferent document in the same window, and then switching back tothe previous document would leave a 'phantom' scrollbar in thewindow, which would crash when clicked on.

  • Fixed bug in which closing the main 'HTML Tools' palette wouldremove menus used by its buttons from the main menu bar, andsubsequent invocations of the palette would be missing thosemenus until the application was restarted.

  • Fixed bug in which clicking in the 'page left' or 'page right'area of the horizontal scrollbar in lists (such as searchresults) would scroll in the wrong direction.

  • When creating a new Text Factory window, it is now populatedwith an initial step, saving a click on the '+' button.

  • Made a change so that auto-pairing of * and _ is no longerdone within Markdown code runs (inline or fenced).

  • Fixed crash which would occur when trying to use thePlaceholders command on a scratchpad document.

  • Fixed bug in which glyphs for the Return or Enter keys were notdisplayed in the Menus & Shortcuts preferences and otherlocations.

  • Fixed bug in which RCS keyword filtering during comparison wouldignore only the first keyword on the line.

  • Fixed bug in which downloading the user manual over a very slowInternet connection would run the application out of memory andcrash if the process took long enough.

Bbedit 12 license

fin

ClangFormat describes a set of tools that are built on top ofLibFormat. It can support your workflow in a variety of ways including astandalone tool and editor integrations.

Standalone Tool¶

clang-format is located in clang/tools/clang-format and can be usedto format C/C++/Java/JavaScript/Objective-C/Protobuf/C# code.

When the desired code formatting style is different from the available options,the style can be customized using the -style='{key:value,...}' option orby putting your style configuration in the .clang-format or _clang-formatfile in your project’s directory and using clang-format-style=file.

An easy way to create the .clang-format file is:

Available style options are described in Clang-Format Style Options.

Vim Integration¶

There is an integration for vim which lets you run theclang-format standalone tool on your current buffer, optionallyselecting regions to reformat. The integration has the form of a python-filewhich can be found under clang/tools/clang-format/clang-format.py.

This can be integrated by adding the following to your .vimrc:

The first line enables clang-format for NORMAL and VISUAL mode, thesecond line adds support for INSERT mode. Change “C-K” to another binding ifyou need clang-format on a different key (C-K stands for Ctrl+k).

With this integration you can press the bound key and clang-format willformat the current line in NORMAL and INSERT mode or the selected region inVISUAL mode. The line or region is extended to the next bigger syntacticentity.

It operates on the current, potentially unsaved buffer and does not createor save any files. To revert a formatting, just undo.

An alternative option is to format changes when saving a file and thus tohave a zero-effort integration into the coding workflow. To do this, add this toyour .vimrc:

Emacs Integration¶

Similar to the integration for vim, there is an integration foremacs. It can be found at clang/tools/clang-format/clang-format.eland used by adding this to your .emacs:

This binds the function clang-format-region to C-M-tab, which then formats thecurrent line or selected region.

BBEdit Integration¶

clang-format cannot be used as a text filter with BBEdit, but workswell via a script. The AppleScript to do this integration can be found atclang/tools/clang-format/clang-format-bbedit.applescript; place a copy in~/Library/Application Support/BBEdit/Scripts, and edit the path within it topoint to your local copy of clang-format.

With this integration you can select the script from the Script menu andclang-format will format the selection. Note that you can rename themenu item by renaming the script, and can assign the menu item a keyboardshortcut in the BBEdit preferences, under Menus & Shortcuts.

CLion Integration¶

clang-format is integrated into CLion as an alternative code formatter. CLion turns it onautomatically when there is a .clang-format file under the project root.Code style rules are applied as you type, including indentation,auto-completion, code generation, and refactorings.

clang-format can also be enabled without a .clang-format file.In this case, CLion prompts you to create one based on the current IDE settingsor the default LLVM style.

Visual Studio Integration¶

Download the latest Visual Studio extension from the alpha build site. The default key-binding is Ctrl-R,Ctrl-F.

Visual Studio Code Integration¶

Get the latest Visual Studio Code extension from the Visual Studio Marketplace. The default key-binding is Alt-Shift-F.

Script for patch reformatting¶

The python script clang/tools/clang-format/clang-format-diff.py parses theoutput of a unified diff and reformats all contained lines withclang-format.

So to reformat all the lines in the latest git commit, just do:

With Mercurial/hg:

In an SVN client, you can do:

The option -U0 will create a diff without context lines (the script would formatthose as well).

Bbedit 12.0 -

These commands use the file paths shown in the diff outputso they will only work from the root of the repository.

Current State of Clang Format for LLVM¶

Bbedit 12.0 Download

The following table Clang Formatted Status shows the current status of clang-formatting for the entire LLVM source tree.