On Jun 11, 2007, at 7:51 AM, Chuck Esterbrook wrote:
I was wrong. ⌘O still needs improvement. Today I did "mate foo bar" from the command line. Well okay, the first issue is that the two files were put in a file drawer, but not actually opened up. I was expecting to see the contents of at least one of them and preferably have windows or tabs for both.
But getting back to ⌘O, I clicked on "foo" and read through it. I clicked on "bar" and read through it. Then I realized I needed "baz" and hit ⌘O at which point I was looking at some directory totally unrelated to the one that "foo" and "bar" were located in. I had to poke around to get to where "foo" and "bar" were, but after two pokes I said screw it and went back to the command line to type "mate" again.
So my suggestion is that ⌘O set the directory to the directory of the currently edited file. It's more likely to be useful as I've experienced in other applications.
-Chuck
As I understand it, the mate command line tool is not at all the same as the TextMate application (its just a little helper utility), so it would not (and really should not) have any bearing on the stored path for opening new folders. Think of it this way:
In its current incarnation text mate expects that you're doing things in a somewhat standard way. If you're in the terminal dinking around then you've probably cd'd to the directory you're working in. If you've opened foo & bar & realize you need baz, just cmd+tab back to terminal & 'mate baz'. If you're the kind of person that uses the open command a lot, TM assumes you're probably still working on whatever you last opened from the open dialog.
What is TM going to show me if I'm working on a new document that hasn't been saved yet? What about something I'm editing using the "Edit in Text Mate" command? What will it show me if nothing is opened? Why would it think I've changed what I'm working on just because I've un-minimized some 30 minute old readme file from the dock that I've since moved into the trash but its still open in TM?
The point is, I can see where you're coming from but I think TM's behavior is correct for most people, most of the time. There are always exceptions and sometimes some people tend to be more of an exception that a rule, but it's not a problem with the app's command itself, its just that it doesn't match your workflow.
But honestly, if you want a solution, why not just do this: Create a new bundle command and give it whatever tab trigger/shortcut/ scope you want and put this into it:
#------------------------------ osascript <<-APPLESCRIPT set TMVar to "${TM_FILEPATH}" tell application "System Events" set openLocation to alias TMVar set filePath to POSIX path of ((choose file default location openLocation) as alias) do shell script "mate " & quoted form of filePath end tell APPLESCRIPT #------------------------------
That command will open a standard open dialog that defaults to your current file's path. It could probably be streamilned & shortened even but I kind of slapped it together. Anyway, it should give you what you need.
- Cliff