/* Language: Objective C Author: Valerii Hiora Contributors: Angel G. Olloqui */ function(hljs) { var OBJC_KEYWORDS = { keyword: 'int float while char export sizeof typedef const struct for union ' + 'unsigned long volatile static bool mutable if do return goto void ' + 'enum else break extern asm case short default double register explicit ' + 'signed typename this switch continue wchar_t inline readonly assign ' + 'self synchronized id ' + 'nonatomic super unichar IBOutlet IBAction strong weak ' + '@private @protected @public @try @property @end @throw @catch @finally ' + '@synthesize @dynamic @selector @optional @required', literal: 'false true FALSE TRUE nil YES NO NULL', built_in: 'NSString NSDictionary CGRect CGPoint UIButton UILabel UITextView UIWebView MKMapView ' + 'UISegmentedControl NSObject UITableViewDelegate UITableViewDataSource NSThread ' + 'UIActivityIndicator UITabbar UIToolBar UIBarButtonItem UIImageView NSAutoreleasePool ' + 'UITableView BOOL NSInteger CGFloat NSException NSLog NSMutableString NSMutableArray ' + 'NSMutableDictionary NSURL NSIndexPath CGSize UITableViewCell UIView UIViewController ' + 'UINavigationBar UINavigationController UITabBarController UIPopoverController ' + 'UIPopoverControllerDelegate UIImage NSNumber UISearchBar NSFetchedResultsController ' + 'NSFetchedResultsChangeType UIScrollView UIScrollViewDelegate UIEdgeInsets UIColor ' + 'UIFont UIApplication NSNotFound NSNotificationCenter NSNotification ' + 'UILocalNotification NSBundle NSFileManager NSTimeInterval NSDate NSCalendar ' + 'NSUserDefaults UIWindow NSRange NSArray NSError NSURLRequest NSURLConnection ' + 'UIInterfaceOrientation MPMoviePlayerController dispatch_once_t ' + 'dispatch_queue_t dispatch_sync dispatch_async dispatch_once' }; var LEXEMES = /[a-zA-Z@][a-zA-Z0-9_]*/; var CLASS_KEYWORDS = '@interface @class @protocol @implementation'; return { aliases: ['m', 'mm', 'objc', 'obj-c'], keywords: OBJC_KEYWORDS, lexemes: LEXEMES, illegal: '' } ] }, { className: 'preprocessor', begin: '#', end: '$' }, { className: 'class', begin: '(' + CLASS_KEYWORDS.split(' ').join('|') + ')\\b', end: '({|$)', excludeEnd: true, keywords: CLASS_KEYWORDS, lexemes: LEXEMES, contains: [ hljs.UNDERSCORE_TITLE_MODE ] }, { className: 'variable', begin: '\\.'+hljs.UNDERSCORE_IDENT_RE, relevance: 0 } ] }; }