SublimeText2 comme environnement de développement PHP
SublimeText fait parti de mes trois éditeurs éligibles au remplacement d'Eclipse pour mes développements quotidiens. Je reviendrais sûrement sur les raisons qui me font abandonner cet EDI mais en substance il était devenu plus un boulet à trainer qu'un accélérateur d'efficacité. Une lourdeur qui était justifiée par sa valeur ajoutée lorsque je travaillais sous Java/J2EE, mais qui devenait de plus en plus difficile à accepter lorsque je suis passé au développement WEB où finalement j'utilisais Eclipse plus comme un éditeur évolué me prenant 1GO de RAM... J'ai donc cherché à remédier à cette situation en évaluant mes besoins, et en cherchant quels "super" éditeurs de texte pouvaient y répondre. Je suis arrivé à gEdit, SublimeText2 et gvim. Ce petit Tutoriel est donc le fruit de mes essais sur SublimeText2.
Pourquoi (pas) SublimeText2 ?
SublimeText2, malgré son nom totalement idiot, était prometteur par son objectif même : un éditeur multi-plateforme cherchant à "mimer" l'excellent TextMate pour MacOS. Et de manière général il y arrive plutôt bien, surtout considérant qu'il s'agit d'une version encore très fraiche et pleine de bugs. Comme TextMate, cet éditeur est doté d'une communauté relativement active produisant de nombreux plugins auxquels viennent s'ajouter certains éléments compatibles avec Textmate (snippets, colorisations, etc.). L'outil est en outre très fortement paramétrable et le cas échéant, l'API python permet d'en étendre les fonctionnalités.
En revanche, gros inconvénient à mes yeux, l'outil n'est absolument pas libre. N'étant pas intégriste de nature, j'aurais pu faire avec (j'ai même acheté une licence), mais comme beaucoup de logiciels fermés, cet aspect implique une vitesse d'évolution très faible qui elle, au bout de deux semaines de remonté d'anomalies, commence déjà à me courir. Surtout lorsque j'aurais pu corriger 90% des problèmes rencontrés si j'avais accès aux sources.
Donc au final, je doute fortement que ST2 devienne à terme mon environnement standard. Mais malgré cela il s'agit d'un très bon outil que d'autre pourront trouver parfaitement à leur goût. Voilà pourquoi je prend la peine d'écrire ces quelques lignes sur ce que j'ai déjà pu trouver pour en faire un environnement de développement PHP viable. Ce document est tout sauf exhaustif dans la mesure où j'ai arrêté mes investigation en cours de route.
Pour ce qui est des deux autres éligibles, je pense, après avoir passé gedit au crible de mes besoins, qu'il ne sera pas, lui non plus retenu. C'est un excellent petit éditeur mais il lui manque des fonctions fondamentales pour en faire un environnement de développement viable comme, au hasard, une gestion de projets. Reste donc VIM que j'avais ajouté à ma liste sans grande conviction et qui m'a finalement assez bluffé jusqu'à maintenant. Mais ça, c'est une autre histoire...
Installation de l'auto-complètement et de la recherche de définitions
S'il est deux fonctionnalités devenues vitales pour un développeurs, ce sont bien l'auto-complètement permettant d'écrire rapidement des appels à des fonctions, mots clefs, classes, variables en en tapant juste les premières lettres. Et la recherche de définition consistant à pointer une fonction pour se téléporter sur l'endroit où elle est définie, ailleurs, dans un autre fichier.
ST2 en standard propose un auto-complètement très efficace mais non lié au code source du projet en cours. Il permet de récupérer les mots clefs du langages, les variables ou fonctions du fichier en cours, mais aucunement celles des autres fichiers. De même il n'est pas possible de retrouver rapidement la définition d'une fonction.
Pour combler cette lacune il existe fort heureusement un paquet, SublimeCodeIntel qui exploite Code Intelligence Plugin du projet Komodo Editor. Il apporte ainsi la prise en charge de nombreux langages dont PHP, Javascript, HTML5, etc.
Pour installer le paquet, il faut juste clone le projet dans le dossier des paquets de ST2 :
gaston$cd ~/.config/sublime-text-2/Packagesgaston$git clone https://github.com/Kronuz/SublimeCodeIntel.gitInstallation du thème
Ensuite, il faut s'assurer que le paquet (GNU/Linux cette fois) libpcre++-dev> est bien installé sur votre distribution (apt-get install libpcre++-dev sous Debian).
Il ne reste maintenant plus qu'à aller dans le dossier src de SublimeCodeIntel et de lancer la commande ./build.sh. Cela va recompiler le moteur d'indexation pour votre machine. Lorsque ce travail est effectué, vous n'avez plus qu'à redémarrer ST2.
Ensuite, si vous avez un projet ouvert avec ST2 comportant un ensemble de fichier sources (ex. PHP), vous pouvez tester l'auto-complètement via Ctrl-Espace. Le système va un peu mouliner pour indexer puis vous proposer une liste de possibilités.
Pour la fonctionnalité de recherche d'une définition de fonction, il faut officiellement faire un ALT+Click sur la fonction. Mais 1/ chez moi, impossible de faire fonctionner cela 2/ en tant qu'utilisateur eclipse, j'ai le réflexe de la touche F3.
Fort heureusement ST2 permet de modifier absolument tous les raccourcis claviers. Pour cela allez dans Preferences ? Key Bindings (User) pour ouvrir le fichier de configuration des raccourcis (qui doit être vide logiquement) et placez-y le contenu suivant :
[
{ "keys": ["f3"], "command": "goto_python_definition" }
]
Ne vous laissez pas impressionner par le goto_python_definition, cela fonctionnera aussi bien avec du PHP. Pour s'en convaincre, il suffit de sauvegarder la configuration, d'aller sur un appel de fonction du projet et de presser F3 pour être téléporté directement sur sa définition. La distance avec Eclipse se réduit fortement...
Réglages de la police et des tabulations
Si la police utilisé ne vous convient pas, il est très simple d'en change en modifiant le fichier Preferences ? File Settings (User) :
"font_face": "Mono",
"font_size": 9,
}
De même vous pouvez modifier le mode de gestion des tabulations dans le même fichier :
{
"detect_indentation": false,
"tab_size": 2,
"translate_tabs_to_spaces": true,
"trim_automatic_white_space": true,
"word_wrap": false
}
ST2 nous pose un problème en PHP car le double-click sur un identifiant n'inclue pas tous les caractères de cet identifiant. C'est une chose facile à modifier grâce à la propriété word_separators :
ST2 utilise le correcteur orthographique Hunspell mais ne comporte en standard que les dictionnaires anglais. Vous pouvez facilement y remédier en allant sur le site dicollecte pour télécharger une archive française.
Ceci fait, décompressez les fichiers .dic et .aff dans le dossier ~/.config/sublime-text-2/Packages/Language - English et redémarrez ST2. Vous devriez voir apparaître la nouvelle langue dans View ? Dictionnary.
Il est possible de changer totalement l'apparence de ST2. Il existe pour cela des paquets sur GitHub comme par exemple le très sympa thème "Soda". Pour l'installer, procédure habituelle, clone du projet dans le dossier des paquets :
Ensuite il nous faut modifier la configuration globale pour pointer sur le nouveau thème.
Dés la sauvegarde, le thème est pris en compte.
Il s'agit là des couleurs utilisées au sein de l'éditeur pour mettre en brillance les mots clefs, variables, etc. ST2 est fourni en standard avec un beau paquet de schémas que vous pouvez déjà explorer en allant dans Preferences ? Color Scheme. Mais si rien ne vous convient, en cherchant un peu sur le net vous en trouverez facilement un autre plus à votre goût.
N'étant personnellement pas un grand fanatique des looks "darks", j'ai opté pour celui préconisé par le thème Soda que vous pouvez télécharger ici.
Une fois l'archive téléchargée, décompressez là dans un dossier Color Scheme - User dans votre dossier de paquets. Vous devez avoir deux fichiers .tmTheme. Redémarrez ST2 et à votre retour vous devriez voir Preferences ? Color Scheme ? Color Scheme - User deux nouveaux thèmes que vous pouvez utilisez directement.
Installation d'un dictionnaire en français
Changement du thème global
"theme": "Soda Light.sublime-theme",
}
Changement du thème de la coloration syntaxique
Quelques liens utiles