- Publié le 08 avril 2007 à 22:13
Je viens de mettre en ligne la toute première version du plugin eZVim sur la plateforme eZ Projects et dans les contributions externes eZ publish. vim.org est inaccessible au moment où j'écris ces lignes, mais je l'ajouterai aussi là bas dès que possible.
eZVim est un plugin vim sous licence GPL qui ajoute à cet éditeur quelques fonctionnalités pour le développeur eZ Publish inspirées du plugin Smile eZ Plugin. Pour l'utiliser, il faut vim 6 ou supérieur, avec le support des scripts en python. Sous Ubuntu et Debian, il suffit d'installer le paquet vim-pyhon.
Classes View
Une barre verticale, le Classes View, permet de voir rapidement, les groupes de classes, les classes et leurs attributs. Cette barre affiche les informations les plus pertinentes (identifiant numérique, identifiant, classe, datatype, ...). Les attributs obligatoires sont mis en valeur et préfixés par le signe +. Des screenshots sont en ligne sur la page gallery du projet.Plusieurs raccourcis sont utilisables dans cette barre :
- + ouvre l'élément courant
- - ferme l'élément courant
- * ouvre tous les éléments
- = ferme tous les éléments
- d ouvre le moteur de recherche sur ez.no pour le datatype de l'attribut sur la ligne courante
- v permet de visualiser le groupe ou la classe sur la ligne courante.
- e permet d'éditer le groupe ou la classe sur la ligne courante.
Cette fonctionnalités nécessite l'installation de l'extension eZ Publish SmileClasses disponible sur le site du plugin Smile eZ Plugin.
Abbréviations vim
Les abbréviations vim permettent de taper quelques lettres et l'éditeur les remplace automatiquement par la séquence définie. Par exemple, en tapant ezfcls (Fetch Content List Sort) suivi d'un espace, vim va automagiquement remplacer cette séquence par :
fetch(content, list, hash('parent_node_id', __ ,
'class_filter_type', include,
'class_filter_array', array( __ ),
'sort_by', array( __ ),
'offset', $view_paremeters.offset,
'limit', __ )) Les éléments à complèter par le développeur sont remplacés par la chaîne " __ " qui est mise en valeur par l'éditeur. Chaque paramètre est sur une ligne, il est ainsi extrêmement simple de supprimer les lignes qui seraient superflues ou de rajouter des éléments moins courants (limitation, main_node_only, ...).
A venir
D'autres fonctionnalités sont à venir, en particulier :
- Une coloration syntaxique spécifique pour les templates eZ Publish
- La validation syntaxique des templates dans vim
- Custom operators view qui, à la manière du Classes View, affiche les extensions fournissant des opérateurs ainsi que les prototypes de ces opérateurs.
- Publié le 04 avril 2007 à 23:54
Mon projet de plugin vim pour eZ Publish avance doucement mais surement. Il faut dire qu'à la base je connais peu le langage de script de vim et à peine plus Python, je butte parfois sur des choses toutes bêtes, mais c'est comme cela qu'on apprend... Mais après quelques soirées, je suis assez content, car la partie Classes View qui interface l'extension SmileClasses (la même utilisée par le plugin pour Eclipse) est en très bonne voie. Une image vaut mieux qu'un long discours :
On voit les 4 groupes de classes, Content et Users sont dépliés et, dans Content, la classe Page est elle aussi dépliée. Pour le moment, l'affichage est géré par les raccourcis classiques de vim sur les fold .
Ce qu'il manque maintenant, c'est un peu de coloration syntaxique pour y voir plus clair et quelques variables/paramètres pour la configuration (adresse du site, largeur de la barre verticale, ...). J'espère pouvoir aussi ajouter des raccourcis pour ouvrir un navigateur directement sur les interfaces de visualisation, d'éditions ou de documentation des différents éléments...
Ne cherchez pas de lien pour télécharger ce plugin, en l'état, il n'est pas encore tout à fait utilisable, il y a quelques bidouilles à faire pour l'utiliser mais ça devrait arriver rapidement et très probablement sous licence GPL.
- Publié le 28 mars 2007 à 23:54
J'en parlais récemment lors d'un déplacement à Levallois, j'ai vraiment envie d'avoir un plugin vim dédié au développement eZ Publish similaire à celui lancé par Smile pour Eclipse, car il y a de bonnes idées et parce que franchement Eclipse c'est pas mon truc du tout... Ce qui m'intéresse surtout dans un premier temps, c'est la fonctionnalité ClassView et éventuellement la vérification syntaxique des templates à la sauvegarde ou en lançant une commande. Je pense aussi intégrer quelques abréviations Vim permettant d'insérer rapidement quelques constructions syntaxiques courantes (fetch list, node, tree, ...).
Vim dispose d'un langage de script permettant de manipuler les différents éléments du programme (configuration, buffer, fenêtre, ...) et d'extensions permettant d'utiliser des langages plus avancés dont Ruby, Python, TCL et Perl. Je connais mal Perl et pas du tout les 3 autres, mais je suis assez attiré par Python. Je me suis donc lancé dans un aperçu rapide de ce langage grâce au très bon livre Langages de script sous Linux de Christophe Blaess et pour le moment, je trouve ce langage très élégant et plutôt agréable à utiliser... Bon j'ai juste pondu 18 lignes de code très inspirées d'un petit hack permettant de poster sur un blog Wordpress depuis Vim. Pour le moment mon code permet d'afficher dans un buffer vim les groupes de classes, les nom des classes et leurs attributs extraits du XML généré par l'extension eZ Publish SmileClasses (la même utilisée par le plugin Eclipse), c'est un début. Il faut maintenant que j'épluche un peu la documentation pour obtenir un panneau lattéral similaire à ce que fait par exemple l'extension Taglist.