Jacques Foucry bio photo

Jacques Foucry

IT, râleur et faiseur de pain

Email



Je vous ai récemment parlé d’un pour vim qui permet de gagner en confort pour écrire de l’Objective-C.

En plus de la coloration syntaxique, ce greffon apporte d’autres fonctionnalités intéressantes.

Création du squelette de l’implémentation

À partir d’un fichier header .h cocoa.vim est capable de générer le squelette de l’implémentation dans le fichier .m.

Il est nécessaire que le fichier dans lequel vous allez utiliser cette fonctionnalité soit reconnu comme un fichier d’implémentation, soit donc un .m. Une fois cette formalité accomplie, passez en mode commande et tapez :BuildMethods.

  • Si votre fichier d’implémentation porte le même nom que votre fichier, header la génération est simple et immédiat  ;
  • si votre fichier d’implémentation ne porte pas le même nom que votre fichier header vous devez le préciser dans la commande :
1
:BuildMethods monBeauFichier.h

Magique non ?

Note

Il est possible que malgré tout vous ayez du mal à vous faire respecter par Vim et ce greffon. Il faut s’assurer que les éléments qui le constituent sont bien lus au lancement de Vim. Pour ce faire on dispose du fichier ~/.vimrc. Dans celui-ci on va forcer quelques paramètres. Voici le mien, très court en réalité :

1
2
3
filetype plugin on
filetype on
source ~/.vim/ftplugin/objc_cocoa_mappings.vim
  • La première ligne indique qu’il faut utiliser la version greffon de filetype au lieu de celle par défaut ;
  • la seconde active la détection du type de fichier en cours d’édition ;
  • la troisième force le chargement des fonctions additionnelles de cocoa.vim.

Une fois le fichier créé, cocoa.vim devrait mieux fonctionner.

Liste des méthodes et saut à l’une d’entre elles

Un fichier d’implémentation comporte de nombreuses lignes de code et de nombreuses méthodes. En avoir la liste est important.

Passez en mode commande et tapez :ListMethod. La fenêtre se découpe alors, avec en bas la liste des méthodes. Déplacez votre curseur sur celle qui vous intéresse et faites un retour chariot. Magie encore, vous voici sur la première ligne de cette méthode.

Commentaires

Un autre greffon intéressant à mettre en place est vim.comments. Il permet, grâce à deux raccourcis clavier (CTRL-C et CTRL-X) de commenter ou dé commenté des lignes de code. Ce greffon n’est pas limité à Objective-C, il peut être utilisé pour du shell script, du php, du html… En fait, il n’est pas conçu pour l’Objective-C, il va nous falloir le modifier quelque peux pour le faire fonctionner.

L’installation

Copiez simplement le fichier comments.vim dans ~/.vim/plugin.

Avant d’aller plus loin, tester la présence de votre greffon en éditant un fichier source et en testant les raccourcis. Si vous éditez un fichier .m le commentaire sera un #. C’est normal, souvenez-vous que nous allons devoir personnaliser le script de ce greffon.

Personnalisation

Pour personnaliser le script, nous allons l’éditer, avec Vim par exemple :

1
$ vim ~/.vim/plugin/vim.comments

Nous allons ajouter la même chose en quatre endroits. L’ajout à faire est || file_name =~ '/m$' .
Ligne 110 :

1
if file_name =~ '.cpp$' || file_name =~ '.hpp$' || file_name =~ '.java$' || file_name =~ '.php[2345]?$' || file_name =~ '.C$'

devient

1
if file_name =~ '.cpp$' <em>|| file_name =~ 'm$'</em> || file_name =~ '.hpp$' || file_name =~ '.java$' || file_name =~ '.php[2345]?$' || file_name =~ '.C$'

La même modification est à faire sur les lignes 175, 220 et 285.

Les commentaires du fichier sont très clairs et doivent vous guider si vous êtes perdus.

Il est possible de commenter une ligne, mais aussi un bloc… Il suffit de sélectionner les lignes du bloc… Et la question qui suit doit être :”Et comment on sélectionne un bloc gros malin  ?”. Facile, avec le raccourci qui va bien.

Positionnez le curseur à l’emplacement de début ou de fin du bloc, utiliser le raccourci SHIFT-V et déplacez vous, vers le haut ou vers le bas jusqu’à l’autre borne de votre groupe et appliquez le raccourci de commentaire.

Complétion

Un atout majeur pour Xcode4, c’est la complétion, Et là, il faut dire qu’il va être très dur à battre. En effet, Xcode apprend votre code au fur et à mesure que vous le tapez pour augmenter son dictionnaire de complétion. Pas vraiment possible avec Vim. Toutefois avec le greffon cocoa.vim on trouve un fichier de snippets. Celui-ci se trouve dans ~./vim/snippets/objc.vim.

En regardant ce fichier on se rend compte que imp<TAB> est remplacé par #import "fichier.h".

Je vous laisse explorer ce fichier, le comprendre et pourquoi pas mettre vos propres snippets de complétion.

Attention, pour que la complétion fonctionne, il est nécessaire d’installer un autre greffon, snipMate.

Deux derniers petits trucs (pour aujourd’hui)

Vim (gvim, et MacVim aussi) supporte les onglets. Il suffit de le lancer avec l’option -p. Personnellement j’ai fais un alias dans on fichier .bashrc :

1
2
3
alias vim='vim -p'
gvim ='gvim -p'
mvim='mvim -p'

Vous êtes en train d’éditer un fichier .m et vous avez besoin d’ouvrir un fichier inclus (ou importé), il suffit de placer sur la ligne d’inclusion du fichier et d’utiliser le raccourci CTRL-W gf.

CTRL-W ouvre un nouvel onglet et gf pour go file.

Conclusion

Avec ces quelques greffons, extension de Vim, nous avons un environnement d’édition de fichier Objective-C qui n’a pas grand-chose à envier à Xcode4.


Laisser un commentaire

Les commentaires sont soumis à modération.