javascript.js 3.4 KB

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