Clochix

Aller au contenu | Aller au menu | Aller à la recherche

lundi 10 décembre 2007

Eclipse : restaurer via l'historique local

J'avais déjà signalé qu'Eclipse possède un historique local qui permet de revenir en arrière sur les modifications d'un fichier. Mais cet historique va plus loin : il permet également de restaurer des fichiers effacés par inadvertance.

Depuis une récente version, les fonctions d'annulation d'une action concernent également les manipulations de fichier. Vous pouvez annuler des copies ou des déplacements de fichier via le menu Edit/Undo. C'est pratique, sauf quand vous utilisez ces fonctions par erreur. Par exemple si, voulant annuler vos dernières modifications d'un fichier, vous tapez quelques vigoureux Ctrl-Z en croyant que le focus est sur l'éditeur de code alors qu'il est sur le navigateur de projet. Dans ce cas, Eclipse va annuler vos dernières manipulations de fichiers. Imaginez, au hasard, que vous aviez commencé la journée en copiant des fichiers du répertoire A vers le répertoire B, avant de passer la matinée à modifier les fichier dans B. Un undo malencontreux annulera les copies de fichier, perdant toutes vos modifications. C'est là que tel l'homme en noir, l'historique local arrive à votre secours : un clic-droit dans l'explorateur de projet vous permet d'accéder au menu Restore from Local History, où vous retrouverez tous vos précieux fichiers. Ouffffffffffff !

Cet exemple est évidemment de pure fiction, toute ressemblance avec une grosse frayeur qui vient de m'arriver serait fortuite ;-)

vendredi 30 novembre 2007

Valider la syntaxe dans Eclipse avec Code Sniffer et PHP Documentor

J'avais évoqué il y a un an PHP_CodeSniffer, une application PHP disponible dans PEAR permettant de vérifier automatiquement le respect de normes de programmation (type d'indentation, nommage des variables, etc). A l'époque, je ne l'avais pas testé, car il n'était compatible qu'avec les standards PEAR, et la création des fichiers pour lui faire reconnaître d'autres normes n'avait pas l'air triviale.

Aujourd'hui les choses ont changé : la V1 approche à grand pas, CodeSniffer intègre à présent les normes de programmation Zend, et justement j'interviens en ce moment sur un projet qui utilise le Zend Framework. Une bonne occasion de tester CodeSniffer et PHPDocumentor en lien avec Eclipse pour essayer d'obtenir du code un peu mieux écrit.

L'installation est simple : les deux programmes sont disponibles dans PEAR, un coup de pear install suffit à les installer. On dispose alors de deux nouvelles commandes, utilisable en console : phpcs et phpdoc. L'intégration de phpcs avec Zend n'est malheureusement pas native, elle nécessite la présence sur la machine d'un petit utilitaire, zca, fournis avec Zend Studio et non libre. Après l'installation de zca, il faut indiquer à phpcs où il se trouve :

$ phpcs --config-set zend_ca_path /path/to/ZendCodeAnalyzer

L'utilisation est ensuite très simple : phpcs --standard=Zend {fichier}

PHP Documentor permet quant à lui de créer la documentation d'un projet à partir des commentaires du code source. Il suffit que ces commentaires respectent la syntaxe de phpDocumentor.

J'utilise ces 2 programmes directement depuis Eclipse pour vérifier que mon code respecte bien les standards de programmation du projet et est correctement documenté. Pour ce faire j'ai créé un petit script que j'appelle depuis Eclipse:

$ cat check_syntax.sh 
#/bin/bash
/usr/bin/phpcs --standard=Zend $1
/usr/bin/phpdoc -f $1 -t /dev/null | grep "WARNING\|ERROR"

Pour appeler ce script depuis l'IDE, il suffit de l'exécuter comme un outil externe: dans le menu Run choisissez External Tools / Open External Tools Dialog et créez un nouvel outil avec ces paramètres:

  • name : check syntax
  • location : le chemin de votre script (pensez à faire un chmod pour le rendre exécutable)
  • argument : ${resource_loc}

Pour appeler le script il vous suffit ensuite de choisir votre outil via la barre d'outil External Tools. La sortie du script s'affichera dans la console.

Cela demande évidemment la discipline d'exécuter ce script à la main sur chaque fichier modifié. Une étape suivante pourrait être de créer un pre-commit hook dans Subversion pour n'autoriser le commit que des fichiers syntaxiquement corrects. Ou d'ajouter ces vérifications aux scripts d'intégration continue du projet. Un jour quand j'aurai un peu de temps...

Références

lundi 15 janvier 2007

Plus loin avec Eclipse, Mylar, Subversion...

Suite de mon précédent billet, je continue à creuser du côté d'Eclipse, Subversion, Mylar, la gestion de tickets et de temps, les solutions pour lier le tout...

