diff options
Diffstat (limited to 'node_modules/highlight.js/lib/languages/dart.js')
-rw-r--r-- | node_modules/highlight.js/lib/languages/dart.js | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/node_modules/highlight.js/lib/languages/dart.js b/node_modules/highlight.js/lib/languages/dart.js new file mode 100644 index 000000000..0f9fd5f35 --- /dev/null +++ b/node_modules/highlight.js/lib/languages/dart.js @@ -0,0 +1,100 @@ +module.exports = function (hljs) { + var SUBST = { + className: 'subst', + begin: '\\$\\{', end: '}', + keywords: 'true false null this is new super' + }; + + var STRING = { + className: 'string', + variants: [ + { + begin: 'r\'\'\'', end: '\'\'\'' + }, + { + begin: 'r"""', end: '"""' + }, + { + begin: 'r\'', end: '\'', + illegal: '\\n' + }, + { + begin: 'r"', end: '"', + illegal: '\\n' + }, + { + begin: '\'\'\'', end: '\'\'\'', + contains: [hljs.BACKSLASH_ESCAPE, SUBST] + }, + { + begin: '"""', end: '"""', + contains: [hljs.BACKSLASH_ESCAPE, SUBST] + }, + { + begin: '\'', end: '\'', + illegal: '\\n', + contains: [hljs.BACKSLASH_ESCAPE, SUBST] + }, + { + begin: '"', end: '"', + illegal: '\\n', + contains: [hljs.BACKSLASH_ESCAPE, SUBST] + } + ] + }; + SUBST.contains = [ + hljs.C_NUMBER_MODE, STRING + ]; + + var KEYWORDS = { + keyword: 'assert async await break case catch class const continue default do else enum extends false final ' + + 'finally for if in is new null rethrow return super switch sync this throw true try var void while with yield ' + + 'abstract as dynamic export external factory get implements import library operator part set static typedef', + built_in: + // dart:core + 'print Comparable DateTime Duration Function Iterable Iterator List Map Match Null Object Pattern RegExp Set ' + + 'Stopwatch String StringBuffer StringSink Symbol Type Uri bool double int num ' + + // dart:html + 'document window querySelector querySelectorAll Element ElementList' + }; + + return { + keywords: KEYWORDS, + contains: [ + STRING, + hljs.COMMENT( + '/\\*\\*', + '\\*/', + { + subLanguage: 'markdown' + } + ), + hljs.COMMENT( + '///', + '$', + { + subLanguage: 'markdown' + } + ), + hljs.C_LINE_COMMENT_MODE, + hljs.C_BLOCK_COMMENT_MODE, + { + className: 'class', + beginKeywords: 'class interface', end: '{', excludeEnd: true, + contains: [ + { + beginKeywords: 'extends implements' + }, + hljs.UNDERSCORE_TITLE_MODE + ] + }, + hljs.C_NUMBER_MODE, + { + className: 'meta', begin: '@[A-Za-z]+' + }, + { + begin: '=>' // No markup, just a relevance booster + } + ] + } +};
\ No newline at end of file |