2017-01-06 2 views
0

Je cherche une méthode pour mettre en évidence des sections d'un fichier de code source afin que tout le monde dans l'équipe sache immédiatement qu'il lit code obsolète .Xcode: j'aimerais mettre en évidence les sections du code source qui seront bientôt obsolètes

Par exemple, j'espérais que je trouverais quelque chose comme ceci:

#pragma clang diagnostic push 
#pragma clang diagnostic use-italic-font 
- (void) myDeprecatedFunction 
{ 
    ... 300 lines of deprecated function body 
    ... that will be removed soon 
} 
#pragma clang diagnostic pop 

Peut-être il y a une extension Xcode ou plug-in qui pourrait le faire?

J'utilise ces outils parfois, mais ils ne suffisent pas:

#warning 
//TODO 
//FIXME 
#pragma mark 
#pragma - 
#pragma GCC poison 

Parfois, je vais jusqu'à faire:

// !!!! DEPRECATED VERSION OF STRUCT !!!! 
typedef packed struct 
{ 
    UInt8  mParamID; // !!!! DEPRECATED VERSION OF STRUCT !!!! 
    SInt8  mDmxChannelOffset; // !!!! DEPRECATED VERSION OF STRUCT !!!! 
    UInt16  mEncoderMinVal; // !!!! DEPRECATED VERSION OF STRUCT !!!! 
    UInt16  mEncoderMaxVal; // !!!! DEPRECATED VERSION OF STRUCT !!!! 
    UInt16  mHomeVal; // !!!! DEPRECATED VERSION OF STRUCT !!!! 
    UInt8  mEncoderSensitivity; // !!!! DEPRECATED VERSION OF STRUCT !!!! 
    UInt8  mParamFlags; // !!!! DEPRECATED VERSION OF STRUCT !!!! 
    UInt8  mExtraCode; // !!!! DEPRECATED VERSION OF STRUCT !!!! 
    UInt8  mExtraValue; // !!!! DEPRECATED VERSION OF STRUCT !!!! 
    SInt8  mExtraDMXAddressOffset; // !!!! DEPRECATED VERSION OF STRUCT !!!! 
    UInt8  mReserved; // !!!! DEPRECATED VERSION OF STRUCT !!!! 
    UInt8  mMoreDataFlags; // !!!! DEPRECATED VERSION OF STRUCT !!!! 

    // Dynamic state 
    SInt8  mDynamicDmxChannelOffset; // !!!! DEPRECATED VERSION OF STRUCT !!!! 
    SInt16  mDynamicEncoderMinVal; // !!!! DEPRECATED VERSION OF STRUCT !!!! 
    SInt16  mDynamicEncoderMaxVal; // !!!! DEPRECATED VERSION OF STRUCT !!!! 
    SInt16  mDynamicHomeVal; // !!!! DEPRECATED VERSION OF STRUCT !!!! 
    UInt8  mDynamicEncoderSensitivity; // !!!! DEPRECATED VERSION OF STRUCT !!!! 
    UInt8  mDynamicFlags; // !!!! DEPRECATED VERSION OF STRUCT !!!! 
} ParamInfo_Vers3; // !!!! DEPRECATED VERSION OF STRUCT !!!! 

Répondre

0

Pourquoi ne pas utiliser l'@available attribut:

// you'll get a deprecation warning here. 
@available(iOS, deprecated: 10.2, message: "ancient") 
typedef packed struct { 
    .... 
} 

Je ne sais pas si cela fonctionne pour Obj-C, mais pour Swift uld. Il est également possible de faire preuve de créativité:

#if DEBUG 
@available(*, deprecated, message: "Use newer instead") 
let dep = "deprecated" 
#else 
@available(*, deprecated, message: "Use newer instead") 
let `self` = "deprecated" 
@available(*, deprecated, message: "Use newer instead") 
let `DEP` = "deprecated" 
@available(*, deprecated, message: "Use newer instead") 
let Optional = "deprecated" 
#endif 

donc ci-dessous vous auriez deux articles désapprouvée:

kSTRING_CONSTANT = "123" 

print("123", obtain(self: "123")) 

print(DEP) // deprecated 
print(self) // deprecated 
print(kSTRING_CONSTANT) 
+0

Je ne suis pas vraiment vouloir générer des avertissements du compilateur dans ce cas parce que cela agacer tout le monde sur l'équipe . Je veux juste que Xcode colore le code différemment afin que le lecteur sache que le code qu'il lit est déprécié. –