0
This repository has been archived on 2024-08-27. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
highlight_js-rails/vendor/assets/javascripts/highlight_js/languages/objectivec.js
Rogaboru Kujimoshi a52831ccdb Update to 8.0
2014-06-08 21:04:39 +04:00

91 lines
3.2 KiB
JavaScript

/*
Language: Objective C
Author: Valerii Hiora <valerii.hiora@gmail.com>
Contributors: Angel G. Olloqui <angelgarcia.mail@gmail.com>
*/
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: '</',
contains: [
hljs.C_LINE_COMMENT_MODE,
hljs.C_BLOCK_COMMENT_MODE,
hljs.C_NUMBER_MODE,
hljs.QUOTE_STRING_MODE,
{
className: 'string',
begin: '\'',
end: '[^\\\\]\'',
illegal: '[^\\\\][^\']'
},
{
className: 'preprocessor',
begin: '#import',
end: '$',
contains: [
{
className: 'title',
begin: '\"',
end: '\"'
},
{
className: 'title',
begin: '<',
end: '>'
}
]
},
{
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
}
]
};
}