Uncrustify не поддерживает новый синтаксис Objective C в LLVM 4.0
Я использовал Uncrustify для форматирования кода.
Но Uncrustify не поддерживает новый синтаксис Objective C в LLVM 4.0.
Что я собираюсь делать?
Код, созданный Uncrustify:
@interface SJTLLVM4Tester()
@property (strong) NSNumber *number;
@end
@implementation SJTLLVM4Tester
-(id)init {
self = [super init];
if (self) {
self.number = @'C';
self.number = @123;
self.number = @0x123ul;
self.number = @-1.2e-3f;
self.number = @YES;
NSDictionary *dictionary = @{@"key1":@1,@"key2":@2,@"key3":@3};
NSMutableArray *array = [[NSMutableArray alloc] initWithArray:@[@1,@2,@3]];
self.number = dictionary[@"key1"];
array[0] = self.number;
}
return self;
}
@end
Результат выполнения:
1 ответ
Решение
Это было исправлено в последнем выпуске uncrustify: 0.60.
Вы можете получить его здесь: https://github.com/bengardner/uncrustify/archive/uncrustify-0.60.tar.gz
Я использую Brew и должен был вручную обновить URL и SHA1 с brew edit uncrustify
а потом brew upgrade uncrustify
,
Ниже моя новая формула:
require 'formula'
class Uncrustify < Formula
url 'http://downloads.sourceforge.net/project/uncrustify/uncrustify/uncrustify-0.60/uncrustify-0.60.tar.gz'
head 'https://github.com/bengardner/uncrustify.git'
homepage 'http://uncrustify.sourceforge.net/'
sha1 '769a7649a1cefb80beff9b67b11b4b87a8cc8e0e'
def install
system "./configure", "--prefix=#{prefix}", "--disable-dependency-tracking"
system "make install"
end
end
Работает как шарм сейчас.