3/26/2014

Inform7 et Gedit

J'ai recommencé à bidouiller avec Inform7*, mais comme l'IDE officiel (à savoir gnome-inform7), même si convivial et relativement bien foutu, est d'une exaspérante lenteur sur mon pauvre petit portable, j'ai décidé d'utiliser plutôt Gedit, un simple éditeur texte, et de le configurer pour mes besoins.

Je documente ici les étapes que j'ai suivies.

(* J'ai déjà parlé de Inform7, jadis, ici et , notamment)

1 - Installer gnome-inform7 et i7


Duh, ça semble stupide, mais on va avoir besoin de certains fichiers. Et mon module ne replace pas complètement l'IDE (quoique ce serait possible): gnome-inform7 est toujours nécessaire pour publier un fiction, par exemple.

Il faut aussi installer le compilateur en ligne de commande i7. On verra plus loin pourquoi.

Les deux logiciels sont disponibles sur le site de Inform7

2 - Coloration syntaxique


On veut que Gedit utilise une coloration syntaxique appropriée. Ce n'est pas nécessaire, mais c'est tellement, tellement plus agréable.

Il y a deux sous-étapes ici: d'abord, pointer vers le fichier de configuration pour les couleurs. Avec une installation typique, il se trouve dans /usr/share/gnome-inform7/styles/inform.xml . On peut l'ajouter à partir de la fenêtre 'Gedit Preferences', dans l'onglet 'Font & Colours'.

Ensuite, il faut aider Gedit à comprendre la syntaxe propre à Inform7. Pour ce faire, il faut utiliser les trois fichiers .lang (inform.lang, naturalinform.lang et naturalinformextension.lang) qui se trouvent dans le dossier /usr/share/gnome-inform7/languages/. Il suffit en fait de les copier dans /usr/share/gtksourceview-3.0/language-specs/. Si Gedit est ouvert, il faut le refermer, et tadam, les syntaxes Inform sont reconnues!

3 - Ajouter un plugin de compilation


Bon, c'est bien beau, avec l'étape 2, Gedit reconnaît la syntaxe d'Inform7 et affiche le code source correctement, mais ce serait bien de pouvoir compiler une fiction pour faire des tests pendant le développement, non?

Tout d'abord, il faut activer le plugin 'External Tools', qui va nous permettre d'ajouter un script de compilation. Si ça ne fonctionne pas, vérifier que le package 'gedit-plugins' est bien installé.

Ensuite, dans 'Tools/Manage External Tools", on peut rajouter le script en question, dans le champ 'Edit', idéalement après avoir créé une nouvelle entrée. Voici ce que j'utilise (c'est, évidemment, un work in progress) :

AJOUT : Depuis, j'ai écrit une meilleure version de ce script.

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


#!/bin/sh

#############################################
#
# Go (Inform)
# Script pour compiler une fiction,
# la jouer dans une interpréteur si
# la compilation fonctionne, ou afficher
# les messages d'erreur en cas d'échec.
#
##############################################

cd "$GEDIT_CURRENT_DOCUMENT_DIR/"

# Par défaut, le format est z5.
format=5

interpreteur=gargoyle-free
fureteur="midori --app="
output=../Build/output.z$format
msg_erreur=../Build/Problems.html

# Compilation de la fiction interactive et
# suppression des outputs textuels
i7 -s zcode=$format -c ../ > /dev/null 2>&1 &&

# Si la compilation fonctionne
if [ -e $output ];
# Ouvrir le .z5 (ou autre format) avec
# l'interpréteur, puis l'effacer
then $interpreteur $output && rm $output
# Sinon, afficher le message d'erreur
else $fureteur$msg_erreur
fi

# Ce dossier est créé automatiquement,
# j'ignore pourquoi. Vidanges.
rm -R ". Materials/" > /dev/null 2>&1;


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


Quelques remarques:

-Évidemment, l'interpréteur et le fureteur doivent être installés pour que le script fonctionne. J'ai choisi gargoyle-free et midori par préférence personnelle; ça peut être modifié sans problème.

- Le compilateur i7, cependant, est complètement nécessaire. Il est disponible sur le site du projet.

- Il y a techniquement moyen d'afficher le message d'erreur directement dans la console de Gedit, mais si je me souviens bien, cela produisait une certaine quantité d'informations indésirables.

- J'ai hardcodé l'utilisation du format z* un peu par paresse. On peut aisément modifier le script pour changer le format, mais c'est certain qu'il serait préférable de rendre ça plus flexible.

- Comme je l'ai mentionné plus haut, ce script ne supporte pas la publication finale des fictions. Il faut soit utiliser l'IDE ou i7, en ligne de commande.


Donc voilà, c'est ce que j'utilise pour écrire des fictions interactives. Maintenant, si je pouvais seulement trouver le temps d'en terminer une...

6 commentaires:

  1. Je sais pas si je dois me féliciter ou me désoler de comprendre le contenu de ce billet. Mais ma réaction première est surtout : y'aurait pas des outils plus simples, genre, pas sous Linux? :p (héhéhéhé j'suis pas fine! ;)

    RépondreEffacer
    Réponses
    1. Même sous Linux, l'outil de base (l'IDE) est très simple d'utilisation, interface graphique et tout. Mais comme je le disais dans le billet, sur mon mini portable, c'est LENT, pis LENT longtemps :P

      Sur mon desktop, je n'ai aucun problème d'utiliser l'IDE officiel ;)

      Effacer
  2. Ah ok, s'cuse, j'avais fait l'impasse sur la question du miniportable (d'ailleurs, depuis que j'ai changé le mien pour un Thinkpad qui m'a coûté à peine plus cher et qui est à peine plus lourd, je dois dire que ça fait du bien! ;)

    RépondreEffacer
    Réponses
    1. Héhé, pas de problème. J'attends que mon mini meurt avant de magasiner autre chose. Je l'ai depuis mars 2010, genre, et je le traîne partout. Ça commence à lui faire un âge respectable :P

      Effacer
  3. Le mien a toffé quatre ans (avec au moins une balade par semaine dans une sacoche ou un sac à dos) avant de mourir d'un critical hard drive failure. Donc... fais des backup!

    RépondreEffacer