dart.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. /*
  2. Language: Dart
  3. Requires: markdown.js
  4. Author: Maxim Dikun <dikmax@gmail.com>
  5. Description: Dart a modern, object-oriented language developed by Google. For more information see https://www.dartlang.org/
  6. Website: https://dart.dev
  7. Category: scripting
  8. */
  9. export default function(hljs) {
  10. var SUBST = {
  11. className: 'subst',
  12. variants: [{
  13. begin: '\\$[A-Za-z0-9_]+'
  14. }],
  15. };
  16. var BRACED_SUBST = {
  17. className: 'subst',
  18. variants: [{
  19. begin: '\\${',
  20. end: '}'
  21. }, ],
  22. keywords: 'true false null this is new super',
  23. };
  24. var STRING = {
  25. className: 'string',
  26. variants: [{
  27. begin: 'r\'\'\'',
  28. end: '\'\'\''
  29. },
  30. {
  31. begin: 'r"""',
  32. end: '"""'
  33. },
  34. {
  35. begin: 'r\'',
  36. end: '\'',
  37. illegal: '\\n'
  38. },
  39. {
  40. begin: 'r"',
  41. end: '"',
  42. illegal: '\\n'
  43. },
  44. {
  45. begin: '\'\'\'',
  46. end: '\'\'\'',
  47. contains: [hljs.BACKSLASH_ESCAPE, SUBST, BRACED_SUBST]
  48. },
  49. {
  50. begin: '"""',
  51. end: '"""',
  52. contains: [hljs.BACKSLASH_ESCAPE, SUBST, BRACED_SUBST]
  53. },
  54. {
  55. begin: '\'',
  56. end: '\'',
  57. illegal: '\\n',
  58. contains: [hljs.BACKSLASH_ESCAPE, SUBST, BRACED_SUBST]
  59. },
  60. {
  61. begin: '"',
  62. end: '"',
  63. illegal: '\\n',
  64. contains: [hljs.BACKSLASH_ESCAPE, SUBST, BRACED_SUBST]
  65. }
  66. ]
  67. };
  68. BRACED_SUBST.contains = [
  69. hljs.C_NUMBER_MODE, STRING
  70. ];
  71. var KEYWORDS = {
  72. keyword: 'abstract as assert async await break case catch class const continue covariant default deferred do ' +
  73. 'dynamic else enum export extends extension external factory false final finally for Function get hide if ' +
  74. 'implements import in inferface is library mixin new null on operator part rethrow return set show static ' +
  75. 'super switch sync this throw true try typedef var void while with yield',
  76. built_in:
  77. // dart:core
  78. 'Comparable DateTime Duration Function Iterable Iterator List Map Match Null Object Pattern RegExp Set ' +
  79. 'Stopwatch String StringBuffer StringSink Symbol Type Uri bool double dynamic int num print ' +
  80. // dart:html
  81. 'Element ElementList document querySelector querySelectorAll window'
  82. };
  83. return {
  84. name: 'Dart',
  85. keywords: KEYWORDS,
  86. contains: [
  87. STRING,
  88. hljs.COMMENT(
  89. '/\\*\\*',
  90. '\\*/', {
  91. subLanguage: 'markdown',
  92. relevance:0
  93. }
  94. ),
  95. hljs.COMMENT(
  96. '///+\\s*',
  97. '$', {
  98. contains: [{
  99. subLanguage: 'markdown',
  100. begin: '.',
  101. end: '$',
  102. relevance:0
  103. }]
  104. }
  105. ),
  106. hljs.C_LINE_COMMENT_MODE,
  107. hljs.C_BLOCK_COMMENT_MODE,
  108. {
  109. className: 'class',
  110. beginKeywords: 'class interface',
  111. end: '{',
  112. excludeEnd: true,
  113. contains: [{
  114. beginKeywords: 'extends implements'
  115. },
  116. hljs.UNDERSCORE_TITLE_MODE
  117. ]
  118. },
  119. hljs.C_NUMBER_MODE,
  120. {
  121. className: 'meta',
  122. begin: '@[A-Za-z]+'
  123. },
  124. {
  125. begin: '=>' // No markup, just a relevance booster
  126. }
  127. ]
  128. }
  129. }