2017-08-14 1 views
0

Je veux savoir s'il existe une configuration dans Uncrustify, de sorte que le formatage suivant (ou au moins une partie de celui-ci) puisse être atteint (la langue est l'objectif-c).Configuration de newLine pour le paramètre block dans le formateur Uncrustify

Code d'origine:

@interface BaseVideoViewController : BaseViewController <UICollectionViewDelegate, UICollectionViewDataSource, CircleTransitionFromController, PassiveUserGifCellDelegate, PassiveUserCollectionViewDelegate> 


@property (strong, nonatomic) NSMutableArray <TokBoxParticipants *> *currentPassivePlayersArray; 

@interface BaseVideoViewController () { 

    NSMutableArray <NSString *> *passiveUserForCellList; 

} 

[UIView animateWithDuration:1.0 parama1:2.0 animations:^{ 
        // oc_block should come down if in same line by formatter 
       } 
       completion:^(BOOL finished) { 
        // something 
       }]; 

    switch (something.state) { 
     case 0: {} 
     Break; 

    } 

if (_voiceTextView == nil) { 

Code souhaité après le formatage:

@interface BaseVideoViewController: BaseViewController <UICollectionViewDelegate, UICollectionViewDataSource, CircleTransitionFromController, PassiveUserGifCellDelegate, PassiveUserCollectionViewDelegate> 

@property (strong, nonatomic) NSMutableArray <TokBoxParticipants *> *currentPassivePlayersArray; 

@interface BaseVideoViewController() { 

    NSMutableArray<NSString *> *passiveUserForCellList; 

} 


[UIView animateWithDuration:1.0 parama1:2.0 
        animations:^{ 
        // oc_block should come down if in same line by formatter 
       } 
       completion:^(BOOL finished) { 
        // something 
       }]; 

switch (something.state) { 
     case 0: { 
      Break; 
     } 



    } 

if (_voiceTextView == nil) { 

Les changements qui doivent être observées après le formatage:

  1. Il y a un espace entre les 'si' et ' (', mais je ne veux pas d'espace entre' BaseVideoViewController 'et' ('.'
  2. Je ne veux pas d'espace entre le nom de l'interface, c'est-à-dire 'BaseVideoViewController' et ':'.
  3. Je souhaite un espace entre le type de données et le crochet angulaire ('<') dans la définition de l'interface ou de la propriété, mais pas à d'autres endroits du code.
  4. Notez la modification dans l'instruction break.
  5. Lorsque j'appelle la fonction, je veux que les paramètres entrent dans une nouvelle ligne, si ce paramètre a une valeur commençant par '^' (paramètre nommé animations, compléments dans le code ci-dessus).

Répondre

1

uncrustify-0.65-106-95188777

  1. Il ne semble pas comme il y a une option pour ce moment
  2. sp_before_class_colon = remove
  3. Voir 1, il existe cependant (moyen) des options génériques comme par exemple sp_before_angle et sp_inside_angle
  4. mod_move_case_break = true devrait le faire, mais il ne semble pas fonctionner pour OC. Il ne fonctionne pas non plus avec votre exemple pour C++ sauf si Break est remplacé par break et l'accolade fermante est sur sa propre ligne.
  5. Voir 1

Soumettre Feature et tirer aux demandes Uncrustify git repo

+0

Merci pour vos commentaires et de temps. Pouvez-vous s'il vous plaît regarder cette question [link] (https://stackoverflow.com/questions/45772985/uncrustify-objective-c-parameter-value-alignment-indentation) également liée à uncrustify. – user3247895