2
Oct/09
0

Vim et Rake

La structure de notre projet implique des phases de pré-processing permettant soit de compiler des sources en binaires, soit de transformer des modèles de vues en fichiers cibles.

Ces actions sont réalisées via le gestionnaire de tâches rake. Ces actions sont effectuées pour l’instant en ligne de commandes. Par exemple :

$ rake -T
rake build      # Build the sources
rake clean      # Clean workspace
rake compile    # Compile the sources
rake db:create  # Initialise a database
rake edoc       # Create documentation
rake front      # Preprocess views and styles
rake release    # Packaging
rake start      # Start application
rake test       # Unit tests
 
$ rake front
Creating style /d/apps/gns/priv/www/assets/styles/application.css
 
$

Nous allons intégrer ces commandes au sein de Vim afin de simplifier le processus (ne pas avoir à jongler entre les fenêtres) et l’automatiser (ne rien oublier afin de ne pas s’énerver parce que ça ne marche pas !).

Compilation sous Vim

Vim permet de définir quel est le programme à appeler lors de la « compilation » d’un fichier. Les interactions entre le programme de compilation et vim sont gérées par pipe.

La commande est la suivante :

:set makeprg=rake

Si on ouvre un fichier, par exemple une vue modèle type SASS, et qu’on tape la commande précédente, on peut alors lancer la compilation sous vim de la façon suivante :

:make front

On peut effectivement ajouter des arguments à la commande. De plus, taper :make permet de lancer la commande de base, qui compilera tous les fichiers (mais c’est un peu plus long).

Configuration et automatisation

Le but est maintenant d’automatiser ce comportement.

Pour cela, on va créer/modifier le fichier de démarrage ~/.vimrc (pour rappel, si vous faites ces modifications dans vim, vous pouvez recharger les réglages de démarrage par :source /path/.vimrc).

Pour cela, on peut exécuter des actions en fonction du type de fichier autocmd :

autocmd FileType sass,haml set makeprg=rake\ front

Lors de l’ouverture d’un fichier SASS, la commande :make pré-processera le fichier source. Le problème est que l’on est contraint à un seul type de compilation. Il vaut mieux ne pas embarquer l’option dans le make et proposer à la place des raccourcis.

On redéfini donc les commandes ainsi :

autocmd FileType sass,haml set makeprg=rake
 
au BufEnter *.sass,*.haml nnoremap <F9> :make front<CR>
au BufWritePost *.sass,*.haml :make front

Lors de la sauvegarde d’un fichier, la compilation sera jouée automatiquement.

Il est alors possible de décliner ce comportement pour tous les types de fichiers (source erlang).

Filed under: Rake, build, vim
Comments (0) Trackbacks (0)

No comments yet.

Leave a comment

No trackbacks yet.