aboutsummaryrefslogtreecommitdiff
path: root/node_modules/highlight.js/lib/languages/objectivec.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/highlight.js/lib/languages/objectivec.js')
-rw-r--r--node_modules/highlight.js/lib/languages/objectivec.js90
1 files changed, 90 insertions, 0 deletions
diff --git a/node_modules/highlight.js/lib/languages/objectivec.js b/node_modules/highlight.js/lib/languages/objectivec.js
new file mode 100644
index 000000000..6ba3809f3
--- /dev/null
+++ b/node_modules/highlight.js/lib/languages/objectivec.js
@@ -0,0 +1,90 @@
+module.exports = function(hljs) {
+ var API_CLASS = {
+ className: 'built_in',
+ begin: '\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+',
+ };
+ 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 ' +
+ 'readwrite self @synchronized id typeof ' +
+ 'nonatomic super unichar IBOutlet IBAction strong weak copy ' +
+ 'in out inout bycopy byref oneway __strong __weak __block __autoreleasing ' +
+ '@private @protected @public @try @property @end @throw @catch @finally ' +
+ '@autoreleasepool @synthesize @dynamic @selector @optional @required ' +
+ '@encode @package @import @defs @compatibility_alias ' +
+ '__bridge __bridge_transfer __bridge_retained __bridge_retain ' +
+ '__covariant __contravariant __kindof ' +
+ '_Nonnull _Nullable _Null_unspecified ' +
+ '__FUNCTION__ __PRETTY_FUNCTION__ __attribute__ ' +
+ 'getter setter retain unsafe_unretained ' +
+ 'nonnull nullable null_unspecified null_resettable class instancetype ' +
+ 'NS_DESIGNATED_INITIALIZER NS_UNAVAILABLE NS_REQUIRES_SUPER ' +
+ 'NS_RETURNS_INNER_POINTER NS_INLINE NS_AVAILABLE NS_DEPRECATED ' +
+ 'NS_ENUM NS_OPTIONS NS_SWIFT_UNAVAILABLE ' +
+ 'NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END ' +
+ 'NS_REFINED_FOR_SWIFT NS_SWIFT_NAME NS_SWIFT_NOTHROW ' +
+ 'NS_DURING NS_HANDLER NS_ENDHANDLER NS_VALUERETURN NS_VOIDRETURN',
+ literal:
+ 'false true FALSE TRUE nil YES NO NULL',
+ built_in:
+ 'BOOL 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: ['mm', 'objc', 'obj-c'],
+ keywords: OBJC_KEYWORDS,
+ lexemes: LEXEMES,
+ illegal: '</',
+ contains: [
+ API_CLASS,
+ hljs.C_LINE_COMMENT_MODE,
+ hljs.C_BLOCK_COMMENT_MODE,
+ hljs.C_NUMBER_MODE,
+ hljs.QUOTE_STRING_MODE,
+ {
+ className: 'string',
+ variants: [
+ {
+ begin: '@"', end: '"',
+ illegal: '\\n',
+ contains: [hljs.BACKSLASH_ESCAPE]
+ },
+ {
+ begin: '\'', end: '[^\\\\]\'',
+ illegal: '[^\\\\][^\']'
+ }
+ ]
+ },
+ {
+ className: 'meta',
+ begin: '#',
+ end: '$',
+ contains: [
+ {
+ className: 'meta-string',
+ variants: [
+ { begin: '\"', end: '\"' },
+ { begin: '<', end: '>' }
+ ]
+ }
+ ]
+ },
+ {
+ className: 'class',
+ begin: '(' + CLASS_KEYWORDS.split(' ').join('|') + ')\\b', end: '({|$)', excludeEnd: true,
+ keywords: CLASS_KEYWORDS, lexemes: LEXEMES,
+ contains: [
+ hljs.UNDERSCORE_TITLE_MODE
+ ]
+ },
+ {
+ begin: '\\.'+hljs.UNDERSCORE_IDENT_RE,
+ relevance: 0
+ }
+ ]
+ };
+}; \ No newline at end of file