Before this commit it wasn’t possible to SIGINT / SIGTERM commands launched from TextMate since TextMate itself has a custom handler for these signals (so they are set to be ignored) — this included pressing ⌃C in the HTML output window (for commands using the TextMate.Executor API).
Presently this will also disable it if the folder is opened via the Recent Projects chooser. Ideally opening via this list should not disable folder state restoring.
This means that if one does “mate «folder»”, open a few files as tabs, and then close the window, next time the same folder is opened, TextMate will restore the tabs.
Presently state is remembered (when closing a window) either if the file browser is visible or if more than one document is open in the window.
This is only if there is a responder for the delete: action and is done to allow ⌘⌫ to be used to delete items in the list (like favorites).
The implementation is not ideal as we make assumptions about what action the ⌘⌫ key is bound to and perhaps it’s also a gotcha that ⌘⌫ in a text field will delete something else (though the list is also drawn as having focus).
Previously if there was whitespace to the left and right of the caret, the entire sequence of whitespace was given as input to the command. This was not the case for TextMate 1.x so it broke the format commands in the LaTeX bundle (bold, italic, and teletype).
Previously if opening e.g. /Applications/Mail.app/Contents/Info.plist and setting project folder to /Applications and asking to Go → Current Document then nothing would happen, as the current document would be a descendent of the current (project) folder but the file browser was unable to expand the Mail.app file package to actually reveal it.
This would cause deleted (delta) items to show up in the bundle editor (as it queries the bundle manager for disabled items and would thus also get the deleted ones).
When opening a document it will be placed to the right of the current one (in the tab bar) even if the document being opened is already in the tab bar, this is to make ⌘W work to “close and go back” without having to keep a list of previously selected tabs.
This feature can now be disabled using:
defaults write com.macromates.TextMate.preview disableTabReordering -bool YES
Note though that if one selects multiple documents to open then it will potentially re-order the tab bar so that the documents selected are adjacent.
An option called "Auto-reveal open file in project browser" has been
added to the Projects preference pane. When checked, the currently open
file will be revealed in the project's file browser. By default, the
option is not checked and thus the behavior is as it was before.
We use to pass nil to NSMenuItem initWithTitle: when clicking the SCMFolders in
SCM Status (see commit e5841fe); however, we will *probably* never encounter
this now. But it might be useful, if custom data sources are implemented for the
file browser in the future.
We were grabbing a const reference to a reference into a temporary object (result of editor_t::ranges), so the range used was effectively a pointer to a destroyed object.
The function will unfold anything completely within the range that also touches one of the range’s end points.
This is because the layout will show adjoining folded ranges as a single image, so if the user clicks this, it is unclear which of the ranges to actually unfold (the layout return a range that encompass all the adjoining folds).
A file setting like “src/*.cc” is arguably more specific (and thus more local) than targeting the scope “source.c++”, so it makes sense that the file settings rank higher than scope settings.
Some users also find it natural to target file extensions over scopes, but as TM will store some learned settings with a scope selector, it would previously lead to confusion, when a user was unable to e.g. change tab size for “*.php” (because TM had a learned setting for “source.php”).
This can be used to force a file to open in a new window, e.g.:
TM_PROJECT_UUID=$(uuidgen) mate README.md
Likewise, it can be used to force multiple invocations of mate to use the initially opened window (by re-using the UUID).
Closes#879