Rename pushURL: → goToURL:

Also change showURL: calls into using goToURL: (when we know the URL is not a non-directory file URL that should be selected).
Refactor “reveal file” methods

Both methods are now based on selectURL:withParentURL: which contain the necessary checks (file already visible? parent actually valid?).
Improve file browser API

We now expose the root URL and allows mutating it.

We also provide the selectURL:withParentURL: method instead of the two showURL: and revealURL:.
Tidy up OakFileBrowser
Send method to class name instead of ‘self’

This avoids potential compiler errors where multiple methods with same signature but different parameter/result types.
Improve QuickLook support

Preview can now be initiated with multiple items and while the preview panel is showing, one can use arrow up/down to switch to other items (in the file browser).
Insert file browser into responder chain

This is required to have the object respond to various action methods such as cut:, copy:, paste:, and delete: — ideally though the class would handle it by itself, as OFB responsibility is bleeding into the document controller (though long-term I think it makes sense to instead let the document controller implement the OFB action methods).
Rename byExpandingAncestors: → expandChildren:

We are expanding the children of the root item to select the provided URLs.
Better console message for orphaned bundle items
Rename function name

We not only convert between NSArray and NSSet, but also the type of the contained object (NSURL ⇔ NSString).
Let the pretty_plist CLI tool accept file name

Previously it only supported stdin meaning it couldn’t be used with find, xargs, and similar.
Don’t reload file browser for non-visible files

Previously we would reload the changed entries, if they were all visible, falling back on a full reload if not.

If items are not visible there should be no reason to do a full reload — I imagine the thinking was that the NSOutlineView may have previously fetched (and cached) one of the non-visible items (since one of its ancestors could just be collapsed). Since this is just a display attribute, it shouldn’t matter, even if the NSOutlineView would work like this.
Folder search now reads all relevant exclude patterns

Previously it wouldn’t read kSettingsExcludeDirectoriesKey and kSettingsExcludeFilesKey.
Don’t keep selected items in defaults

This means the set of selected file browser items is reset on relaunch — I’ve found that restoring selection when navigating to a folder was often not really desired.
Insignificant stylistic change
Remember current file browser selection in session data

This ensures that we restore the selection for the currently visible folder on relaunch. Selections in other folders is lost, see previous commit for more info.
Using Go → Enclosing Folder selects the child

This is consistent with how Finder works and I think this is desired behavior to sort of track where we came from.
Let selectURLs:expandChildren: deselect all

It also clears the history of non-visible items that was left selected.
Close HTML output view when using exit_discard

This was also done by TextMate 1.x.
Fix bad ranking of learned abbreviations

If multiple paths were associated with the same abbreviations, all but the first one would be placed last in the results list.