javascript.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. /*
  2. Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
  3. Available via Academic Free License >= 2.1 OR the modified BSD license.
  4. see: http://dojotoolkit.org/license for details
  5. */
  6. if(!dojo._hasResource["dojox.highlight.languages.pygments.javascript"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
  7. dojo._hasResource["dojox.highlight.languages.pygments.javascript"] = true;
  8. dojo.provide("dojox.highlight.languages.pygments.javascript");
  9. dojo.require("dojox.highlight._base");
  10. (function(){
  11. var dh = dojox.highlight, dhc = dh.constants;
  12. dh.languages.javascript = {
  13. defaultMode: {
  14. lexems: ["\\b[a-zA-Z]+"],
  15. keywords: {
  16. "keyword": {
  17. "for": 1, "in": 1, "while": 1, "do": 1, "break": 1, "return": 1,
  18. "continue": 1, "if": 1, "else": 1, "throw": 1, "try": 1,
  19. "catch": 1, "var": 1, "with": 1, "const": 1, "label": 1,
  20. "function": 1, "new": 1, "typeof": 1, "instanceof": 1
  21. },
  22. "keyword constant": {
  23. "true": 1, "false": 1, "null": 1, "NaN": 1, "Infinity": 1, "undefined": 1
  24. },
  25. "name builtin": {
  26. "Array": 1, "Boolean": 1, "Date": 1, "Error": 1, "Function": 1, "Math": 1,
  27. "netscape": 1, "Number": 1, "Object": 1, "Packages": 1, "RegExp": 1,
  28. "String": 1, "sun": 1, "decodeURI": 1, "decodeURIComponent": 1,
  29. "encodeURI": 1, "encodeURIComponent": 1, "Error": 1, "eval": 1,
  30. "isFinite": 1, "isNaN": 1, "parseFloat": 1, "parseInt": 1, "document": 1,
  31. "window": 1
  32. },
  33. "name builtin pseudo": {
  34. "this": 1
  35. }
  36. },
  37. contains: [
  38. "comment single", "comment multiline",
  39. "number integer", "number oct", "number hex", "number float",
  40. "string single", "string double", "string regex",
  41. "operator",
  42. "punctuation",
  43. //"name variable",
  44. "_function"
  45. ]
  46. },
  47. modes: [
  48. // comments
  49. {
  50. className: "comment single",
  51. begin: "//", end: "$",
  52. relevance: 0
  53. },
  54. {
  55. className: "comment multiline",
  56. begin: "/\\*", end: "\\*/"
  57. },
  58. // numbers
  59. {
  60. className: "number integer",
  61. begin: "0|([1-9][0-9]*)", end: "^",
  62. relevance: 0
  63. },
  64. {
  65. className: "number oct",
  66. begin: "0[0-9]+", end: "^",
  67. relevance: 0
  68. },
  69. {
  70. className: "number hex",
  71. begin: "0x[0-9a-fA-F]+", end: "^",
  72. relevance: 0
  73. },
  74. {
  75. className: "number float",
  76. begin: "([1-9][0-9]*\\.[0-9]*([eE][\\+-]?[0-9]+)?)|(\\.[0-9]+([eE][\\+-]?[0-9]+)?)|([0-9]+[eE][\\+-]?[0-9]+)", end: "^",
  77. relevance: 0
  78. },
  79. // strings
  80. {
  81. className: "string single",
  82. begin: "'", end: "'",
  83. illegal: "\\n",
  84. contains: ["string escape"],
  85. relevance: 0
  86. },
  87. {
  88. className: "string double",
  89. begin: '"',
  90. end: '"',
  91. illegal: "\\n",
  92. contains: ["string escape"],
  93. relevance: 0
  94. },
  95. {
  96. className: "string escape",
  97. begin: "\\\\.", end: "^",
  98. relevance: 0
  99. },
  100. {
  101. className: "string regex",
  102. begin: "/.*?[^\\\\/]/[gim]*", end: "^"
  103. },
  104. // operators
  105. {
  106. className: "operator",
  107. begin: "\\|\\||&&|\\+\\+|--|-=|\\+=|/=|\\*=|==|[-\\+\\*/=\\?:~\\^]", end: "^",
  108. relevance: 0
  109. },
  110. // punctuations
  111. {
  112. className: "punctuation",
  113. begin: "[{}\\(\\)\\[\\]\\.;]", end: "^",
  114. relevance: 0
  115. },
  116. // functions
  117. {
  118. className: "_function",
  119. begin: "function\\b", end: "{",
  120. lexems: [dhc.UNDERSCORE_IDENT_RE],
  121. keywords: {
  122. keyword: {
  123. "function": 1
  124. }
  125. },
  126. contains: ["name function", "_params"],
  127. relevance: 5
  128. },
  129. {
  130. className: "name function",
  131. begin: dhc.UNDERSCORE_IDENT_RE, end: '^'
  132. },
  133. {
  134. className: "_params",
  135. begin: "\\(", end: "\\)",
  136. contains: ["comment single", "comment multiline"]
  137. }
  138. /*
  139. // names
  140. {
  141. className: "name variable",
  142. begin: "\\b[$a-zA-Z_][$a-zA-Z0-9_]*", end: "^",
  143. relevance: 0
  144. }
  145. */
  146. ]
  147. };
  148. })();
  149. }