Lire la suite...

mercredi 10 janvier 2007

Gérez vos tâches dans Eclipse avec Mylar

Mylar est un module additionnel pour Eclipse (un plugin quoi !) permettant de gérer des tâches directement depuis l'IDE. La version 1.0 est sortie en décembre 2006, j'en profite pour faire un petit tour des fonctionnalités.

Lire la suite...

jeudi 23 novembre 2006

Utilisation de l'historique local d'Eclipse

Décidément, reading the fucking manual permet d'apprendre plein de choses (pléonasme). C'est ainsi que je viens de découvrir l'historique local d'Eclipse ! Peut-être étiez vous aussi neuneu que moi et ne le saviez-vous pas encore, mais Eclipse conserve un historique local de toutes les modifications effectuées dans un fichier.

Lire la suite...

mercredi 22 novembre 2006

Utiliser les marque-pages dans Eclipse

Créer un marque-page dans EclipseJe n'avais jamais utilisé la vue "bookmarks" d'Eclipse, et je découvre à l'instant son utilité. Elle permet de gérer des marque-pages à l'intérieur de vos projets, pour accéder rapidement à certains fichiers au lieu de devoir fouiller dans l'arborescence des dossiers. Pour créer un marque-page, il suffit d'ouvrir le fichier et de faire un clic-droit dans la marge de droite (au niveau des numéros de ligne si vous les affichez). Vous pouvez ensuite accéder rapidement à vos marque-pages via la vue du même nom.

source : les bookmarks dans la doc d'Eclipse

mercredi 27 septembre 2006

PHP CodeSniffer, pour contrôler le respect des standards de programmation en PHP

La société MySource Matrix fournit 2 outils libres pour aider au respect des normes de présentation du code : Snoopy et PHP_CodeSniffer, une ré-écriture du précédent pour PHP5. Les 2 bibliothèques utilisent les fonctions d'analyse du code de PHP pour vérifier le respect par un code source de règles de formatage. Par défaut, PHP_cs utilisera les conventions de codage de PEAR, mais un petit tutorial explique comment créer ses propres règles. Bon, j'ai jeté un oeil à l'exemple fourni, et ça n'a pas l'air très simple. On peut espérer que des modules pour les principales normes de codage verront rapidement le jour et que la plupart des projets utiliseront une des ces normes.

Tout cela est bien sympathique, mais franchement, vivement que PHPEclipse inclue ce genre de chose, histoire d'améliorer encore un peu la qualité du code produit. A moins qu'une extension du plugin Checkstyle à PHP soit possible.

lundi 29 mai 2006

Easy Eclipse : Eclipse pré-packagé pour le développement PHP

Pour les développeurs et développeuses PHP qui hésiteraient encore à tester Eclipse, voici l'occasion de faire le grand saut : EasyEclipse vient de sortir une distribution spécialement consacrée à notre langage. EasyEclipse est un projet visant à fournir des packages Eclipse pré-configurés pour différents usages, sous forme de "distributions". Chaque distribution se compose d'une archive contenant la plate-forme Eclipse et différents plugins. La plupart des archives sont disponibles pour Nunux, OS X et windaube. EasyEclipse pour PHP contient ainsi en plus de l'IDE de base PHP Eclipse, un plugin spécifique pour la prise en charge de PHP, Simple Test, un environnement de tests, un plugin pour gérer des bases de données directement depuis Eclipse, un autre pour l'interface avec Subversion… et des documentations pour débuter avec tous les composants.

EasyEclipse propose actuellement 9 distributions différentes, autour de Java, PHP, RoR et du développement de plugins Eclipse, et référence des dizaines de plugins. Un bon moyen de ce mettre à cet excellent IDE libre et multi-plateforme qu'est Eclipse.

Ce billet ayant un petit succès (suis-je un des seuls bloggueurs francophones à avoir parlé d'EasyEclipse ?) je vais tâcher de l'enrichir de temps en temps, avec par exemple des nouvelles du projet :

  • une version 1.0.2 est sortie le 25 juin et devrait être la dernière de la branche 1.0, elle est donc considérée comme stable (les développeurs et les développeuses ne s'occupant pas des bugs dans les composants fournis)
  • pour avoir une vue d'ensemble des composants fournis dans chaque distribution, jetez donc un oeil à cette page
  • sur un sujet proche, la fondation Eclipse a lancé le projet Calisto dont le but est d'harmoniser les releases de l'IDE et de 9 projets tournant autour, afin de fournir en permanence des versions compatibles entre elles. Ces projets sont BIRT (outil de reporting et de Business Intelligence), CDT pour développer en C et C++, DTP pour l'accès aux données, EMF (framework de modélisation), GEF, GMF, VE, TPTP qui facilite les procédures de test, et WTP pour le développement web