Toujours dans la catégorie astuces bêtes et méchantes, la création de templates personnalisés pour FlashDevelop. Héhé ça faisait 2 fois que je jetais un coup d’oeil, mais pas au bon endroit…
Pour trouver le dossier data de FlashDevelop, aller dans le menu :
Tools > Application Files
Les templates actuels se trouvent dans :
Templates/ProjectFiles/AS3Project
Nous allons modifier la classe créée par défaut depuis la vue Project.
Voici ce qu’on trouve dans Class.as.fdt :
package $(Package) $(CSLB){ $(Import) /** $(CBI)* $(FileName) $(CBI)* @author $(DefaultUser) $(CBI)*/ $(Access)class $(FileName)$(Extends)$(Implements)$(CSLB){ public function $(FileName)($(ConstructorArguments)) $(CSLB){ $(Super)$(EntryPoint) } } } |
Si le contenu de votre fichier est différent de celui ci-dessus (RTM 3.0.3) allez chercher sa dernière version dans le dossier d’installation de FlashDevelop (sous windows C:\Program Files\FlashDevelop\Templates\ProjectFiles\AS3Project). FlashDevelop ne remplace pas ce fichier lors de ses mises à jour.
Cette modification vous permettra en plus si vous utilisez Flashdevelop depuis une version beta de “débugger” l’ajout de dépendance et d’implémentation à la création de la classe (Fonctionnalité ajouté depuis la 3.0.?). Enfin ceux qui ont eu le problème comprendront…
Nous allons maintenant :
- insérer un custom argument
- insérer la date de création du fichier
Et notre classe devient donc :
package $(Package) $(CSLB){ $(Import) /** $(CBI)* $(FileName) $(CBI)* @author $(DefaultUser) $(CBI)* @creation $(Timestamp) $(CBI)* @mood $(Mood) $(CBI)*/ $(Access)class $(FileName)$(Extends)$(Implements)$(CSLB){ public function $(FileName)($(ConstructorArguments)) $(CSLB){ $(Super)$(EntryPoint) } } } |
Il vous suffit ensuite d’ajouter le custom Argument Mood pour définir votre humeur du moment (Tools > Custom arguments).
Vous trouverez les variables disponibles sur le wiki de FlashDevelop.
En bonus voici le template a ajouter dans Templates/ProjectFiles/AS3Project pour créer des singletons depuis la vue projet :
package $(Package) $(CSLB){ /** $(CBI)* $(FileName) $(CBI)* @author $(DefaultUser) $(CBI)*/ public class $(FileName)$(CSLB){ public function $(FileName)(privateAccess:PrivateConstructorAccess) $(CSLB){ } /************************ * SINGLETON ************************/ private static var _oI:$(FileName); public static function getInstance():$(FileName) { if(_oI == null){ _oI = new $(FileName)(new PrivateConstructorAccess()); } return _oI; } } } internal class PrivateConstructorAccess{} |
Petit bémol, les templates ajoutés perdent les options proposées à la création d’une Classe (insertion des dépendance , implémentation et accès)…