(function (Prism) { var comment = { pattern: /(^[ \t]*| {2}|\t)#.*/m, lookbehind: true, greedy: true, }; var variable = { pattern: /((?:^|[^\\])(?:\\{2})*)[$@&%]\{(?:[^{}\r\n]|\{[^{}\r\n]*\})*\}/, lookbehind: true, inside: { punctuation: /^[$@&%]\{|\}$/, }, }; function createSection(name, inside) { var extendecInside = {}; extendecInside['section-header'] = { pattern: /^ ?\*{3}.+?\*{3}/, alias: 'keyword', }; // copy inside tokens for (var token in inside) { extendecInside[token] = inside[token]; } extendecInside['tag'] = { pattern: /([\r\n](?: {2}|\t)[ \t]*)\[[-\w]+\]/, lookbehind: true, inside: { punctuation: /\[|\]/, }, }; extendecInside['variable'] = variable; extendecInside['comment'] = comment; return { pattern: RegExp( /^ ?\*{3}[ \t]*[ \t]*\*{3}(?:.|[\r\n](?!\*{3}))*/.source.replace( //g, function () { return name; } ), 'im' ), alias: 'section', inside: extendecInside, }; } var docTag = { pattern: /(\[Documentation\](?: {2}|\t)[ \t]*)(?![ \t]|#)(?:.|(?:\r\n?|\n)[ \t]*\.{3})+/, lookbehind: true, alias: 'string', }; var testNameLike = { pattern: /([\r\n] ?)(?!#)(?:\S(?:[ \t]\S)*)+/, lookbehind: true, alias: 'function', inside: { variable: variable, }, }; var testPropertyLike = { pattern: /([\r\n](?: {2}|\t)[ \t]*)(?!\[|\.{3}|#)(?:\S(?:[ \t]\S)*)+/, lookbehind: true, inside: { variable: variable, }, }; Prism.languages['robotframework'] = { settings: createSection('Settings', { documentation: { pattern: /([\r\n] ?Documentation(?: {2}|\t)[ \t]*)(?![ \t]|#)(?:.|(?:\r\n?|\n)[ \t]*\.{3})+/, lookbehind: true, alias: 'string', }, property: { pattern: /([\r\n] ?)(?!\.{3}|#)(?:\S(?:[ \t]\S)*)+/, lookbehind: true, }, }), variables: createSection('Variables'), 'test-cases': createSection('Test Cases', { 'test-name': testNameLike, documentation: docTag, property: testPropertyLike, }), keywords: createSection('Keywords', { 'keyword-name': testNameLike, documentation: docTag, property: testPropertyLike, }), tasks: createSection('Tasks', { 'task-name': testNameLike, documentation: docTag, property: testPropertyLike, }), comment: comment, }; Prism.languages.robot = Prism.languages['robotframework']; })(Prism); e>
blob: fb4b6eb39f49d67fc9a6f52f9f9fe48a6069e200 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Prism.languages.actionscript = Prism.languages.extend('javascript', {
  keyword:
    /\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\b/,
  operator: /\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/,
});
Prism.languages.actionscript['class-name'].alias = 'function';

// doesn't work with AS because AS is too complex
delete Prism.languages.actionscript['parameter'];
delete Prism.languages.actionscript['literal-property'];

if (Prism.languages.markup) {
  Prism.languages.insertBefore('actionscript', 'string', {
    xml: {
      pattern:
        /(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,
      lookbehind: true,
      inside: Prism.languages.markup,
    },
  });
}