[Résolu] Mise en page automatique du code

septembre 2014 modifié dans Xcode et Developer Tools #1

Bonsoir à  tous,


 


Je cherche un moyen de mettre en page automatiquement le code avec Xcode, comme le fait très bien Visual Studio. Existe t'il un truc identique ou pas ? (pour le moment je n'ai rien trouvé mais je ne désespère pas qu'un script Ruby ou autre doit pouvoir régler ce problème).


 


Merci pour vos réponses.


Réponses

  • Alors par mise en forme tu dois parler d'indentation je pense pour cela :


     


    Editor > Structure > Re-Indent


  • septembre 2014 modifié #3

    En fait je pensais à  des options comme le placement des accolades, les espacements, etc.


    Comme peut le faire VS de manière assez poussé.


  • Un exemple en image car ce n'est pas clair ton histoire 


     


    tu parle de quelque chose du style qui te dit quelle accolade est lié à  laquelle etc .. ?


  • Ta question m'étonne. Il m'a semblé que XCode fait cela déjà , mais je n'ai jamais travaillé avec VB. Les couleurs de caractères, le déplacement des lignes sont très lisibles. Il faut effectivement penser à  aller à  la ligne pour fermer une accolade. Bon... 


     


    Que souhaites-tu exactement?


  • Hervé, oui Xcode fais déjà  des trucs, du genre il garde l'indentation dans ton code quand tu passes a la ligne.


     


    D'ailleurs, au passage, vous faites comment quand vous sélectionnez plusieurs lignes et que vous voulez utiliser une tabulation pour avancer ou revenir de plusieurs crans ? Je veux dire à  part redéfinir le raccourcis clavier qui est juste impossible (4 touches, c'est un peu n'importe quoi pour une fonction qui est généralement over utilisé).


     


    Sinon, je sais pas, comme exemple imaginez vous êtes un peu dans le speed (un peu faible comme argument mais j'ai que ça sous la main là  tout de suite) et vous écrivez une méthode comme ça :




    -(void)maMethode:avecCetArgument puisUnAutre:(NSInteger)boum {
    [boum unAppel]; [boum unAutreAppel];
    [ici unAutreTruc]
    ;
    // Je fais n'importe quoi


    }

    Bon, c'est un peu le bordel quoi. Vous allez dans un menu et vous sélectionné un truc du genre "mise en forme automatique" pour obtenir ceci :



    -(void) maMethode:avecCetArgument puisUnAutre:(NSInteger)boum
    {
    [boum unAppel];
    [boum unAutreAppel];
    [ici unAutreTruc];

    // Je fais n'importe quoi
    }

    Voilà , une mise en forme déjà  plus propre. Vous avez jamais testé VS ?


  • Bah c'est ce que je t'ai donné au dessus pour faire l'indentation ... ?


  • Regarde bien mes deux exemples, je viens de tester et ça ne fonctionne pas.


     


    Tu as un point-virgule seul, sur le nom de la méthode entre le - et le (void) il y a un espace qu'il n'y avait pas avant, les deux premiers appels de méthodes sont sur une seule ligne pour être ensuite chacun sur la sienne, etc.


     


     


    Ton action dans le menu ne fait que de l'indentation et rien de plus.

  • Larme, génial c'est exactement ce que je cherchais. Du coup, Alcatraz et la liste de todo en bonus, merci.


  • AliGatorAliGator Membre, Modérateur
    S'il y a un blog qu'il faut lire, c'est celui de Mattt Thompson (l'auteur de AFNetworking et bien d'autres trucs) : http://nshipster.com/

    Entre autres il a déjà  fait il y a qques temps un article sur les possibilités de Xcode et ses plugins : http://nshipster.com/xcode-plugins/

    (Où il est justement question évidemment d'Alcatraz mais aussi du plugin Clang-Format)
  • CéroceCéroce Membre, Modérateur
    Alcatraz ne fonctionne toujours pas avec Xcode 6 ? Il y a eu de gros changements au niveau de l'organisation des Plug-ins sous Xcode 6 ?
  • Merci Ali, j'ajoutes tout ça dans mes liens et je vais y porter toute mon attention.


     


    Céroce, je ne peux pas te répondre mais pour l'instant ça a l'air de fonctionner. Par contre, il est vrai que l'install des modules a l'air un peu longue et le mode de visualisation n'est pas toujours très pratique. Aucune idée si c'est lié au fait de la v6 ou non.


Connectez-vous ou Inscrivez-vous pour répondre.