Commit Graph

1241 Commits

Author SHA1 Message Date
Allan Odgaard
92192341d4 Let OakTextView pass an environment to document::run()
We no longer pass the bundle item by const-reference because it is now used (delayed) in a block and const-references are not captured by blocks (i.e. the lifespan is not extended).
2013-05-12 11:09:16 +07:00
Allan Odgaard
a6cf964e9f Remove callback support from document::run 2013-05-12 11:09:16 +07:00
Allan Odgaard
421a46d116 Rework setup/execution of drop commands
We now collect all variables (and working directory) prior to calling document::run() to remove the need for a callback.
2013-05-12 11:09:16 +07:00
Allan Odgaard
964b56898f Consult text view delegate when setting up variables
The delegate provides file browser variables.
2013-05-12 11:09:16 +07:00
Allan Odgaard
ccf2414768 Add pwd argument to command runner
Previously this was only possible to change by setting PWD in the passed-in environment.
2013-05-12 11:09:15 +07:00
Allan Odgaard
b66e58c4f8 Disambiguate function name 2013-05-12 11:09:15 +07:00
Allan Odgaard
7f4649ba32 Factor out deprecated variable collecting 2013-05-12 11:09:15 +07:00
Allan Odgaard
428739352c Obtain variables and scope context via ‘self’
This is instead of direct instance variable access.
2013-05-12 11:09:15 +07:00
Allan Odgaard
88ae04572c Handle “did-save” bundle item callback in OakTextView
While it’s easier to execute bundle items from a text view, it doesn’t work when saving documents that are not in the current text view.

This is an intermediate refactoring step — handling should (likely) end up in the DocumentSaveHelper class, but we need to improve dealing with command execution first, and by having the callback piggyback on the normal performBundleItem: method, we (temporarily) limit the code which use the command execution API, making refactoring easier.
2013-05-09 15:16:33 +07:00
Allan Odgaard
0fd03842b7 Move bundle requirement checking to bundles framework
This also generalizes it to being applicable to all bundle items (not just commands).
2013-05-09 15:16:33 +07:00
Allan Odgaard
4c24bd9c00 Avoid ref to static data when returning non-POD from Objective-C
Apparently clang (now?) support transferring non-POD types from and to Objective-C++ methods, eliminating the need for doing this by passing a (const) reference.
2013-05-09 15:16:33 +07:00
Allan Odgaard
5fd188531a Change naming of functions for obtaining variables
These are now all prefixed with what they are obtaining variables for (scope, document, bundle, …) which makes it easier to analyze/refactor the code.

Also change document_t’s settings function to document_settings.
2013-05-09 15:16:32 +07:00
Allan Odgaard
e49504a644 Remove unused member data 2013-05-06 14:51:32 +07:00
Allan Odgaard
135c6c79b7 Remove redundant instance variable 2013-05-06 14:51:31 +07:00
Allan Odgaard
b489687403 Disable AuthorizationExecuteWithPrivileges deprecation warning
The “proper” replacement for this API is to use the ServiceManagement framework’s SMJobBless() to bless our helper tool. In two of the three use-cases our helper tool is however regular shell commands, so it seems redundant to wrap these shell tools as helper tools we can install as launchd jobs.
2013-05-06 14:51:31 +07:00
Allan Odgaard
4188c486fb Ensure height of find/replace fields are >= 22 points
Fixes #972.
2013-05-06 14:51:31 +07:00
Allan Odgaard
7796e18e59 Limit exposed stuff in OTV headers 2013-05-03 14:41:52 +07:00
Allan Odgaard
5f1cdb947a Clicking link arrows should not select rows 2013-05-02 15:07:10 +07:00
Allan Odgaard
ded37a128c Add link arrows to Preferences → Bundles
This takes the user to the bundle’s home (generally a GitHub page) which should make it easier to clone the source repository or report issues via the bundle’s issue tracker.
2013-05-02 15:07:10 +07:00
Allan Odgaard
13af5d8604 Make click-sorting non-content columns a no-op 2013-05-02 15:07:10 +07:00
Joachim Mårtensson
35227b48ea Injected rules rank higher if they match against the left scope
This allows overriding “native” rules via injecting.

This commit drops support for using ‘.’ as (injection) scope selector to match everywhere. Instead use ‘*’.
2013-05-02 15:07:10 +07:00
Allan Odgaard
715624b952 Handle failure to create folding dots image
Based on crash reports this appears to happen for some users, though only reason I can imagine is if the images are not found in the application bundle (which would happen if the application is moved after launch, but that normally cause many things to fail).
2013-04-28 11:46:35 +07:00
Allan Odgaard
e1ff0ceaff Move already open find/HTML windows to active space
This is only when invoking the “order front” action and the window is already showing on another space.
2013-04-28 11:46:35 +07:00
Allan Odgaard
fda19c565d Only clear find status string for non-folder search
I find myself often closing folder search results and later re-opening (via ⇧⌘F) which would previously have the status string cleared, yet the results still showing.

Status should probably be stored together with the folder search results, so when toggling between document and folder search, the status string would follow as well.
2013-04-28 11:46:35 +07:00
Allan Odgaard
28306cb048 Disable “smart tab” for discontinuous/column selections 2013-04-27 13:21:32 +07:00
Allan Odgaard
d7e54f88ea Use trackSwipeEventWithOptions:… for swipe gestures 2013-04-26 20:45:52 +07:00
Allan Odgaard
bcc3e4c1fb Fix refresh/undo for commands causing document saving
Since saving is asynchronous the scoped refresh/undo helper would do “cleanup” before the command ran and potentially made document changes.

