Petite note sur l’utilisation des templates dans Intellij, WebStorm, PHPStorm…

Templates de fichiers

Les File templates permettent de définir des fichiers types.

ajout de file template

Les variables de templates ${NOM_VARIABLE} ( ou $NOM_VARIABLE ) permettent de définir des placeholders “dynamiques”, que l’on pourra renseigner au moment de la création du fichier.

Syntaxe variables

class ${NOM_VARIABLE}{
    $END$
}

Il est à noter que si un template contient plusieurs placeholders, Tab permet de “passer” au placeholder suivant.

Variables pré-définies

  • ${NAME}
  • ${PACKAGE_NAME}
  • … cf doc

Les valeurs des variables de file templates sont saisies via la popup de création du fichier.

Une option permet d’activer les live templates au sein du file template, de manière à éditer les variables injectées “dans leur contexte”.

Dans cet exemple, on définit un placeholder pour inclure une doc pour la classe crée, il sera bien plus pratique de le remplir dans l’éditeur, plutôt que dans une popup.

/**
* #[[ DOC ]]#
*/
class ${FILENAME}{
    $END$
}

Live templates aka snippets

Les live templates permettent d’insérer des fragments de codes paramètrables à l’aide de raccourcis textuels.

ajout de live template

Par exemple un raccourci lg qui afficherait automatiquement console.log(““) et qui placerait le curseur entre les guillemets après insertion.

console.log("$NOM_VARIABLES$");

Intellij intégre deux variables prédéfinies :

  • $END$ : permet d’indiquer où le curseur doit être placé après insertion du template et saisies de ses variables.
  • *SELECTION$ permet de faire référence au code sélectionné au moment de l’insertion du live-template.

Il est également possible de définir ses propres variables, renseignées dans la continuité de l’insertion du live template.

console.log('$NOM_VARIABLES$');
$END$

Injecter un live template autour d’une sélection

Ce template permet d’injecter une boucle for…of autour de la sélection active.

for( let p of $SELECTION$ ){
  $END$
}

utilisation des fonctions de live templates

Il est possible d’utiliser quelques fonctions dans les live templates :

  • capitalize()
  • arrayVariable()
  • camelCase()
  • capitalize()
  • clipboard()
  • … cf doc
print('$METHOD$... $END$');

ici la variable $METHOD$ sera remplacée par le nom de la méthode dans laquelle le code est inséré.

tpl methods

Créer rapidement un live template à partir de code existant

  • sélectionner le code de base du futur live template
  • appuyez 2 fois /shift (recherche “universelle”) ou Cmd+Shift+A (recherche d’actions ) et saisissez Live te… » “Save as Live template”
  • complétez , paramètrez…

:tada: Et voilà comment gagner 7mn30 par an !!!