Transformer rapidement les déclarations des méthodes en leur définition

AliGatorAliGator Membre, Modérateur
septembre 2009 modifié dans Objective-C, Swift, C, C++ #1
L'astuce du jour permet, lorsque vous déclarez une nouvelle classe et que vous préparez toute son @interface en déclarant les méthodes dans le .h, de passer ensuite rapidement ces déclarations de méthodes du .h vers leur définition dans le .m

Jusque là , pour ma part je faisais un copier/coller des méthodes du .h, je les collais dans le .m, puis je m'amusait à  remplacer les ";" par des "{" et "}", et à  jarter les commentaires un peu chargés ayant pu être mis dans le .h (pour de l'autodoc par exemple) qu'il n'est pas forcément nécessaire de répéter dans le .m...

Pour me faciliter la vie, j'en suis donc venu à  faire un petit "User Script" que je vous partage.
Le principe d'utilisation est simple : il va copier dans le presse-papier une version "transformée" de la sélection, en ne prenant que les lignes se terminant par un ";" et en remplaçant ce ";" par "\n{\n}".

Voici comment le mettre en place :
  • dans Xcode, dans le menu "Script" (celui avec la petite icône noire du parchemin AppleScript, entre "Window" et "Help"), choisissez "Edit User Scripts..."
  • Crées un nouveau script de type "New shell script" à  l'aide du bouton "+" en bas à  gauche de la fenêtre qui s'est affichée (placez ce script où vous voulez dans l'arborescence du menu pour organiser ça comme bon vous semble)
  • Associez le raccourci que vous souhaitez à  ce script (double-clic dans la 2e colonne en face de la ligne nouvellement créée). Moi j'ai mis "ctrl-alt-pomme-C"
  • Indiquer "Selection" dans le menu Input en haut, "Home Directory" (quoiqu'on s'en fout pour notre cas) dans le menu "Directory", puis "Place on Clipboard" dans le menu Output en bas, et "Display in Alert" pour le menu "Errors"
  • Tapez le script suivant dans la zone centrale :
#! /usr/bin/perl -w<br /><br /># read the selection from standard input<br />my @selection = &lt;STDIN&gt;;<br /># if selection is empty, nothing to do<br />if (!@selection) { exit; };&nbsp; <br /><br /># get each line that ends with &quot;;&quot;, replace with it {}<br /># and add to clipboard<br />foreach my $line (@selection)<br />{<br />&nbsp; &nbsp; if ( $line =~ s/&#092;;[ &#092;t]*$/&#092;n{&#092;n}/ )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; print $line;<br />&nbsp; &nbsp; }<br />}


Ainsi vous pourrez dorénavant sélectionner vos déclarations de méthodes, faire Ctrl-Alt-Pomme-C (ou le raccourci que vous aurez choisi), puis passer dans le .m et faire simplement Pomme-V, et vous aurez les structures des définitions des méthodes prêtes à  être remplies.

Ce script n'est pas parfait puisqu'il ne gère pas les cas où vos déclarations de méthode tiennent sur plusieurs lignes, et peut se gourer si vous avez des lignes de commentaires se terminant par ";"... Donc si vous souhaitez l'améliorez, n'hésitez pas. Mais en attendant moi ça me sert bien et me gagne pas mal de temps à  l'usage  ;)
Connectez-vous ou Inscrivez-vous pour répondre.