2017-01-06 14 views
0

Я ищу метод выделения разделов файла исходного кода, чтобы каждый в команде сразу знал, что они читают устаревший код ,Xcode: хотел бы выделить наиболее быстро устаревающие разделы исходного кода

Например, я надеялся, что найду что-то вроде этого:

#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 

Может быть, есть расширение Xcode или плагин, который мог бы это сделать?

Я использую эти другие инструменты иногда, но они недостаточны:

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

Иногда я так далеко, как это сделать:

// !!!! 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 !!!! 

ответ

0

Почему бы не использовать @available атрибут:

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

Я не уверен, что он работает для Obj-C, но для Swift это определенно шо пакетирования. Также можно получить творческие:

#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 

Так ниже вы бы два пункта осуждается:

kSTRING_CONSTANT = "123" 

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

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

Я действительно не хотел, чтобы генерировать предупреждения компилятора в этом случае, потому что будет раздражать всех в команде , Я просто хочу, чтобы Xcode окрашивал код по-разному, поэтому читатель знает, что код, который он читает, устарел. –