Commit Graph

1749 Commits

Author SHA1 Message Date
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
Allan Odgaard
c2bb5253ef Ensure text view find operations use values from the UI
We already commit the values when focus is lost, but it’s possible to initiate a find operation while focus is still in the find dialog text fields (via the menu).

Fixes #1183
2013-12-12 14:45:05 +07:00
Allan Odgaard
9f07942e09 Use dynamic menu titles for most toggle items
Closes #935
2013-12-12 13:36:16 +07:00
Adam Strzelecki
2a6b37c1a3 Remember window zoom state and regular window frame
This fixed problem when closing TM2 with zoomed window, then unzooming window
after restart caused invalid window placement.
2013-12-03 09:50:39 +07:00
Allan Odgaard
b568f2e788 Handle dropping CR delimited text
Also filter malformed UTF-8 sequences from dropped text.
2013-11-28 17:07:55 +07:00
Allan Odgaard
3c99a69398 Only enable “file” services for file browser context menu
The services support in the file browser was mainly added to allow Quicksilver to grab the selection, I do not recall if this is why the selection was (also) made available as a regular string (in addition to the “file names pasteboard type”).
2013-11-28 13:48:03 +07:00
Ronald Wampler
e5841fe34f Add query component to scm URL
Previously when constructing a scm URL from a path, if scm was not enabled
we returned a file URL. This could result in some unexpected behavior.
For instance, when a directory was selected in the file browser,
activating "SCM Status" would just open the untracked directory.
This patch, insteads, adds a query to the scm URL that can be parsed to
determine how to handle the scm status request later on.
2013-11-28 13:48:03 +07:00
Allan Odgaard
888ccbed16 Remove use of NSPointToCGPoint
This is not required when building in 64 bit mode or when defining NS_BUILD_32_LIKE_64.
2013-11-18 22:43:50 +07:00
Boris Dušek
22a5dc1413 Support getting AXVisibleCharacterRange accessibility attribute 2013-11-15 18:14:03 +07:00
Boris Dušek
c7fbcf06ed Fix accessibility visual bounds ending at line boundary
Accessibility visual bounds for a range of a single softline should always
be also visually restricted to the softline. This is in order to be consistent
with implementation in Apple's apps (e.g. TextEdit).
2013-11-15 17:58:28 +07:00
Boris Dušek
9f68cb416c Use softlines instead of hardlines for accessibility
Fixes #1149.

VoiceOver expects AXLineForIndex and AXRangeForLine to be consistent with
the movement by line using arrow up/down. That means it expects "line"
to mean softline.

VoiceOver also distinguishes commands to move by:
* paragraph (hardline): VO-Shift-PgUp/PgDown
* line (softline): VO-up/down

These are available when interacting with the text area (VO-Shift-down).

This commit therefore fixes the AXLineForIndex and AXRangeForLine
to make "line" mean "softline" instead of "hardline" as was the case
until now.
2013-11-15 17:58:18 +07:00
Boris Dušek
e0298cf29c Provide conversions between softlines and buffer positions 2013-11-15 17:58:11 +07:00
Boris Dušek
b8cad485d9 Track softline count in layout 2013-11-15 17:04:50 +07:00
Boris Dušek
5dcca0996c Support text links with VoiceOver
Now links in text (e.g. links to RFCs after installing the Hyperlink Helper bundle)
are announced as such with VoiceOver and it is possible to search for them with
VO-Cmd-L.

TODO:

* launching links with VO-Space is not supported yet, but Enter (Fn-Return)
  does the same thing and is even more reliable.
* link URL is not supported, so it is not possible to learn the URL
  with VO-Shift-U.
2013-11-15 16:09:02 +07:00
Allan Odgaard
6a0ab432cb Show warning if undo will delete non-empty document
Closes #1197
2013-11-15 13:53:04 +07:00
Allan Odgaard
f2d5d0c143 Allow home/end in filter lists
This goes to the first/last item and can be reached with fn-←/→ on laptop keyboards.
2013-11-08 00:44:25 +01:00