Index: vim/syntax/objc.vim ================================================================== --- vim/syntax/objc.vim +++ vim/syntax/objc.vim @@ -28,12 +28,15 @@ " and uses *.h, *.m as file extensions! " ObjC keywords, types, type qualifiers etc. syn keyword objcStatement self super _cmd -syn keyword objcType id Class SEL IMP BOOL -syn keyword objcTypeModifier bycopy in out inout oneway +syn keyword objcType id Class SEL IMP BOOL nonnull nullable +syn keyword objcTypeModifier bycopy in out inout oneway OF_GENERIC OF_INLINE +syn keyword objcTypeModifier OF_CONST_FUNC OF_NO_RETURN OF_KINDOF +syn keyword objcTypeModifier OF_RETURNS_INNER_POINTER OF_NONNULL +syn keyword objcTypeModifier OF_NULLABLE OF_NULLABLE_PROPERTY syn keyword objcConstant nil Nil " Match the ObjC #import directive (like C's #include) syn region objcImported display contained start=+"+ skip=+\\\\\|\\"+ end=+"+ syn match objcImported display contained "<[-_0-9a-zA-Z.\/]*>" @@ -43,10 +46,11 @@ syn match objcScopeDecl "@public\|@private\|@protected" syn match objcDirective "@interface\|@implementation" syn match objcDirective "@class\|@end\|@defs" syn match objcDirective "@encode\|@protocol\|@selector" syn match objcDirective "@try\|@catch\|@finally\|@throw\|@synchronized" +syn match objcDirective "OF_ASSUME_NONNULL_BEGIN\|OF_ASSUME_NONNULL_END" " Match the ObjC method types " " NOTE: here I match only the indicators, this looks " much nicer and reduces cluttering color highlightings. @@ -117,13 +121,14 @@ syn match objcDirective '@synthesize\|@property\|@optional\|@required\|@autoreleasepool' display syn keyword objcType IBOutlet IBAction Method __block instancetype syn keyword objcType __unsafe_unretained __bridge __bridge_retained __bridge_transfer __autoreleasing __strong __weak syn keyword objcType of_unichar_t of_char16_t of_char32_t of_comparison_result_t syn keyword objcType of_byte_order_t of_range_t of_point_t of_dimension_t -syn keyword objcType of_rectangle_t of_string_encoding_t of_time_interval_t -syn keyword objcType of_resolver_result_t of_udp_socket_address_t of_offset_t -syn keyword objcType of_stat_t of_socket_t +syn keyword objcType of_mutex_t of_rectangle_t of_string_encoding_t +syn keyword objcType of_time_interval_t of_resolver_result_t +syn keyword objcType of_udp_socket_address_t of_offset_t of_stat_t of_socket_t +syn keyword objcType of_spinlock_t syn keyword objcConstant YES NO TRUE FALSE syn region objcImp start='@implementation' end='@end' transparent syn region objcHeader start='@interface' end='@end' transparent