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/bbe...@googlegroups.com/msg14492.html 
>>>>    <https://www.mail-archive.com/bbedit@googlegroups.com/msg14492.html>
>>>>    - https://www.mail-archive.com/bbe...@googlegroups.com/msg15547.html 
>>>>    <https://www.mail-archive.com/bbedit@googlegroups.com/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 
"supp...@barebones.com" 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 bbedit+unsubscr...@googlegroups.com.
To view this discussion visit 
https://groups.google.com/d/msgid/bbedit/7a326e7a-3319-4935-b0be-fe753fe39164n%40googlegroups.com.

Reply via email to