Commands executed at a lower level (i.e. by editor_t via macros) presently still has this issue. This should be fixed when macros are refactored (this isn’t the only issue related to macros).

Closes #450.
2013-04-25 16:38:33 +07:00
Allan Odgaard
29aa65d5d9 Use blocks for document save callback 2013-04-25 15:33:32 +07:00
Allan Odgaard
f81292aa51 Only disable font smoothing on high-DPI displays
The fontSmoothing defaults key can now be set to:

 0: Always disabled
 1: Always enabled
 2: Disabled for dark themes
 3: Disabled for dark themes on high-DPI displays (default)

/cc issue #958.
2013-04-24 21:54:27 +07:00
Allan Odgaard
9083ca8206 Close bundle install sheet on error
Previously incase of error the sheet would keep showing effectively locking up the document window.

This is related to issue #85 although the reason why installing bundles fails for some users is still unanswered.
2013-04-23 18:57:25 +07:00
Allan Odgaard
cdb75619ca Add completion callback to installBundle: 2013-04-23 18:52:08 +07:00
Allan Odgaard
93a1c37e47 Restore field editor’s value after reloading file browser
If user was creating a new file or folder and immediately started to type in the field editor, his changes were lost during reload (which would likely happen when updating SCM badge for the newly created item).
2013-04-23 14:38:18 +07:00
Allan Odgaard
fe400c1487 Disable font smoothing for dark themes
If you wish to always have font smoothing enabled you can run:

    defaults write com.macromates.TextMate.preview fontSmoothing 1

Setting the value to 0 causes it to always be disabled and deleting the key (or setting it to 2) has it disabled only for dark themes.
2013-04-21 19:17:06 +07:00
Allan Odgaard
ced23336de Harmonize a few properties
This is just implementation detail.
2013-04-21 19:15:05 +07:00
Allan Odgaard
974e263588 Remove instance data from OakTextView.h 2013-04-21 19:15:05 +07:00
Allan Odgaard
8fc7567e2e Use new focus ring API (10.7) 2013-04-21 18:27:25 +07:00
Allan Odgaard
97c9a20f6e Use localizedStandardCompare:
This is instead of our custom displayNameCompare: which has now been removed.
2013-04-21 12:20:07 +07:00
Allan Odgaard
49235210ca Use NSNumberFormatter class method
Once we drop 10.7 support we can avoid NSNumberFormatter entirely by using ‘localizedStringWithFormat:’ with ‘%lu’.
2013-04-21 12:20:07 +07:00
Allan Odgaard
0e290fd599 Use NSHost to obtain computer’s name 2013-04-21 12:20:07 +07:00
Sergey Chikuyonok
72dd8e2047 Extended OakTextView API
Added `scopeAsString` method to retrieve current scope as NSString
2013-04-21 12:20:07 +07:00
Allan Odgaard
34d92253dd Don’t log unchanged sources as failures 2013-04-13 22:37:51 +07:00
Steven Clukey
32a972da03 Make bundles in bundle preferences table sortable 2013-04-13 22:37:51 +07:00
Allan Odgaard
931b56f45c Fix crash related to updating bundles
Since we get the failed sources by a const reference it is only live during the scope of the caller, and our use of blocks makes that scope shorter than the called block’s full scope.
2013-04-10 18:12:49 +07:00
Allan Odgaard
773891cd47 Introduce global setting to disable typing pairs
This is presently only settable via the ‘disableTypingPairs’ user defaults key:

    defaults write com.macromates.TextMate.preview disableTypingPairs -bool YES

Closes #609.
2013-04-10 10:13:01 +07:00
Allan Odgaard
7f933bfc57 Disable auto-pairing when recording macros
Since auto-pairing can be adjusted via user customization we disable it for both macro recording and replay. Old macros will need to be updated (but this was already the case, as 2.0 never did pairing as part of replay).

A better solution is to record each implicit action of the auto-pairing in the macro. This can however be added later without breaking existing macros, as the macro player will remain the same.

Closes #130.
2013-04-10 10:13:01 +07:00
Allan Odgaard
253ba83ed2 Don’t suppress file browser updates when showing field editor
Reload was suppressed because there is no good way to reload a table view when the field editor contains uncommitted changes. I decided it’s probably better to lose these changes than show stale content, as for example the change might remove the item being edited, as would be the case when undoing New Document or New Folder.

Closes #886.
2013-04-10 10:13:01 +07:00
Allan Odgaard
ee4f7a48a2 Make s/w update status text resizable 2013-04-09 15:39:38 +07:00
Allan Odgaard
0111e6d089 Rework bundle update scheduling
We now store the time of last check in user defaults instead of via extended attributes on the source(s) and do a check every third hour, except of errors, where we retry after 30 minutes.

We now also check for bundle updates even if the sources hasn’t been updated. This is incase we previously updated a source but failed to then update bundles, these will now be updated when we retry, rather than next time the source index has updates.

Overall the code should be simpler and thus more robust. The text in the Bundles preferences page has also been improved slightly in that it will now tell the user if there was a problem updating the bundles, although for the specifics, the user will need to grab the log.
2013-04-09 15:39:38 +07:00
Allan Odgaard
04963caf01 Remove use of deprecated method 2013-04-09 15:39:38 +07:00
Allan Odgaard
58b101a7db Improve error log message for duplicate UUID
We now output the path of the item which use the same UUID.
2013-04-09 15:39:38 +07:00