Глядя на разницу между 1.7.1 и 1.7.2, я полагаю, что под этой строкой подразумевается, что сканер Doxygen обновлен для поддержки синтаксиса блоков Apple при распознавании typedefs для типов блоков. Например, вы можете задокументировать указатель функции typedef следующим образом:
///
/// This is a typedef for a function pointer type.
/// It takes an NSUInteger parameter, an id adopting protocol Foo, and has no return value.
///
typedef void (*MyFunctionPtrType)(NSUInteger p1, id<Foo> p2);
и получите вывод, подобный этому:
Изменения в их сканере, кажется, добавляют поддержку для typedefs блока как это:
///
/// This is a typedef for a block type.
/// It takes an NSUInteger parameter, an id adopting protocol Foo, and has no return value.
///
typedef void (^MyBlockType)(NSUInteger p1, id<Foo> p2);
И действительно, с недавней версией Doxygen, которая выдает такой результат:
Вы можете задокументировать глобальные переменные типов блоков, но их поведение несколько сложнее. Например, с этим:
///
/// This is a global variable of type MyBlockType. It logs the parameters to the console.
///
MyBlockType myGlobalBlock = ^(NSUInteger p1, id<Foo> p2){
/**
* This is a block comment inside my block, which would get
* concatted into the "in body" description if this were a function.
* but won't be because this is a block.
*/
NSLog(@"p1: %lu p2: %@", p1, p2);
};
///
/// This is the definition for the function MyFunction
///
void MyFunction(NSUInteger p1, id<Foo> p2)
{
/**
* This is a block comment inside my function, which will get
* concatted into the "in body" description.
*/
NSLog(@"p1: %lu p2: %@", p1, p2);
}
Я получаю этот вывод, что-то вроде, не то, что я хочу:
К счастью, я подозреваю, что глобальные переменные типов блоков не так уж часто встречаются на практике, поэтому тот факт, что Doxygen не очень хорош в их обработке, не так уж сложен. Кажется, нет никаких доказательств какой-либо дополнительной поддержки блоков в diff.