Dans ce nouvel article, nous allons continuer à améliorer nos live templates PHPStorm. Si vous ne savez pas de quoi je parle, je vous conseille de lire mon précédent article qui vous permettra de comprendre l’importance d’utiliser des live templates.
Pour continuer à vous améliorer, je vous ai traduit pour la première fois la liste des fonctions implémentables dans les live templates de PHPStorm. Je vais commencer par vous montrer comment utiliser une fonction, puis je vous propose de découvrir le tableau ci-dessous afin de vous rendre compte du champ des possibles.
Pour appliquer un live template, je vous propose d’en créer un nouveau. Vous devez vous rendre sur la fenêtre suivante : File -> Settings... -> Editor -> Live Templates.
Pour notre exemple, nous allons poursuivre avec du HTML sur le même thème que l’article précédent. Il faut donc cliquer sur html/xml
, appuyer sur le bouton +
puis sélectionner Live Template
. Dans l’abréviation, on va mettre smartInput
. Sans oublier de spécifier le contexte (message rouge en dessous du champ Template text) en indiquant HTML. Puis on écrit un simple input dans la partie Template text
. Voici le code :
$NOM_CHAMP_NOM$ : <input type="$TYPE$" name="$CHAMP$" id="$CHAMP$" placeholder="$PLACEHOLDER$" />
Si on fait un input Nom du fournisseur, on est d’accord que la différence entre $NOM_CHAMP_NOM$ = 'Nom du fournisseur'
et la variable $CHAMP$ = 'nomDuFournisseur'
relève du camelCase
(on supprime les espaces et on met des majuscules sur les premières lettres).
Traditionnellement, on l’écrit soi-même d’une manière robotique, mais on peut aussi le réaliser avec notre éditeur favori PHPStorm.
Pour ce faire, l’IDE propose une fonction que vous allez retrouver plus bas qui se nomme camelCase
. Pour l’utiliser, rien de plus simple. Vous devez cliquer sur le bouton Edit variables
qui se trouve à droite.
En cliquant dessus, vous obtenez une petite fenêtre récapitulant les variables écrites dans le champ Template text
.
Maintenant, nous allons pouvoir indiquer à PHPStorm quelles sont les fonctions à utiliser pour telle ou telle variable. Dans notre cas, nous allons utiliser la fonction camel case
sur le CHAMP
.
Pour ce faire, vous allez cliquer sur la colonne Expression
de la ligne Champ
, puis écrire camelCase(NOM_CHAMP_NOM)
. Vous obtenez alors la fenêtre suivante :
👉 Petite astuce : lorsque vous écrivez la fonction dans la colonne expression, PHPStorm attend que vous appuyiez sur la touche entrée pour valider votre expression.
Ensuite vous cliquez sur OK
, puis Apply
, puis OK
. Je précise que vous pouvez tester cette création dans un fichier HTML. Si vous êtes sceptique, je vous propose ce petit GIF de démonstration :
Je vois bien dans vos yeux de lecteur/développeur que vous voulez en savoir plus. C’est la raison pour laquelle je vous propose la liste complète des fonctions utilisables dans PHPStorm pour les live templates
.
Tout est traduit et vous retrouverez des exemples sur quasiment toutes les fonctions. Essayez plein de choses, commentez, et envoyez-nous vos meilleures créations ! Nous les partagerons sur le blog.
Dans le prochain article, nous verrons comment améliorer notre smartInput
avec les nouvelles fonctions présentées ci-dessous. Si cela vous plaît toujours, nous aborderons ensuite d’autres live templates
plus pointus.
Liste des fonctions PHPStorm pour live template
Nom de la fonction | Description | Exemple |
camelCase(String) | Convertit une chaîne en camel case (une fonction très utile) | my-text-file ou my text file ou my_text_file => myTextFile |
capitalize(String) | Capitalise la première lettre d’une chaîne | champs => Champs |
capitalizeAndUnderscore(sCamelCaseName) | Capitalise toutes les lettres d’un camelCase et remplace les espaces par un underscore | FooBar => FOO_BAR |
classNameComplete() | Permet à l’utilisateur d’autocompléter le nom d’une classe de son projet | main => mainClass |
clipboard() | Insère une donnée qui a été copiée dans votre presse papier | |
snakeCase(String) | Transforme un texte minuscule avec underscore en camelCase | foo_bar => fooBar |
complete() | Utilise l’auto-complétion de code pour compléter une variable | $mavariable => $mavariable1 car précédement $mavariable1 a été défini |
completeSmart() | Même système que le précédent mais plus général et intelligent | |
date(sDate) | PHPStorm applique un format de date sur une date saisie | Si on met le format dd MMM yyyy en paramètre de la fonction date et qu’on écrit en date 11/23/12, la date est transformée en 23 Nov 2012. |
decapitalize(sName) | Transforme la première lettre en minuscule | Prenom => prenom |
enum(sCompletionString1,sCompletionString2,...) | PHPStorm crée une liste déroulante de possibilités à insérer | Par exemple sur un input HTML, PHPStorm peut afficher une liste de type :
|
escapeString(sEscapeString) | Supprimer des caractères dans une chaîne | escapeString(‘é’) sur le prénom Jérémy => Jrmy |
expectedType() | Retourne le type d’un élément | Si on définit une variable de type string et que le langage nous demande de préciser le type, cette fonction va l’écrire toute seule.
expectedType chaine => string chaine |
fileName(sFileName) | Retourne le nom du fichier avec l’extension | /var/www/monfichier.txt => monfichier.txt |
fileNameWithoutExtension() | Retourne le fichier sans extension | monfichier.txt => monfichier |
firstWord(sFirstWord) | Retourne le premier mot d’une chaîne de caractère | mon mot => mon |
lineNumber() | Retourne le numéro de la ligne courante | Peut être utile pour faire du débug en affichage : echo lineNumber() => echo 10 |
lowercaseAndDash(String) | Retourne une chaîne en minuscule séparée par des – | MonExempleNom => my-exemple-name |
snakeCase(sCamelCaseText) | Retourne un texte en remplaçant les majuscules par des minuscules et en les séparant par des underscore | snakeCase test Encore => snake_case_test_encore |
spaceSeparated(String) | Transforme un texte CamelCase en minuscule avec espace | fooBar => foo bar |
time(sSystemTime) | Retourne l’heure courante du système | 12:28 (peut être utile pour du debug) |
timestamp() | Retourne le temps courant en millisecondes | 1491906607694 |
underscoresToCamelCase(sCamelCaseText) | Retourne une chaîne qui a n’a plus d’underscore mais ajoute une majuscule | foo_bar => fooBar |
underscoresToSpaces(sParameterWithSpaces) | Remplace une chaîne passée en paramètre avec des espaces à la place des underscores | un_bateau_bleu => un bateau bleu |
user() | Retourne le nom de l’utilisateur courant | Jeremy |
jsArrayVariable() | Retourne un nom de tableau Javascript | |
jsClassName() | Retourne le nom de la classe Javascript courante | ClassName |
jsComponentType | Retourne le type d’un composant Javascript | string |
jsMethodName() | Retourne le nom de la méthode courante | methode |
jsQualidiedClassName() | Retourne le nom complet de la classe courante en Javascript | ClassCompleteName |
jsSuggestIndexName | Retourne une suggestion de nom pour un index | i |
jsSuggestVariableName | Retourne une suggestion de nom pour une variable | obj |