On Jan 01, 2013, at 20:14, David Shea <[email protected]> wrote:
> I've tried creating a script to switch between open files in a project by 
> recording myself clicking on files in the windows palette. I get, in the 
> script, stuff like
> 
> "select text document X of project window 1"
> 
> Where X, to me, seems like a random number - I can click on several files, 
> and X might, or might not change - so I can't have a script where X is 1,2,3, 
> etc... and assign to cmd-1, cmd-2 etc...

______________________________________________________________________

Hey David,

[Obviously I've changed the topic.]

-------------------------------------------------------------------------------------------

tell application "BBEdit"
  select text document 2 of project window 1
  select text document 2 of project window 1
end tell

-------------------------------------------------------------------------------------------

Recording Applescript is often a mixed bag that takes sorting out.

What you've gotten above is perfectly logical, since BBEdit simply keeps track 
of the index of open documents, and that changes every time you move a 
different one to the frontmost position.

So we have to find a means to reference them by a more sturdy identifier:

-------------------------------------------------------------------------------------------

tell application "BBEdit"
  tell project window 1
    if (count of (documents where its name does not end with ".bbprojectd")) ≥ 
1 then
      set AppleScript's text item delimiters to return
      set docIDs to (ID of documents where its name does not end with 
".bbprojectd") as text --» ERROR
      set docIDs to (sort lines docIDs)
      repeat while last character of docIDs is return
        set docIDs to text 1 thru -2 of docIDs
      end repeat
      set docIDs to text items of docIDs
      set firstDoc to document id (get item 1 of docIDs)
      select firstDoc
    end if
  end tell
end tell

-------------------------------------------------------------------------------------------

I don't feel like fooling with this much, but I've come up with this q&d (quick 
& dirty) proof-of-concept.

By doing a little error-detection and changing the index you can create 
multiple scripts and bind them to Cmd-1, Cmd-2, etc — then if say 4 documents 
are open Cmd-4 will switch to the fourth one in ID-order — if only three 
documents are open it can beep at you or something.

It should also be possible to use this basic technique to switch between open 
windows.

What I do personally for windows is use Keyboard Maestro to open the Window 
Menu via a hotkey and then I type-select what I want.  (This can also be done 
via Applescript and System Events.)

You could also set up custom assignment keys - I.E. say Ctrl-1 will assign the 
frontmost document to Cmd-1 - etc.

This at least should give you some food for thought.

--
Best Regards,
Chris

-- 
-- 
You received this message because you are subscribed to the 
"BBEdit Talk" discussion group on Google Groups.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
<http://groups.google.com/group/bbedit?hl=en>
If you have a feature request or would like to report a problem, 
please email "[email protected]" rather than posting to the group.
Follow @bbedit on Twitter: <http://www.twitter.com/bbedit>



Reply via email to