# Script depuis un éditeur de texte



## AISAO (14 Février 2017)

Bonsoir,

Je résume rapidement la situation : 

Pour un logiciel d'analyse par éléments finis, il faut que je j'écrive le code dans un éditeur (ex : Atom, Sublime text), et  ensuite le compiler en passant par le terminal. Pour ceux que ça intéresse il s'agit de Cast3M.
C'est assez répétitif comme démarche et j'aimerais automatiser tout ça à l'aide d'un script.

Je voulais donc savoir si les démarches suivantes depuis Atom/SublimeT étaient possibles : 

- Lancer le script à l'aide d'un raccourci clavier
- Copier automatiquement le chemin d'accès et le nom du fichier en cours ( celui ouvert sur l'éditeur de texte)


Pour le moment j'ai un petit script qui fonctionne , mais il faut que je localise moi même le chemin d'accès ainsi que le fichier

Je le met ici pour que vous puissiez jeter un oeil et si vous avez des idées pour le rendre plus pratique.

```
tell application "Finder"
    set leChemin to choose folder
    set a to leChemin
    set p to POSIX path of a
   
   
    set lefichier to name of (POSIX file p as alias)
   
end tell

tell application "Terminal"
    activate
end tell
tell application "System Events" to keystroke "cd " & p
tell application "System Events" to key code {36}
tell application "System Events" to keystroke "castem16 " & lefichier & ".dgibi"
tell application "System Events" to key code {36}
```


Merci !

Arthus


----------



## bompi (15 Février 2017)

Cela va dépendre de ton éditeur de texte. Avec TextMate ou SublimeText tu peux constituer des modules pour tel ou tel langage, qui comprennent des instructions pour construire ou lancer (_build_, _run_) un programme en se basant sur le fichier en cours.
Je pense que tu peux aussi créer des macros.
Tu peux donc toujours essayer de faire un tel module.

Personnellement, sauf à devoir faire ça _vraiment_ souvent et _vraiment_ longtemps, je me contenterais du raccourci suivant :

constituer un script _bash_ (ou ce que l'on voudra, mais _bash_ est assez universel) qui prend en paramètre le nom du fichier à traiter ;
le mettre dans le _path_ (je modifie la variable d'environnement PATH pour y ajouter quelques dossiers personnels où je mets des petits scripts pratiques) ;
ensuite, en ouvrant Terminal, il suffit de taper le nom du script et un espace puis faire un glisser/déposer du fichier depuis l'éditeur de texte et zou!
Note que dans la fenêtre de l'éditeur, il y a une icône à côté du nom du fichier édité. Si tu sélectionnes cette icône et reste dessus une ou deux secondes, tu peux alors la glisser puis la déposer dans l'onglet de Terminal et cela copiera le nom du fichier comme il faut (avec les caractères d'échappement qui conviennent).

Je pense que tu peux adapter ça à ton AppleScript ou une application Automator.

C'est un début. Pour aller plus loin, il te faut d'abord élire l'éditeur que tu préfères et ensuite réaliser le petit module _ad hoc_.


----------



## AISAO (15 Février 2017)

Merci pour la réponse !

J'ai effectivement fait une application via Automator où j'ai juste à sélectionner le fichier à compiler.

Cependant, je ne pense pas pouvoir aller plus loin, car les éditeurs classiques (Sublime, Atom, TextMate) ne supportent pas la coloration syntaxique du langage gibiane. J'essaye de l'implémenter mais je me perds dans les toutes démarches à effectuer.

La seule application compatible mac et qui supporte la coloration gibiane est "KWrite" et je ne pense pas que les modules soient supportés.


----------



## bompi (15 Février 2017)

KWrite... bigre. Si j'en crois ce PDF, tu peux aussi ajouter la coloration syntaxique à Gedit.
On peut installer Gedit sur le Mac de diverses manières :

en compilant une version usuelle (qui fonctionne avec X11), par exemple avec MacPorts ou Fink ;
en le compilant avec une bibliothèque GTK+ modifiée pour fonctionner directement sur l'interface de macOS (Quartz) ; voir par exemple ici (c'est un peu fastidieux mais cette méthode fonctionne).
en téléchargeant tout bonnement une version toute prête, ici.
Pour la coloration syntaxique, c'est plus ou moins simple suivant l'éditeur.

Gibiane, je n'en avais jamais entendu parler ; ça fait bien sûr penser aux Shadocks.


----------



## AISAO (16 Février 2017)

Bizarrement la version de gedit dont je disposais fonctionnait très mal, impossible d'agrandir la fenêtre et plantait très régulièrement. Je pense rester sous Kwrite, qui au final est pas si mal et dont l'affichage est retina !

En revenant au sujet des scripts, j'avais réussi à en créer un qui était disponible dans le menu "Services" de l'éditeur mais malheureusement elle ne fonctionnait pas et je l'ai supprimé. Mais depuis, les autres services crées n'apparaissent pas dans ce menu. Une idée du pourquoi du comment ?

Merci


----------

