L`environnement de programmation
Transcription
L`environnement de programmation
1 L’environnement de programmation Partie I Le langage L’environnement de programmation AppleScript est essentiellement fondé sur l’Éditeur de scripts, qui permet d’éditer, de compiler, d’exécuter et de sauvegarder vos scripts. Il dispose de plusieurs fonctionnalités d’aide à l’édition qui vous faciliteront l’écriture de scripts. Utiliser d’autres éditeurs de scripts est possible ; à titre d’exemple, ce chapitre montre comment déboguer avec Script Debugger et l’Annexe A expose la réalisation d’un projet AppleScript Studio. Configurer AppleScript AppleScript est livré avec tous les systèmes Mac depuis la version Mac OS 7 (1992). Il est situé dans le dossier Applications/AppleScript (voir Figure 1.1). Figure 1.1 : Le dossier Applications/AppleScript Book_AppleScript.indb 13 3/09/09 14:23:52 14 CHAPITRE 1 L’environnement de programmation Ce dossier contient les éléments suivants : • Config. actions de dossier. Permet d’activer la fonctionnalité d’actions de dossier (voir la section « Définir une action de dossier » au Chapitre 7). • Éditeur de scripts. L’éditeur AppleScript par défaut. Il est possible d’utiliser un autre éditeur (par exemple Script Debugger, voir la section « Déboguer un script ») en le spécifiant à l’aide de l’Utilitaire AppleScript. • Example Scripts. Alias vers le dossier Bibliothèque/ Scripts, qui contient une compilation de scripts classés par thèmes. • Utilitaire AppleScript (voir Figure 1.2). Règle les préférences AppleScript : éditeur utilisé, activation des fonctions GUI Scripting (voir Annexe B) et actions de dossier, paramétrage du menu des scripts. Figure 1.2 : Utilitaire AppleScript Utiliser le menu des scripts Le menu des scripts regroupe les scripts d’exemples du dossier Bibliothèque/Scripts, qui concernent diverses thématiques : Finder, Internet, Mail, navigation, impression, etc. Il peut être réorganisé (ordre des sous-menus, emplacement Book_AppleScript.indb 14 3/09/09 14:23:54 Utiliser le menu des scripts 15 des scripts, etc.) en modifiant en conséquence le dossier Bibliothèque/Scripts. Par ailleurs, le dossier des scripts de l’utilisateur courant (~Bibliothèque/Scripts) peut être utilisé pour stocker, outre des scripts (AppleScript ou autres : shell, Perl, etc.), des raccourcis, des applications, des processus Automator, des documents, etc. La Figure 1.3 montre un menu de scripts personnalisé et le dossier ~Bibliothèque/Scripts correspondant. Les éléments personnalisés sont affichés dans la deuxième partie du menu, en bas de celui-ci. Figure 1.3 : Menu des scripts personnalisé Attention Pour avoir accès au menu des scripts, il faut au préalable avoir cliqué sur « Afficher le menu des scripts dans la barre de menus » dans l’Utilitaire AppleScript (voir section précédente). Dans cette même application, décocher la case Afficher les scripts de la Bibliothèque permet de ne pas faire apparaître les scripts du dossier Bibliothèque/Scripts dans le menu des scripts. Dans ce cas, seuls les scripts de l’utilisateur (ceux du dossier ~Bibliothèque/Scripts) sont affichés. Book_AppleScript.indb 15 3/09/09 14:23:55 16 CHAPITRE 1 L’environnement de programmation Une autre fonctionnalité pratique consiste à faire afficher dans le menu les scripts dédiés à une application quand celle-ci est active. Pour cela, il faut avoir au préalable coché la case Afficher les scripts de l’application dans l’Utilitaire AppleScript. Puis créer un dossier Applications dans le dossier ~Bibliothèque/Scripts, qui contiendra les scripts classés par applications dans des dossiers nommés selon les noms des applications concernées. Lorsqu’une application sera au premier plan, seuls les scripts de cette application sont affichés dans le menu (en haut ou en bas, selon le choix fait dans l’Utilitaire AppleScript). Attention Lorsque vous créez le dossier associé à une application dont le nom inclut une apostrophe (Carnet d’adresses, par exemple), il sera nommé dans le Finder avec une apostrophe droite : la correspondance nom de dossier/nom d’application ne fonctionnera alors pas. Il faut impérativement nommer les dossiers selon le nom des applications. La Figure 1.4 montre le cas du Finder et l’organisation correspondante du dossier ~Bibliothèque/Scripts/Applications. Figure 1.4 : Menu des scripts applicatifs Book_AppleScript.indb 16 3/09/09 14:23:56 Éditer un script 17 Astuce Si vous préférez stocker vos scripts ailleurs que dans les dossiers ~Bibliothèque/Scripts ou ~Bibliothèque/Scripts/Applications, il suffit de créer des alias dans ces mêmes dossiers. Par ailleurs, le menu des scripts présente certaines astuces de fonctionnement intéressantes : • Cliquer sur un sous-menu ouvre le sous-dossier correspondant dans le Finder. • Maj+clic sur un script du menu ouvre le sous-dossier qui le contient dans le Finder et présélectionne le script. • Alt+clic ouvre le script dans l’Éditeur de scripts. Éditer un script L’Éditeur de scripts est l’outil privilégié pour visualiser et écrire des scripts . Pour ouvrir un script, il suffit de double-cliquer sur son icône ou d’utiliser le menu Fichier > Ouvrir. Ouvrons le script duree.scpt, situé dans le dossier SCRIPTS/iTunes. Il calcule la durée en heures des morceaux contenus dans votre bibliothèque musicale iTunes. Astuce Le meilleur moyen de débuter avec AppleScript est d’ouvrir dans l’éditeur les scripts d’exemple du menu des scripts (en les sélectionnant dans le menu avec Alt+clic), de les exécuter et de les analyser. Des scripts élémentaires peuvent également être trouvés sur les pages http://www.iscript.fr et http://www.macosxautomation.com/AppleScript. Le menu Script permet d’enregistrer un script, d’arrêter son enregistrement ou son exécution (Cmd+R), de l’exécuter et de le compiler (vérification de la syntaxe sans exécution du script et production d’un code compilé). Book_AppleScript.indb 17 3/09/09 14:23:57 18 CHAPITRE 1 L’environnement de programmation Quatre boutons situés en haut à gauche de la fenêtre d’édition du script reprennent ces commandes. Le cinquième bouton, Contenu du paquet, est actif lorsque le script affiché a été sauvegardé sous forme de bundle (voir la section « Enregistrer un script »). Cet ensemble de boutons est configurable à l’aide du menu Présentation > Personnaliser la barre d’outils. barre d’outils barre de navigation fenêtre d’édition zone d’information Figure 1.5 : Fenêtre d’édition de scripts Attention AppleScript ne fonctionne pas par enregistrement des actions de l’utilisateur sur l’interface graphique des applications. Bien qu’un bouton Enregistrer un script soit apparu avec les versions récentes de l’Éditeur de scripts, ces enregistrements ne sont possibles qu’avec un nombre limité d’applications (dont le Finder). Lors d’un enregistrement, les actions de l’utilisateur sont converties en instructions AppleScript, qui apparaissent dans la fenêtre du script, au fur et à mesure des interactions avec les IHM des applications. En dessous de la barre d’outils se trouve la barre de navigation, affichable par le biais du même menu Présentation. Le menu déroulant de gauche liste les composants OSA (voir la section « Compléments de pilotage » du Chapitre 4) installés ; par défaut, AppleScript. Le menu de droite donne un accès rapide aux fonctions, propriétés et variables globales du script. Book_AppleScript.indb 18 3/09/09 14:23:58 Éditer un script 19 La fenêtre d’édition est constituée de deux panneaux, la zone d’édition des scripts à proprement parler et une zone d’affichage d’informations contrôlée par les boutons situés en bas de la fenêtre (Description, Résultat, Hist. des événements, voir section « Déboguer un script »). La barre horizontale permet de répartir l’espace entre ces deux panneaux ; un double-clic sur cette barre masque la zone d’information alors qu’un Alt+double-clic masque la zone d’édition. Le panneau Description sert à saisir un texte qui sera affiché à l’utilisateur avant l’exécution du script, si celui-ci est enregistré sous forme d’application ou de progiciel (voir la section « Enregistrer un script »). Aides à la programmation de l’Éditeur de scripts Une aide à la saisie existe par le biais d’un menu contextuel (clic droit ou Ctrl+clic), qui permet d’insérer des routines prédéfinies dans le code (contrôle de flot, itération, gestionnaire d’erreurs, boîtes de dialogue, etc.). Ces routines sont stockées dans le dossier Bibliothèque/Scripts/Script Editor Scripts, dont le contenu est modifiable (en termes de dossiers et de fichiers). Il est donc possible d’y ajouter des portions de code que vous prévoyez d’utiliser régulièrement. Certaines des routines fournies par Apple se contentent d’insérer un squelette de code dans le script en cours d’édition (par exemple une instruction conditionnelle if-then). D’autres vont plus loin, en utilisant votre code pour bâtir autour de lui une portion de code complète. Dans l’exemple de la Figure 1.6, après avoir sélectionné une variable de type liste, le menu Repeat Routines > Process Every Item produit la boucle repeat, qui permettra de parcourir tous ses éléments. Book_AppleScript.indb 19 3/09/09 14:24:00 20 CHAPITRE 1 L’environnement de programmation Figure 1.6 : Le menu contextuel de l’Éditeur de scripts Une fonction de saisie semi-automatique (Assistant Script) peut être activée dans l’onglet Modification des Préférences de l’Éditeur de scripts. Elle suggère les termes complétant ce que le programmeur est en train de saisir. Ces termes sont les mots-clés du langage ainsi que les éléments de programmation des dictionnaires de pilotage de base (suites Standard, Finder, etc.), mais pas ceux des applications tierces. Une suggestion multiple est indiquée par des points de suspension. La touche F5 affiche la liste des termes suggérés (ou accepte la suggestion si elle est unique) ; la touche F5 permet ensuite de valider un choix effectué dans cette liste à l’aide des flèches haut et bas (ou avec la souris). La touche Esc a le même effet. Figure 1.7 : L’aide à la saisie de l’Éditeur de scripts Book_AppleScript.indb 20 3/09/09 14:24:00