Commit Graph

1764 Commits

Author SHA1 Message Date
Allan Odgaard
02eae4c494 Enable truncation of status bar text in chooser dialogs 2014-02-12 20:46:08 +07:00
Allan Odgaard
16c7679c0a Use ng::word_at for what to complete
This way we won’t try to complete whitespace.
2014-02-12 20:08:41 +07:00
Allan Odgaard
112a3a9e80 Allow aborting commands by pressing ⌘. or ⌃C 2014-02-12 15:50:13 +07:00
Allan Odgaard
7fb5b75219 Restore default signal handlers for commands
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).
2014-02-12 15:08:28 +07:00
Allan Odgaard
f128304d75 Handle non-mouse/key events while running commands
Fixes textmate/diff.tmbundle#5
2014-02-12 11:33:37 +07:00
Allan Odgaard
1c14143575 Switch file from C++ to Objective-C++ 2014-02-12 11:15:29 +07:00
Allan Odgaard
3b760492a8 Do not set TM_CURRENT_WORD if caret is surrounded by whitespace
This is consistent with “word” as input for commands.
2014-02-11 20:56:38 +07:00
Allan Odgaard
da31c2d11a Introduce ng::word_at (refactoring) 2014-02-11 20:55:01 +07:00
Allan Odgaard
c54c2c89f2 Only set TM_CURRENT_WORD when we have a word 2014-02-11 20:47:01 +07:00
Allan Odgaard
c7462eedd7 Allow disabling folder state restore
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.
2014-02-11 14:23:34 +07:00
Allan Odgaard
bef5e5d88c LRU sort recent projects and disambiguate display names 2014-02-10 16:57:10 +07:00
Allan Odgaard
5d08404136 Update OakPasteboard to use “new” Objective-C run-time features 2014-02-10 14:41:37 +07:00
Allan Odgaard
7287fc7359 Indicate that Find and HTML output are auxiliary windows
This doesn’t seem to change anything wrt. behavior, but perhaps it will in the future.
2014-02-09 23:09:21 +07:00
Allan Odgaard
413c77931a When restoring open tabs, skip non-existing files 2014-02-08 16:28:17 +07:00
Joachim Mårtensson
0d0ee4c51c refactor duplicate folding code into one method 2014-02-08 01:31:09 +01:00
Allan Odgaard
091e554a1b Remember open files per (project) folder
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.
2014-02-07 19:53:28 +07:00
Allan Odgaard
d1265913df In chooser lists, treat deleteToBeginningOfLine: as delete:
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).
2014-02-07 19:53:28 +07:00
Allan Odgaard
106ad9623c Factor out “session restore” (for a single document controller) 2014-02-06 22:47:35 +07:00
Allan Odgaard
fa0a82ca4a Factor out “session info” (for a single document controller) 2014-02-06 20:35:12 +07:00
Allan Odgaard
7a7107d69a Factor out OakScopeBarView 2014-02-06 20:20:55 +07:00
Allan Odgaard
3b26eeacb0 The filtering windows now truncate list items
Previously some of the filtering windows would have the items “wrap” (the default) which is suboptimal for table views.
2014-02-05 13:14:21 +07:00
Allan Odgaard
4d718b6207 Auto-reveal open file now works with hidden file browser
When the file browser is hidden we no longer auto-reveal. When the user shows the file browser, we select the currently open document.
2014-02-05 12:27:53 +07:00
Allan Odgaard
286a92c792 Select word at EOL with trailing whitespace was a no-op 2014-02-01 21:34:34 +07:00
Allan Odgaard
dd5c050f28 Commands taking “word” as input will not get whitespace as input
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).
2014-02-01 21:19:22 +07:00
Allan Odgaard
d1260a28b6 Revealing an item in a file package may now change folder
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.
2014-02-01 20:56:31 +07:00
Allan Odgaard
1092afde25 Deleted bundle items were returned when asking for disabled items
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).
2014-01-31 19:06:38 +07:00
Allan Odgaard
7ced73244f Add setting to disable tab re-ordering
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.
2014-01-29 16:09:20 +07:00
Torsten Trautwein
a88f9baf5f Preference to auto-reveal the current file in the project browser
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.
2014-01-20 20:15:25 +07:00
Torsten Trautwein
5048ecc9b0 Saved with Xcode 5.0.2 (5A3005) 2014-01-20 13:52:41 +01:00
Allan Odgaard
16f7109656 Fix swapped freehanded left/right constants
In practice move() isn’t called with a freehanded left/right constant so the incorrect placement wasn’t causing an issue.
2014-01-13 11:16:11 +07:00
Allan Odgaard
bdba01a30f Do not report “Failed: Extracting Archive” on download failure 2014-01-13 09:02:16 +07:00
Adam Strzelecki
875a470cc1 Fix file browser height for tabs above document
This fixes regression caused by 1de5d90475 that
divider height and default compression priority disallowed expected height.
2014-01-09 14:34:30 +07:00
Gerd Knops
78f3584bad Show git conflicts with priority 2014-01-09 14:19:58 +07:00
Allan Odgaard
5edd3479ba Implement accessibilityIsAttributeSettable: for all attributes
Previously if using the Accessibility Inspector exceptions could be thrown.
2013-12-26 15:19:28 +07:00
Ronald Wampler
54de23f940 Ensure FSItem name property is not nil when setting menu title
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.
2013-12-24 15:11:54 +07:00
Ronald Wampler
1f61b628b3 Use new safeObjectAtIndex method
Also removed the static SafeObjectAtIndex mehtod in OakTabBarView
2013-12-22 23:30:29 -05:00
Ronald Wampler
8711228f9a Add safeObjectAtIndex to NSArray
This is defined in OakTabBarView as a static method, but it could be useful elsewhere.
2013-12-22 23:30:29 -05:00
Ronald Wampler
2f39a8c012 Remove unneccessary #import statements 2013-12-22 23:30:29 -05:00
Allan Odgaard
26f60bc52a Change ASSERT_NE → ASSERT
Since we do not have a to_s function defined for the iterator type, we cannot use “semantic assertions”.
2013-12-21 11:20:15 +07:00
Allan Odgaard
5faba29bb5 Fix value for AXSelectedText
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.
2013-12-21 11:13:15 +07:00
Allan Odgaard
32ce648224 Clicking a folded range will now unfold it 2013-12-20 09:56:53 +07:00
Allan Odgaard
bc56cc240f Add API to unfold a range
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).
2013-12-20 09:55:29 +07:00
Allan Odgaard
43d3ead3e3 Add API to get folded range for a point
This is required to show tool tips when hovering a fold marker or to unfold the fold marker clicked.
2013-12-20 09:13:48 +07:00
Allan Odgaard
c94f6d8555 Improve “you are recording a macro” dialog
Rather than tell the user how to stop recording, we now offer it as an option.
2013-12-19 18:58:55 +07:00
Allan Odgaard
5bbbed72e5 Saving file with missing parent asks if it should be created 2013-12-14 14:37:55 +07:00
Allan Odgaard
1f57336da8 Log error when mkdir() fails 2013-12-14 14:22:15 +07:00
Allan Odgaard
0a21664f6d Replace iterate macro with new for loop (C++11)
Also use emplace_back a few places.
2013-12-14 13:12:45 +07:00
Allan Odgaard
45db36234c File path settings now rank higher than scope settings
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”).
2013-12-14 12:57:24 +07:00
Allan Odgaard
7d91fd8322 Allow fractional font sizes.
Closes #1125
2013-12-14 12:10:05 +07:00
Allan Odgaard
a5fe5d929d Opening a file with unused project UUID will create a new window
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
2013-12-12 16:58:32 +07:00