For example Xcode projects now have their target (URL) set to xcodeproject://path/to/project/file which would cause Show Package Contents to not work, as it expected a file URL.
For uncommitted items we no longer show folders if items from these folders are already shown.
For untracked items we only show the top-level (untracked) directory and not the items it contains.
I feel that the better API would be to make the selectedURLs property r/w (instead of read-only), but that is more involved since there is the case of setting a selection while the file browser is still loading items.
This is implemented by invoking “go back” if already showing an SCM URL. If there is no history (unlikely) then we instead “go up (parent)” which should take us to the root of the repository.
The key is consistent with the default key for bringing up the context menu in the text view — that key is however taken from the key bindings dictionary, so ideally we’d do the same in the file browser. Need to factor out the key bindings parsing code first though, and in theory the key bindings dictionary allow for multi-stroke bindings.
This implements issue #18.