Hello Jean Thanks for showing me about "whose modified is true" and the error handling. :-)
I'm just not sure if the "display dialog" is the best way to communicate the error, as the BBEdit manual states that *You should also avoid using ‘show dialog’ or similar verbs during applicationWillSwitchOut, because that will leave the resulting item on screen until you switch back to BBEdit * Is there a way to write the error into some log file? Or what would be a way to avoid interference with the application switching? Regards, Peter On Sunday, August 17, 2025 at 10:15:19 AM UTC+2 jj wrote: > Hi Peter, > > Good to know it worked and you could achieve what you were after. > > Here is a version using a whose clause and error handling: > > *use* AppleScript version "2.8" > > *use* *scripting additions* > > -- > > *try* > > *tell* *application* "BBEdit" > > *set* vDocuments *to* *its* *text documents* *whose* modified *is* *true* > > *repeat* *with* vDocument *in* vDocuments > > *save* vDocument > > *end* *repeat* > > *end* *tell* > > *on* *error* aMessage number aErrorNumber > > *if* aErrorNumber ≠ -128 *then* -- Error number -128 (User Cancelled). > > *display dialog* aMessage > > *end* *if* > > *return* > > *end* *try* > > > HTH > > > Jean > On Saturday, August 16, 2025 at 4:42:29 PM UTC+2 Peter Steiner wrote: > >> Hello Jean >> >> Thanks for the hint, it worked! And I managed to create a script that >> does what I want. If there are better or more elegant ways to achieve >> saving of all open files I welcome all feedbacks! >> >> *on* applicationWillSwitchOut(theApp) >> *tell* *application* "BBEdit" >> *set* allProjects *to* *every* *project document* >> *repeat* *with* project *in* allProjects >> *set* currentlyOpenDocuments *to* *every* *text document* *of* *window* >> *of* project >> *repeat* *with* doc *in* currentlyOpenDocuments >> *save* doc >> *end* *repeat* >> *end* *repeat* >> *end* *tell* >> *end* applicationWillSwitchOut >> >> Regards, Peter >> >> On Wednesday, August 13, 2025 at 7:32:22 PM UTC+2 jj wrote: >> >>> Hi Peter, >>> >>> Remove the colon and it should work. >>> >>> *use* AppleScript version "2.8" >>> >>> *use* *scripting additions* >>> >>> -- >>> >>> *on* applicationWillSwitchOut(theApp) >>> >>> *tell* *application* "TextEdit" >>> >>> *activate* >>> >>> *make* new *document* >>> >>> *set* *text* *of* *front* *document* *to* "hello >>> applicationWillSwitchOut" >>> >>> *end* *tell* >>> >>> *end* applicationWillSwitchOut >>> >>> HTH, >>> >>> Jean Jourdain >>> On Wednesday, August 13, 2025 at 6:22:10 PM UTC+2 Peter Steiner wrote: >>> >>>> Hello, I'm a seasoned programmer but pretty new to Applescript and >>>> BBEdit, so please bear with me if I'm asking obvious stuff. >>>> >>>> I asked support about auto-save and got a quick answer to look into the >>>> 'applicationWillSwitchOut' attachment point. >>>> >>>> I then found these old threads mentioning applicationWillSwitchOut: >>>> >>>> - https://www.mail-archive.com/[email protected]/msg14492.html >>>> <https://www.mail-archive.com/[email protected]/msg14492.html> >>>> - https://www.mail-archive.com/[email protected]/msg15547.html >>>> <https://www.mail-archive.com/[email protected]/msg15547.html> >>>> >>>> >>>> but without examples (*"This is largely an exercise for the reader :-) >>>> [...], and the group can probably help you with the scripting itself."* >>>> ) >>>> >>>> To start dabbling with AppleScript I put this compiled script into the >>>> mentioned folder (~/Library/Application Support/BBEdit/Attachment >>>> Scripts/Application.scpt): >>>> >>>> on applicationWillSwitchOut:(theApp) >>>> tell application "TextEdit" >>>> activate >>>> make new document >>>> set text of front document to "hello applicationWillSwitchOut" >>>> end tell >>>> end applicationWillSwitchOut: >>>> >>>> (I made similar subroutines for the other 4 application attachment >>>> points) >>>> >>>> I then started BBEdit, switched focus, then back to BBEdit and then >>>> quit. Nothing happened with TextEdit, so I'm not sure if the scripts were >>>> even run. >>>> >>>> Am I doing this wrong? How can I debug attachment scripts? I can't run >>>> them directly in the Script Editor, can I? The manual is silent on this, >>>> probably because mac users are supposed to know that? >>>> >>>> Or even better, has somebody already a script that saves open files >>>> when quitting or switching out? >>>> >>>> Thanks in advance! >>>> >>>> Peter >>>> >>> -- This is the BBEdit Talk public discussion group. If you have a feature request or believe that the application isn't working correctly, please email "[email protected]" rather than posting here. Follow @bbedit on Mastodon: <https://mastodon.social/@bbedit> --- You received this message because you are subscribed to the Google Groups "BBEdit Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/d/msgid/bbedit/7a326e7a-3319-4935-b0be-fe753fe39164n%40googlegroups.com.
