By default, scrollbars are hidden on macOS when using a trackpad, but for mouse users, or people with scrollbars set to always visible, this is probably preferable (all other scrollviews in TextMate use autohiding scrollbars).
This is only relevant when using the binding interface, instead of manual reload.
The tab bar cannot do an animated relayout when tabs are re-ordered. It probably should detect this itself, and skip the animation, though the animation group is setup in the controller, so this would still cause some side-effects.
For example if we link an executable with an embedded property list, then the linking step can be made dependent on the source property list by using a “${plist}” variable in LN_FLAGS set to “${dir}/info.plist” or similar.
This is only when the default application is not TextMate.
Ideally the regular “Open” item would change to “Open With «application»” when the selected items are not text documents, and there is an application to handle them, but the code changes required for this are non-trivial because what the item does, is not decided until the user triggers it, and it may not treat all selected items the same.
The API expose a few more implementation details and require the user retains the delegate for the duration of the menu’s lifecycle.
The upside is that we avoid the global singleton and it is now possible to examine and use the information gathered by the Open With menu delegate.
The release text is “«title»\n\n«body»” where only the body should be markdown format.
Ideally we would only strip the prefix from the title (first line), but that is more complex, and currently we do not use headings in the body.
Due to the high priority menus have in the responder chain, we effectively cannot have context menus with key equivalents, if these menu items have explicit targets.
We need the explicit targets so that the context menu works when the application is not the active application.
We set the default position to a fraction of the split view height (rather than absolute value), so this is only if scaling is not done proportionally, and only when there is no saved split view size.
Generated Ragel and Cap’n Proto sources are required by both Intel and Arm targets, but as the output is the same, we cache and re-use the result from these transformations.
This however meant that our heuristic to find generated headers, and add these to the include path, would fail when we are receiving cached results (as we skip the intermediate, identical, steps).
We now return the intermediate steps from the cache, but mark them as duplicates, so that they can be stripped when generating the build file.
Not an ideal solution, but the real issue is really identifying generated headers, and getting these added to the include path.
The problem is that if another panel opens, that panel is not tied to our HTML output window, for example opening the Find dialog does not allow us to press return to search in the HTML output, and if we open a modal dialog, when that modal dialog is disposed, the *main window* will be brought to front (not the previously focused panel).
This effectively reverts commit 92953099e6.
Previously we used a heuristic and if the value looked like a path, checked that it actually existed.
The new approach makes the rules simpler, avoids a file system check, and also ensures that non-existing files *will* become dependencies.
The latter is useful if they are generated by local.ninja, typos, or actually unmet dependencies.
The terminal has a default limit of 256, which can be too low for users with a lot of open files, as TextMate also keeps a file descriptor open for parent folders, in order to observe file system changes.
On my system though, launching TextMate via Finder has the maximum number of open files set to 8-12,000, also when launching via ‘mate’ (as that uses the Launch Services), but a user had problems with around 160 open files.