Use "key equivalent" instead of "shortcut"
Create (find in folder) match excerpt in background thread

Previously these were created on demand, but that meant loading the document in the UI thread. It also meant that multiple matches from same document would cause the document to be read for multiple times.

Furthermore, storing the match excerpt with the find::match_t type should allow for more flexibility, since we no longer need special logic in the table view delegate to load a subset of a document to get the display string, but will simply read it from the record.
Return 0 if Gestalt() fails
Use recede instead of retreat as the inverse of advance
Rely on ARC instead of synthesized accessor

Also give the callback function non-global scope.
Overload description method for FFMatch
Rely on compiler synthesized instance variables
Refactor Find in Folder code

Minor functional changes, for example after replacing we keep showing the search results, but with disabled checkboxes and ‘replace all’ button.
Improve implementation of collapsing/expanding search results

We now collapse if more than half the items are expanded, otherwise expand. Previously we relied on a property to track the collapsed/expanded state, which could be out of sync if the user manually changed the state for half the items, and we also needed to reset the state variables when updating search results.
Add Check/Uncheck All to folder search action menu
Minor update of FFDocumentSearch’s instance data usage

Prior to this commit the ‘searchDuration’ property would actually return seconds since we last started a search, rather than how long the last search took.
Do not use ‘timeIntervalSinceNow’ with dates in the past

We previously negated the result but now we instead ask for [[NSDate date] timeIntervalSinceDate:startDate].
Update API of find::scan_path_t
Track how many bytes we search
Allow specifying an NSTextField subclass when creating labels
Support alternate status string in find dialog window

The alternate string is shown after the user clicks the status bar.
Use alternate status string to show how many bytes were searched
Add ‘charset’ property to FFFilePathCell

This is really just a right-aligned label, but we might later change how it’s drawn.
Make encoding part of the document_t::reader_t API
Improve capitalization heuristic

See added/updated tests for details.