Initially ‘downloadWindow’ was a property that was nil until we showed the download window, but now that the download window is re-used for downloading newer versions (incase a newer version appear before user does the “Install & Relaunch”) the fetching the property will return the window (and create it if not already created).
We need this when installing standalone bundle items, saving macros, and when creating items in the bundle editor without a bundle selected.
The user experience of this code is however rather poor in that you can’t actually crete new bundles, the dialog text is not specific, and the logic for what bundle to preselect can be improved (prefer previously created bundle falling back on a local bundle, if any).
Several people dislike the change (see issue #893) and the commit didn’t introduce new functionality per se: full path searching is still available when explicitly typing a slash.
This reverts commit 619c19e8ed.
Previously doing a Find All in Document would stay with Find All as the default button, even if closed and re-opened.
We also clear the status text, this isn’t always desirable, but I find it more weird when the dialog shows an outdated status message.
We now use dispatch queues for updating bundles and bundle sources.
The determinate progress indicator is presently gone and so is the detailed info about which dependent bundles are being installed.
Ideally we would have the BundlesManager load the bundles but since tests don’t have their own framework requirements, this would require that the layout framework is setup to depend on the BundlesManager framework.
Some shortcomings:
1. Cache format is more wasteful (and kept in memory)
2. Device UUID and inode of root folder is not considered when replaying fs-events (we should do a recursive rescan if either changes).
On the bright side, the code better separates loading bundles from disk, and maintaining a disk cache updated via fs-events. This should make it easier to force cache invalidation when updating bundles from within TextMate (so we do not rely on fs-events) and to move bundle loading away from the main thread.
Additionally, by moving the bundle loading code to the bundle manager singleton, we’re introducing a single source of knowledge about “bundles on disk”, regardless of wether they are managed or not.
The content scope is the portion of the scope created while parsing the document content, unlike scope attributes, document, project, SCM, and dynamic scopes (appended to the content scope).
Since the find dialog itself will call orderFrontFindPanel: when selecting the first item in the “in” pop-up (this is required to have it show ⌘F as key equivalent) we need to avoid changing search scope to “selection” for this case.
Before labelFontSize was used for all controls, as the label size should match the control size we need to have different functions for each control size.
For example a symbolic link like ~/.config (pointing to a folder) would previously get the custom icon for config files. Now it gets a folder icon (with a link badge).
This belongs in main(), where it is already being set.
It might however be necessary to set it when running tests, although none of the tests seems to fail w/o this.