summaryrefslogtreecommitdiffstats
path: root/after/syntax/objc.vim
blob: d9874e20956ab9c7e9c95c8145f20ef3cf3327b2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'objc') != -1
  finish
endif

" ARC type modifiers
syn keyword objcTypeModifier __bridge __bridge_retained __bridge_transfer __autoreleasing __strong __weak __unsafe_unretained

" Block modifiers
syn keyword objcTypeModifier __block

" Remote messaging modifiers
syn keyword objcTypeModifier byref

" Property keywords - these are only highlighted inside '@property (...)'
syn keyword objcPropertyAttribute contained getter setter readwrite readonly strong weak copy assign retain nonatomic
syn match objcProperty display "^\s*@property\>\s*([^)]*)" contains=objcPropertyAttribute

" The @property directive must be defined after objcProperty or it won't be
" highlighted
syn match objcDirective "@property\|@synthesize\|@dynamic\|@package"

" Highlight property attributes as if they were type modifiers
hi def link objcPropertyAttribute objcTypeModifier