S'il fallait citer un plugin sans lequel le développement sous Notepad++ deviendrait une calamité, mon choix se porterait très certainement sur l'indispensable Function List, un explorateur de code qui vient se greffer à l'éditeur et ainsi l'enrichir d'un outil par défaut absent mais pourtant très prisé des développeurs habitués aux IDE tels Eclipse ou NetBeans.
Bien que l'idée paraisse alléchante, on découvre très vite que dans un environnement PHP orienté-objet, l'intérêt de ce plugin se révèle finalement assez limité, surtout sachant avec quelle précision les IDE actuels peuvent synthétiser la structure d'une classe. Function List se contente lui de lister les fonctions et méthodes de manière dépouillée et surtout sans aucune prise en compte des caractéristiques orientées-objet tels la portée des méthodes, leur niveau de visibilité, les variables membres, les constantes de classes, etc...
J'ai cependant découvert que la configuration par défaut du plugin n'est pas du tout prévue pour exploiter pleinement les possibilités offertes. En effet, le plugin reconnait les différentes structures de n'importe quel langage grâce à une collection d'expressions régulières parfaitement configurables. Celles qui concernent la syntaxe de PHP sont effectivement réduites à leur strict minimum.
Je me suis alors attardé à réécrire une configuration plus adaptée au développement orienté-objet en PHP. Inspiré par l'explorateur de code d'Eclipse, je suis arrivé au résultat suivant :



Voilà donc un lifting rajeunissant qui ne dépaysera pas trop les utilisateurs d'Eclipse pour qui les icônes choisies sont déjà familières. Pour les autres, ou à titre de rappel, en voici la signification :
Pour l'avoir adoptée depuis quelques temps, je trouve cette configuration plus agréable, même si elle provoque un effet désagréable inhérent aux limitations actuelles du plugin (dans sa version 2.1) : Le tri ne s'applique plus sur l'ensemble de la liste mais séparément sur chaque groupe d'éléments, ce qui est parfois déstabilisant. Si un courageux se sent d'attaque, le code du plugin est en open source (C++) ;-)
Dernière remarque pour ceux qui voudraient améliorer cette configuration, j'ai pu remarquer que le système d'interprétation des expressions régulières se comporte bizarrement. Il semblerait que ce soit une limitation de Scintilla (le composant sur lequel le plugin est basé) qui ne permette malheureusement pas de tirer profit de la pleine puissance des expressions régulières. Ceci alourdi l'écriture des règles et restreint les possibilités.
Pour installer cette configuration, copiez les fichiers FunctionListRules.xml et php.bmp dans le répertoire %APPDATA%/Notepad++/plugins/config ou %INSTALL_DIR%/plugins/Config selon que vous ayez choisi ou non d'utiliser %%APPDATA% lors de l'installation de l'éditeur. Attention que ceci va restaurer les règles par défaut pour tous les autres langages. Pour conserver vos éventuelles personnalisations, ne copiez que le noeud <Language name="PHP"> du fichier XML.
Téléchargement
Vos commentaires
Avec Notepad++ v.6.6.9, j'ai dans le menu Affichage/Liste des fonctions, mais pas de plugin "Function List" dans la liste des "Compléments" (interface en français dans mon cas). Ce dernier plugin est absent de la liste de "Plugin Manager". Est-ce à dire que "Function List" n'existe plus en tant que plugin et intégré à la base de Notepad++ ? Dans ce cas, est-ce que votre patch pour PHP 5.5 est encore effectif ?
Merci d'avance pour votre réponse.
Bob.
merci beaucoup
Merci à toi.
J'ai installer n++ avec le setting portable, donc il peut pas utiliser %APPDATA%.
Mais pour l'installation du patch il me faut de placer le patch a cette place.
Merci pour l'effort!
This plugin is so awesome. 1 year i use SourceCookifier and i found out this one.
Thank you very much,
Lendormi
Un travail formidable :) Ton patch fonctionne a merveille ! Félicitation, super boulot !
@Bruno : Thank you for the tip ;)
@syndrael: If you are in the same config than me (WinXP, APPDATA mode), FunctionListRules.xml should be placed in %APPDATA%/Notepad++/plugins/config and php.bmp in %INSTALL_DIR%/plugins/Config. If it's still not working, just try to put both files in both directories :p
Si rien ne s'affiche, c'est peut-être que le fichier XML est au mauvais endroit. Tu peux le savoir en vérifiant si tu as bien des règles dans "Plugins/Function List/Language Parsing Rules/PHP"
@Francesco, I will have a look to it, stay tuned...
Mais l'initiative est louable pour ceux qui ont des petits PC quand Eclipse prend trop de rame, et c'est mon cas avec un PC à 512Mo.
S.
Great job!! Could there be any chance you will port this work for the other NP++ plugin: SourceCookifier? I don't know if it is as much configurable as FunctionList, but if you could have a look, i think it could be useful to many peoples.
Thanks anyway,
Francesco
Réagir à cet article
