aboutsummaryrefslogtreecommitdiffstats
path: root/public/prism/prism-objectivec.js
blob: 6eecbd0fdd33883c5ce4bcb41fd8c89d7c5e681a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
Prism.languages.objectivec = Prism.languages.extend('c', {
  string: {
    pattern: /@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,
    greedy: true,
  },
  keyword:
    /\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,
  operator: /-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/,
});

delete Prism.languages.objectivec['class-name'];

Prism.languages.objc = Prism.languages.objectivec;
jsExpr = /(?:[^\\()[\]{}"'/]|<string>|\/(?![*/])|<comment>|\(<expr>*\)|\[<expr>*\]|\{<expr>*\}|\\[\s\S])/.source .replace(/<string>/g, function () { return jsString; }) .replace(/<comment>/g, function () { return jsComment; }); // the pattern will blow up, so only a few iterations for (var i = 0; i < 2; i++) { jsExpr = jsExpr.replace(/<expr>/g, function () { return jsExpr; }); } jsExpr = jsExpr.replace(/<expr>/g, '[^\\s\\S]'); Prism.languages.qml = { comment: { pattern: /\/\/.*|\/\*[\s\S]*?\*\//, greedy: true, }, 'javascript-function': { pattern: RegExp( /((?:^|;)[ \t]*)function\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*\(<js>*\)\s*\{<js>*\}/.source.replace( /<js>/g, function () { return jsExpr; } ), 'm' ), lookbehind: true, greedy: true, alias: 'language-javascript', inside: Prism.languages.javascript, }, 'class-name': { pattern: /((?:^|[:;])[ \t]*)(?!\d)\w+(?=[ \t]*\{|[ \t]+on\b)/m, lookbehind: true, }, property: [ { pattern: /((?:^|[;{])[ \t]*)(?!\d)\w+(?:\.\w+)*(?=[ \t]*:)/m, lookbehind: true, }, { pattern: /((?:^|[;{])[ \t]*)property[ \t]+(?!\d)\w+(?:\.\w+)*[ \t]+(?!\d)\w+(?:\.\w+)*(?=[ \t]*:)/m, lookbehind: true, inside: { keyword: /^property/, property: /\w+(?:\.\w+)*/, }, }, ], 'javascript-expression': { pattern: RegExp( /(:[ \t]*)(?![\s;}[])(?:(?!$|[;}])<js>)+/.source.replace( /<js>/g, function () { return jsExpr; } ), 'm' ), lookbehind: true, greedy: true, alias: 'language-javascript', inside: Prism.languages.javascript, }, string: { pattern: /"(?:\\.|[^\\"\r\n])*"/, greedy: true, }, keyword: /\b(?:as|import|on)\b/, punctuation: /[{}[\]:;,]/, }; })(Prism);