ace-rails-ap 4.0.1 → 4.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (92) hide show
  1. checksums.yaml +4 -4
  2. data/lib/ace/rails/version.rb +1 -1
  3. data/vendor/assets/javascripts/ace/ace.js +187 -175
  4. data/vendor/assets/javascripts/ace/ext-chromevox.js +5 -5
  5. data/vendor/assets/javascripts/ace/ext-emmet.js +4 -5
  6. data/vendor/assets/javascripts/ace/ext-keybinding_menu.js +1 -1
  7. data/vendor/assets/javascripts/ace/ext-language_tools.js +23 -22
  8. data/vendor/assets/javascripts/ace/ext-modelist.js +11 -5
  9. data/vendor/assets/javascripts/ace/ext-settings_menu.js +13 -7
  10. data/vendor/assets/javascripts/ace/ext-textarea.js +0 -72
  11. data/vendor/assets/javascripts/ace/keybinding-emacs.js +3 -2
  12. data/vendor/assets/javascripts/ace/keybinding-vim.js +23 -18
  13. data/vendor/assets/javascripts/ace/mode-abap.js +3 -19
  14. data/vendor/assets/javascripts/ace/mode-c_cpp.js +21 -29
  15. data/vendor/assets/javascripts/ace/mode-cirru.js +15 -15
  16. data/vendor/assets/javascripts/ace/mode-coffee.js +3 -22
  17. data/vendor/assets/javascripts/ace/mode-coldfusion.js +40 -54
  18. data/vendor/assets/javascripts/ace/mode-csharp.js +6 -0
  19. data/vendor/assets/javascripts/ace/mode-css.js +3 -3
  20. data/vendor/assets/javascripts/ace/mode-curly.js +40 -54
  21. data/vendor/assets/javascripts/ace/mode-dart.js +21 -29
  22. data/vendor/assets/javascripts/ace/mode-django.js +40 -54
  23. data/vendor/assets/javascripts/ace/mode-eiffel.js +2 -2
  24. data/vendor/assets/javascripts/ace/mode-ejs.js +41 -55
  25. data/vendor/assets/javascripts/ace/mode-elm.js +3 -3
  26. data/vendor/assets/javascripts/ace/mode-ftl.js +36 -50
  27. data/vendor/assets/javascripts/ace/mode-gherkin.js +6 -6
  28. data/vendor/assets/javascripts/ace/mode-glsl.js +21 -29
  29. data/vendor/assets/javascripts/ace/mode-gobstones.js +1273 -0
  30. data/vendor/assets/javascripts/ace/mode-golang.js +2 -2
  31. data/vendor/assets/javascripts/ace/mode-groovy.js +33 -47
  32. data/vendor/assets/javascripts/ace/mode-haml.js +981 -27
  33. data/vendor/assets/javascripts/ace/mode-handlebars.js +40 -54
  34. data/vendor/assets/javascripts/ace/mode-html.js +40 -54
  35. data/vendor/assets/javascripts/ace/mode-html_elixir.js +40 -54
  36. data/vendor/assets/javascripts/ace/mode-html_ruby.js +41 -55
  37. data/vendor/assets/javascripts/ace/mode-jade.js +83 -189
  38. data/vendor/assets/javascripts/ace/mode-java.js +35 -49
  39. data/vendor/assets/javascripts/ace/mode-javascript.js +33 -47
  40. data/vendor/assets/javascripts/ace/mode-jsp.js +38 -52
  41. data/vendor/assets/javascripts/ace/mode-lean.js +1 -1
  42. data/vendor/assets/javascripts/ace/mode-less.js +368 -136
  43. data/vendor/assets/javascripts/ace/mode-liquid.js +36 -50
  44. data/vendor/assets/javascripts/ace/mode-livescript.js +3 -18
  45. data/vendor/assets/javascripts/ace/mode-logiql.js +11 -11
  46. data/vendor/assets/javascripts/ace/mode-lua.js +1 -4
  47. data/vendor/assets/javascripts/ace/mode-luapage.js +41 -58
  48. data/vendor/assets/javascripts/ace/mode-markdown.js +40 -54
  49. data/vendor/assets/javascripts/ace/mode-mask.js +36 -50
  50. data/vendor/assets/javascripts/ace/mode-matlab.js +1 -1
  51. data/vendor/assets/javascripts/ace/mode-mel.js +1 -1
  52. data/vendor/assets/javascripts/ace/mode-nix.js +21 -29
  53. data/vendor/assets/javascripts/ace/mode-nsis.js +304 -0
  54. data/vendor/assets/javascripts/ace/mode-objectivec.js +21 -29
  55. data/vendor/assets/javascripts/ace/mode-pascal.js +1 -1
  56. data/vendor/assets/javascripts/ace/mode-pgsql.js +33 -47
  57. data/vendor/assets/javascripts/ace/mode-php.js +42 -57
  58. data/vendor/assets/javascripts/ace/mode-powershell.js +86 -57
  59. data/vendor/assets/javascripts/ace/mode-praat.js +1 -1
  60. data/vendor/assets/javascripts/ace/mode-protobuf.js +21 -29
  61. data/vendor/assets/javascripts/ace/mode-r.js +20 -20
  62. data/vendor/assets/javascripts/ace/mode-razor.js +3136 -0
  63. data/vendor/assets/javascripts/ace/mode-rdoc.js +20 -20
  64. data/vendor/assets/javascripts/ace/mode-rhtml.js +60 -74
  65. data/vendor/assets/javascripts/ace/mode-rst.js +249 -0
  66. data/vendor/assets/javascripts/ace/mode-ruby.js +1 -1
  67. data/vendor/assets/javascripts/ace/mode-rust.js +4 -8
  68. data/vendor/assets/javascripts/ace/mode-scala.js +33 -47
  69. data/vendor/assets/javascripts/ace/mode-sjs.js +42 -56
  70. data/vendor/assets/javascripts/ace/mode-smarty.js +40 -54
  71. data/vendor/assets/javascripts/ace/mode-soy_template.js +41 -55
  72. data/vendor/assets/javascripts/ace/mode-sqlserver.js +3 -3
  73. data/vendor/assets/javascripts/ace/mode-stylus.js +1 -1
  74. data/vendor/assets/javascripts/ace/mode-svg.js +34 -48
  75. data/vendor/assets/javascripts/ace/mode-swift.js +5 -5
  76. data/vendor/assets/javascripts/ace/mode-tex.js +24 -24
  77. data/vendor/assets/javascripts/ace/mode-twig.js +40 -54
  78. data/vendor/assets/javascripts/ace/mode-typescript.js +33 -47
  79. data/vendor/assets/javascripts/ace/mode-velocity.js +40 -54
  80. data/vendor/assets/javascripts/ace/mode-vhdl.js +2 -2
  81. data/vendor/assets/javascripts/ace/mode-wollok.js +1256 -0
  82. data/vendor/assets/javascripts/ace/mode-xml.js +1 -1
  83. data/vendor/assets/javascripts/ace/worker-coffee.js +1 -1
  84. data/vendor/assets/javascripts/ace/worker-css.js +1 -1
  85. data/vendor/assets/javascripts/ace/worker-html.js +2 -2
  86. data/vendor/assets/javascripts/ace/worker-javascript.js +1 -1
  87. data/vendor/assets/javascripts/ace/worker-json.js +1 -1
  88. data/vendor/assets/javascripts/ace/worker-lua.js +1 -1
  89. data/vendor/assets/javascripts/ace/worker-php.js +2 -4
  90. data/vendor/assets/javascripts/ace/worker-xml.js +1 -1
  91. data/vendor/assets/javascripts/ace/worker-xquery.js +1 -1
  92. metadata +8 -3
@@ -85,6 +85,12 @@ var CSharpHighlightRules = function() {
85
85
  token : "string", start : '@"', end : '"', next:[
86
86
  {token: "constant.language.escape", regex: '""'}
87
87
  ]
88
+ }, {
89
+ token : "string", start : /\$"/, end : '"|$', next: [
90
+ {token: "constant.language.escape", regex: /\\(:?$)|{{/},
91
+ {token: "constant.language.escape", regex: /\\(:?u[\da-fA-F]+|x[\da-fA-F]+|[tbrf'"n])/},
92
+ {token: "invalid", regex: /\\./}
93
+ ]
88
94
  }, {
89
95
  token : "constant.numeric", // hex
90
96
  regex : "0[xX][0-9a-fA-F]+\\b"
@@ -4,7 +4,7 @@ define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop
4
4
  var oop = require("../lib/oop");
5
5
  var lang = require("../lib/lang");
6
6
  var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
7
- var supportType = exports.supportType = "animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|pointer-events|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index";
7
+ var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index";
8
8
  var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters";
9
9
  var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero";
10
10
  var supportConstantColor = exports.supportConstantColor = "aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow";
@@ -190,14 +190,14 @@ var propertyMap = {
190
190
  "background-color": {"#$0": 1, "transparent": 1, "fixed": 1},
191
191
  "background-image": {"url('/$0')": 1},
192
192
  "background-repeat": {"repeat": 1, "repeat-x": 1, "repeat-y": 1, "no-repeat": 1, "inherit": 1},
193
- "background-position": {"bottom":2, "center":2, "left":2, "right":2, "top":2, "inherit":2,},
193
+ "background-position": {"bottom":2, "center":2, "left":2, "right":2, "top":2, "inherit":2},
194
194
  "background-attachment": {"scroll": 1, "fixed": 1},
195
195
  "background-size": {"cover": 1, "contain": 1},
196
196
  "background-clip": {"border-box": 1, "padding-box": 1, "content-box": 1},
197
197
  "background-origin": {"border-box": 1, "padding-box": 1, "content-box": 1},
198
198
  "border": {"solid $0": 1, "dashed $0": 1, "dotted $0": 1, "#$0": 1},
199
199
  "border-color": {"#$0": 1},
200
- "border-style": {"solid":2, "dashed":2, "dotted":2, "double":2, "groove":2, "hidden":2, "inherit":2, "inset":2, "none":2, "outset":2, "ridged":2,},
200
+ "border-style": {"solid":2, "dashed":2, "dotted":2, "double":2, "groove":2, "hidden":2, "inherit":2, "inset":2, "none":2, "outset":2, "ridged":2},
201
201
  "border-collapse": {"collapse": 1, "separate": 1},
202
202
  "bottom": {"px": 1, "em": 1, "%": 1},
203
203
  "clear": {"left": 1, "right": 1, "both": 1, "none": 1},
@@ -87,25 +87,17 @@ var JavaScriptHighlightRules = function(options) {
87
87
 
88
88
  var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex
89
89
  "u[0-9a-fA-F]{4}|" + // unicode
90
+ "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode
90
91
  "[0-2][0-7]{0,2}|" + // oct
91
- "3[0-6][0-7]?|" + // oct
92
- "37[0-7]?|" + // oct
92
+ "3[0-7][0-7]?|" + // oct
93
93
  "[4-7][0-7]?|" + //oct
94
94
  ".)";
95
95
 
96
96
  this.$rules = {
97
97
  "no_regex" : [
98
- {
99
- token : "comment",
100
- regex : "\\/\\/",
101
- next : "line_comment"
102
- },
103
98
  DocCommentHighlightRules.getStartRule("doc-start"),
99
+ comments("no_regex"),
104
100
  {
105
- token : "comment", // multi line comment
106
- regex : /\/\*/,
107
- next : "comment"
108
- }, {
109
101
  token : "string",
110
102
  regex : "'(?=.)",
111
103
  next : "qstring"
@@ -115,10 +107,10 @@ var JavaScriptHighlightRules = function(options) {
115
107
  next : "qqstring"
116
108
  }, {
117
109
  token : "constant.numeric", // hex
118
- regex : /0[xX][0-9a-fA-F]+\b/
110
+ regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/
119
111
  }, {
120
112
  token : "constant.numeric", // float
121
- regex : /[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
113
+ regex : /[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
122
114
  }, {
123
115
  token : [
124
116
  "storage.type", "punctuation.operator", "support.function",
@@ -186,7 +178,7 @@ var JavaScriptHighlightRules = function(options) {
186
178
  next : "property"
187
179
  }, {
188
180
  token : "keyword.operator",
189
- regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|[!$%&*+\-~\/^]=?/,
181
+ regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?\:|[!$%&*+\-~\/^]=?/,
190
182
  next : "start"
191
183
  }, {
192
184
  token : "punctuation.operator",
@@ -238,15 +230,8 @@ var JavaScriptHighlightRules = function(options) {
238
230
  ],
239
231
  "start": [
240
232
  DocCommentHighlightRules.getStartRule("doc-start"),
233
+ comments("start"),
241
234
  {
242
- token : "comment", // multi line comment
243
- regex : "\\/\\*",
244
- next : "comment_regex_allowed"
245
- }, {
246
- token : "comment",
247
- regex : "\\/\\/",
248
- next : "line_comment_regex_allowed"
249
- }, {
250
235
  token: "string.regexp",
251
236
  regex: "\\/",
252
237
  next: "regex"
@@ -324,26 +309,6 @@ var JavaScriptHighlightRules = function(options) {
324
309
  next: "no_regex"
325
310
  }
326
311
  ],
327
- "comment_regex_allowed" : [
328
- DocCommentHighlightRules.getTagRule(),
329
- {token : "comment", regex : "\\*\\/", next : "start"},
330
- {defaultToken : "comment", caseInsensitive: true}
331
- ],
332
- "comment" : [
333
- DocCommentHighlightRules.getTagRule(),
334
- {token : "comment", regex : "\\*\\/", next : "no_regex"},
335
- {defaultToken : "comment", caseInsensitive: true}
336
- ],
337
- "line_comment_regex_allowed" : [
338
- DocCommentHighlightRules.getTagRule(),
339
- {token : "comment", regex : "$|^", next : "start"},
340
- {defaultToken : "comment", caseInsensitive: true}
341
- ],
342
- "line_comment" : [
343
- DocCommentHighlightRules.getTagRule(),
344
- {token : "comment", regex : "$|^", next : "no_regex"},
345
- {defaultToken : "comment", caseInsensitive: true}
346
- ],
347
312
  "qqstring" : [
348
313
  {
349
314
  token : "constant.language.escape",
@@ -385,9 +350,8 @@ var JavaScriptHighlightRules = function(options) {
385
350
  this.next = val == "{" ? this.nextState : "";
386
351
  if (val == "{" && stack.length) {
387
352
  stack.unshift("start", state);
388
- return "paren";
389
353
  }
390
- if (val == "}" && stack.length) {
354
+ else if (val == "}" && stack.length) {
391
355
  stack.shift();
392
356
  this.next = stack.shift();
393
357
  if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1)
@@ -490,6 +454,7 @@ function JSX() {
490
454
  nextState: "jsx"
491
455
  },
492
456
  jsxJsRule,
457
+ comments("jsxAttributes"),
493
458
  {
494
459
  token : "entity.other.attribute-name.xml",
495
460
  regex : tagRegex
@@ -505,7 +470,6 @@ function JSX() {
505
470
  stateName : "jsx_attr_q",
506
471
  push : [
507
472
  {token : "string.attribute-value.xml", regex: "'", next: "pop"},
508
- jsxJsRule,
509
473
  {include : "reference"},
510
474
  {defaultToken : "string.attribute-value.xml"}
511
475
  ]
@@ -514,18 +478,40 @@ function JSX() {
514
478
  regex : '"',
515
479
  stateName : "jsx_attr_qq",
516
480
  push : [
517
- jsxJsRule,
518
481
  {token : "string.attribute-value.xml", regex: '"', next: "pop"},
519
482
  {include : "reference"},
520
483
  {defaultToken : "string.attribute-value.xml"}
521
484
  ]
522
- }];
485
+ },
486
+ jsxTag
487
+ ];
523
488
  this.$rules.reference = [{
524
489
  token : "constant.language.escape.reference.xml",
525
490
  regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"
526
491
  }];
527
492
  }
528
493
 
494
+ function comments(next) {
495
+ return [
496
+ {
497
+ token : "comment", // multi line comment
498
+ regex : /\/\*/,
499
+ next: [
500
+ DocCommentHighlightRules.getTagRule(),
501
+ {token : "comment", regex : "\\*\\/", next : next || "pop"},
502
+ {defaultToken : "comment", caseInsensitive: true}
503
+ ]
504
+ }, {
505
+ token : "comment",
506
+ regex : "\\/\\/",
507
+ next: [
508
+ DocCommentHighlightRules.getTagRule(),
509
+ {token : "comment", regex : "$|^", next : next || "pop"},
510
+ {defaultToken : "comment", caseInsensitive: true}
511
+ ]
512
+ }
513
+ ];
514
+ }
529
515
  exports.JavaScriptHighlightRules = JavaScriptHighlightRules;
530
516
  });
531
517
 
@@ -1159,7 +1145,7 @@ define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop
1159
1145
  var oop = require("../lib/oop");
1160
1146
  var lang = require("../lib/lang");
1161
1147
  var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
1162
- var supportType = exports.supportType = "animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|pointer-events|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index";
1148
+ var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index";
1163
1149
  var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters";
1164
1150
  var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero";
1165
1151
  var supportConstantColor = exports.supportConstantColor = "aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow";
@@ -1305,14 +1291,14 @@ var propertyMap = {
1305
1291
  "background-color": {"#$0": 1, "transparent": 1, "fixed": 1},
1306
1292
  "background-image": {"url('/$0')": 1},
1307
1293
  "background-repeat": {"repeat": 1, "repeat-x": 1, "repeat-y": 1, "no-repeat": 1, "inherit": 1},
1308
- "background-position": {"bottom":2, "center":2, "left":2, "right":2, "top":2, "inherit":2,},
1294
+ "background-position": {"bottom":2, "center":2, "left":2, "right":2, "top":2, "inherit":2},
1309
1295
  "background-attachment": {"scroll": 1, "fixed": 1},
1310
1296
  "background-size": {"cover": 1, "contain": 1},
1311
1297
  "background-clip": {"border-box": 1, "padding-box": 1, "content-box": 1},
1312
1298
  "background-origin": {"border-box": 1, "padding-box": 1, "content-box": 1},
1313
1299
  "border": {"solid $0": 1, "dashed $0": 1, "dotted $0": 1, "#$0": 1},
1314
1300
  "border-color": {"#$0": 1},
1315
- "border-style": {"solid":2, "dashed":2, "dotted":2, "double":2, "groove":2, "hidden":2, "inherit":2, "inset":2, "none":2, "outset":2, "ridged":2,},
1301
+ "border-style": {"solid":2, "dashed":2, "dotted":2, "double":2, "groove":2, "hidden":2, "inherit":2, "inset":2, "none":2, "outset":2, "ridged":2},
1316
1302
  "border-collapse": {"collapse": 1, "separate": 1},
1317
1303
  "bottom": {"px": 1, "em": 1, "%": 1},
1318
1304
  "clear": {"left": 1, "right": 1, "both": 1, "none": 1},
@@ -1643,7 +1629,7 @@ var XmlHighlightRules = function(normalize) {
1643
1629
  },
1644
1630
  {
1645
1631
  token : ["punctuation.instruction.xml", "keyword.instruction.xml"],
1646
- regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction",
1632
+ regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction"
1647
1633
  },
1648
1634
  {token : "comment.xml", regex : "<\\!--", next : "comment"},
1649
1635
  {
@@ -1904,7 +1890,7 @@ var HtmlHighlightRules = function() {
1904
1890
  tag_stuff: [
1905
1891
  {include : "attributes"},
1906
1892
  {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : "start"}
1907
- ],
1893
+ ]
1908
1894
  });
1909
1895
 
1910
1896
  this.embedTagRules(CssHighlightRules, "css-", "style");
@@ -2701,12 +2687,12 @@ var HtmlCompletions = function() {
2701
2687
  };
2702
2688
 
2703
2689
  this.getHTMLEntityCompletions = function(state, session, pos, prefix) {
2704
- var values = ['&Aacute;', '&aacute;', '&Acirc;', '&acirc;', '&acute;', '&AElig;', '&aelig;', '&Agrave;', '&agrave;', '&alefsym;', '&Alpha;', '&alpha;', '&amp;', '&and;', '&ang;', '&Aring;', '&aring;', '&asymp;', '&Atilde;', '&atilde;', '&Auml;', '&auml;', '&bdquo;', '&Beta;', '&beta;', '&brvbar;', '&bull;', '&cap;', '&Ccedil;', '&ccedil;', '&cedil;', '&cent;', '&Chi;', '&chi;', '&circ;', '&clubs;', '&cong;', '&copy;', '&crarr;', '&cup;', '&curren;', '&Dagger;', '&dagger;', '&dArr;', '&darr;', '&deg;', '&Delta;', '&delta;', '&diams;', '&divide;', '&Eacute;', '&eacute;', '&Ecirc;', '&ecirc;', '&Egrave;', '&egrave;', '&empty;', '&emsp;', '&ensp;', '&Epsilon;', '&epsilon;', '&equiv;', '&Eta;', '&eta;', '&ETH;', '&eth;', '&Euml;', '&euml;', '&euro;', '&exist;', '&fnof;', '&forall;', '&frac12;', '&frac14;', '&frac34;', '&frasl;', '&Gamma;', '&gamma;', '&ge;', '&gt;', '&hArr;', '&harr;', '&hearts;', '&hellip;', '&Iacute;', '&iacute;', '&Icirc;', '&icirc;', '&iexcl;', '&Igrave;', '&igrave;', '&image;', '&infin;', '&int;', '&Iota;', '&iota;', '&iquest;', '&isin;', '&Iuml;', '&iuml;', '&Kappa;', '&kappa;', '&Lambda;', '&lambda;', '&lang;', '&laquo;', '&lArr;', '&larr;', '&lceil;', '&ldquo;', '&le;', '&lfloor;', '&lowast;', '&loz;', '&lrm;', '&lsaquo;', '&lsquo;', '&lt;', '&macr;', '&mdash;', '&micro;', '&middot;', '&minus;', '&Mu;', '&mu;', '&nabla;', '&nbsp;', '&ndash;', '&ne;', '&ni;', '&not;', '&notin;', '&nsub;', '&Ntilde;', '&ntilde;', '&Nu;', '&nu;', '&Oacute;', '&oacute;', '&Ocirc;', '&ocirc;', '&OElig;', '&oelig;', '&Ograve;', '&ograve;', '&oline;', '&Omega;', '&omega;', '&Omicron;', '&omicron;', '&oplus;', '&or;', '&ordf;', '&ordm;', '&Oslash;', '&oslash;', '&Otilde;', '&otilde;', '&otimes;', '&Ouml;', '&ouml;', '&para;', '&part;', '&permil;', '&perp;', '&Phi;', '&phi;', '&Pi;', '&pi;', '&piv;', '&plusmn;', '&pound;', '&Prime;', '&prime;', '&prod;', '&prop;', '&Psi;', '&psi;', '&quot;', '&radic;', '&rang;', '&raquo;', '&rArr;', '&rarr;', '&rceil;', '&rdquo;', '&real;', '&reg;', '&rfloor;', '&Rho;', '&rho;', '&rlm;', '&rsaquo;', '&rsquo;', '&sbquo;', '&Scaron;', '&scaron;', '&sdot;', '&sect;', '&shy;', '&Sigma;', '&sigma;', '&sigmaf;', '&sim;', '&spades;', '&sub;', '&sube;', '&sum;', '&sup;', '&sup1;', '&sup2;', '&sup3;', '&supe;', '&szlig;', '&Tau;', '&tau;', '&there4;', '&Theta;', '&theta;', '&thetasym;', '&thinsp;', '&THORN;', '&thorn;', '&tilde;', '&times;', '&trade;', '&Uacute;', '&uacute;', '&uArr;', '&uarr;', '&Ucirc;', '&ucirc;', '&Ugrave;', '&ugrave;', '&uml;', '&upsih;', '&Upsilon;', '&upsilon;', '&Uuml;', '&uuml;', '&weierp;', '&Xi;', '&xi;', '&Yacute;', '&yacute;', '&yen;', '&Yuml;', '&yuml;', '&Zeta;', '&zeta;', '&zwj;', '&zwnj;'];
2690
+ var values = ['Aacute;', 'aacute;', 'Acirc;', 'acirc;', 'acute;', 'AElig;', 'aelig;', 'Agrave;', 'agrave;', 'alefsym;', 'Alpha;', 'alpha;', 'amp;', 'and;', 'ang;', 'Aring;', 'aring;', 'asymp;', 'Atilde;', 'atilde;', 'Auml;', 'auml;', 'bdquo;', 'Beta;', 'beta;', 'brvbar;', 'bull;', 'cap;', 'Ccedil;', 'ccedil;', 'cedil;', 'cent;', 'Chi;', 'chi;', 'circ;', 'clubs;', 'cong;', 'copy;', 'crarr;', 'cup;', 'curren;', 'Dagger;', 'dagger;', 'dArr;', 'darr;', 'deg;', 'Delta;', 'delta;', 'diams;', 'divide;', 'Eacute;', 'eacute;', 'Ecirc;', 'ecirc;', 'Egrave;', 'egrave;', 'empty;', 'emsp;', 'ensp;', 'Epsilon;', 'epsilon;', 'equiv;', 'Eta;', 'eta;', 'ETH;', 'eth;', 'Euml;', 'euml;', 'euro;', 'exist;', 'fnof;', 'forall;', 'frac12;', 'frac14;', 'frac34;', 'frasl;', 'Gamma;', 'gamma;', 'ge;', 'gt;', 'hArr;', 'harr;', 'hearts;', 'hellip;', 'Iacute;', 'iacute;', 'Icirc;', 'icirc;', 'iexcl;', 'Igrave;', 'igrave;', 'image;', 'infin;', 'int;', 'Iota;', 'iota;', 'iquest;', 'isin;', 'Iuml;', 'iuml;', 'Kappa;', 'kappa;', 'Lambda;', 'lambda;', 'lang;', 'laquo;', 'lArr;', 'larr;', 'lceil;', 'ldquo;', 'le;', 'lfloor;', 'lowast;', 'loz;', 'lrm;', 'lsaquo;', 'lsquo;', 'lt;', 'macr;', 'mdash;', 'micro;', 'middot;', 'minus;', 'Mu;', 'mu;', 'nabla;', 'nbsp;', 'ndash;', 'ne;', 'ni;', 'not;', 'notin;', 'nsub;', 'Ntilde;', 'ntilde;', 'Nu;', 'nu;', 'Oacute;', 'oacute;', 'Ocirc;', 'ocirc;', 'OElig;', 'oelig;', 'Ograve;', 'ograve;', 'oline;', 'Omega;', 'omega;', 'Omicron;', 'omicron;', 'oplus;', 'or;', 'ordf;', 'ordm;', 'Oslash;', 'oslash;', 'Otilde;', 'otilde;', 'otimes;', 'Ouml;', 'ouml;', 'para;', 'part;', 'permil;', 'perp;', 'Phi;', 'phi;', 'Pi;', 'pi;', 'piv;', 'plusmn;', 'pound;', 'Prime;', 'prime;', 'prod;', 'prop;', 'Psi;', 'psi;', 'quot;', 'radic;', 'rang;', 'raquo;', 'rArr;', 'rarr;', 'rceil;', 'rdquo;', 'real;', 'reg;', 'rfloor;', 'Rho;', 'rho;', 'rlm;', 'rsaquo;', 'rsquo;', 'sbquo;', 'Scaron;', 'scaron;', 'sdot;', 'sect;', 'shy;', 'Sigma;', 'sigma;', 'sigmaf;', 'sim;', 'spades;', 'sub;', 'sube;', 'sum;', 'sup;', 'sup1;', 'sup2;', 'sup3;', 'supe;', 'szlig;', 'Tau;', 'tau;', 'there4;', 'Theta;', 'theta;', 'thetasym;', 'thinsp;', 'THORN;', 'thorn;', 'tilde;', 'times;', 'trade;', 'Uacute;', 'uacute;', 'uArr;', 'uarr;', 'Ucirc;', 'ucirc;', 'Ugrave;', 'ugrave;', 'uml;', 'upsih;', 'Upsilon;', 'upsilon;', 'Uuml;', 'uuml;', 'weierp;', 'Xi;', 'xi;', 'Yacute;', 'yacute;', 'yen;', 'Yuml;', 'yuml;', 'Zeta;', 'zeta;', 'zwj;', 'zwnj;'];
2705
2691
 
2706
2692
  return values.map(function(value){
2707
2693
  return {
2708
2694
  caption: value,
2709
- snippet: value.substr(1),
2695
+ snippet: value,
2710
2696
  meta: "html entity",
2711
2697
  score: Number.MAX_VALUE
2712
2698
  };
@@ -94,6 +94,7 @@ var c_cppHighlightRules = function() {
94
94
  }, "identifier");
95
95
 
96
96
  var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\d\\$_\u00a1-\uffff]*\\b";
97
+ var escapeRe = /\\(?:['"?\\abfnrtv]|[0-7]{1,3}|x[a-fA-F\d]{2}|u[a-fA-F\d]{4}U[a-fA-F\d]{8}|.)/.source;
97
98
 
98
99
  this.$rules = {
99
100
  "start" : [
@@ -112,19 +113,27 @@ var c_cppHighlightRules = function() {
112
113
  regex : "\\/\\*",
113
114
  next : "comment"
114
115
  }, {
115
- token : "string", // single line
116
- regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
116
+ token : "string", // character
117
+ regex : "'(?:" + escapeRe + "|.)'"
117
118
  }, {
118
- token : "string", // multi line string start
119
- regex : '["].*\\\\$',
120
- next : "qqstring"
119
+ token : "string.start",
120
+ regex : '"',
121
+ stateName: "qqstring",
122
+ next: [
123
+ { token: "string", regex: /\\\s*$/, next: "qqstring" },
124
+ { token: "constant.language.escape", regex: escapeRe },
125
+ { token: "constant.language.escape", regex: /%[^'"\\]/ },
126
+ { token: "string.end", regex: '"|$', next: "start" },
127
+ { defaultToken: "string"}
128
+ ]
121
129
  }, {
122
- token : "string", // single line
123
- regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
124
- }, {
125
- token : "string", // multi line string start
126
- regex : "['].*\\\\$",
127
- next : "qstring"
130
+ token : "string.start",
131
+ regex : 'R"\\(',
132
+ stateName: "rawString",
133
+ next: [
134
+ { token: "string.end", regex: '\\)"', next: "start" },
135
+ { defaultToken: "string"}
136
+ ]
128
137
  }, {
129
138
  token : "constant.numeric", // hex
130
139
  regex : "0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b"
@@ -184,24 +193,6 @@ var c_cppHighlightRules = function() {
184
193
  defaultToken: "comment"
185
194
  }
186
195
  ],
187
- "qqstring" : [
188
- {
189
- token : "string",
190
- regex : '(?:(?:\\\\.)|(?:[^"\\\\]))*?"',
191
- next : "start"
192
- }, {
193
- defaultToken : "string"
194
- }
195
- ],
196
- "qstring" : [
197
- {
198
- token : "string",
199
- regex : "(?:(?:\\\\.)|(?:[^'\\\\]))*?'",
200
- next : "start"
201
- }, {
202
- defaultToken : "string"
203
- }
204
- ],
205
196
  "directive" : [
206
197
  {
207
198
  token : "constant.other.multiline",
@@ -236,6 +227,7 @@ var c_cppHighlightRules = function() {
236
227
 
237
228
  this.embedRules(DocCommentHighlightRules, "doc-",
238
229
  [ DocCommentHighlightRules.getEndRule("start") ]);
230
+ this.normalizeRules();
239
231
  };
240
232
 
241
233
  oop.inherits(c_cppHighlightRules, TextHighlightRules);
@@ -87,25 +87,17 @@ var JavaScriptHighlightRules = function(options) {
87
87
 
88
88
  var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex
89
89
  "u[0-9a-fA-F]{4}|" + // unicode
90
+ "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode
90
91
  "[0-2][0-7]{0,2}|" + // oct
91
- "3[0-6][0-7]?|" + // oct
92
- "37[0-7]?|" + // oct
92
+ "3[0-7][0-7]?|" + // oct
93
93
  "[4-7][0-7]?|" + //oct
94
94
  ".)";
95
95
 
96
96
  this.$rules = {
97
97
  "no_regex" : [
98
- {
99
- token : "comment",
100
- regex : "\\/\\/",
101
- next : "line_comment"
102
- },
103
98
  DocCommentHighlightRules.getStartRule("doc-start"),
99
+ comments("no_regex"),
104
100
  {
105
- token : "comment", // multi line comment
106
- regex : /\/\*/,
107
- next : "comment"
108
- }, {
109
101
  token : "string",
110
102
  regex : "'(?=.)",
111
103
  next : "qstring"
@@ -115,10 +107,10 @@ var JavaScriptHighlightRules = function(options) {
115
107
  next : "qqstring"
116
108
  }, {
117
109
  token : "constant.numeric", // hex
118
- regex : /0[xX][0-9a-fA-F]+\b/
110
+ regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/
119
111
  }, {
120
112
  token : "constant.numeric", // float
121
- regex : /[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
113
+ regex : /[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
122
114
  }, {
123
115
  token : [
124
116
  "storage.type", "punctuation.operator", "support.function",
@@ -186,7 +178,7 @@ var JavaScriptHighlightRules = function(options) {
186
178
  next : "property"
187
179
  }, {
188
180
  token : "keyword.operator",
189
- regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|[!$%&*+\-~\/^]=?/,
181
+ regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?\:|[!$%&*+\-~\/^]=?/,
190
182
  next : "start"
191
183
  }, {
192
184
  token : "punctuation.operator",
@@ -238,15 +230,8 @@ var JavaScriptHighlightRules = function(options) {
238
230
  ],
239
231
  "start": [
240
232
  DocCommentHighlightRules.getStartRule("doc-start"),
233
+ comments("start"),
241
234
  {
242
- token : "comment", // multi line comment
243
- regex : "\\/\\*",
244
- next : "comment_regex_allowed"
245
- }, {
246
- token : "comment",
247
- regex : "\\/\\/",
248
- next : "line_comment_regex_allowed"
249
- }, {
250
235
  token: "string.regexp",
251
236
  regex: "\\/",
252
237
  next: "regex"
@@ -324,26 +309,6 @@ var JavaScriptHighlightRules = function(options) {
324
309
  next: "no_regex"
325
310
  }
326
311
  ],
327
- "comment_regex_allowed" : [
328
- DocCommentHighlightRules.getTagRule(),
329
- {token : "comment", regex : "\\*\\/", next : "start"},
330
- {defaultToken : "comment", caseInsensitive: true}
331
- ],
332
- "comment" : [
333
- DocCommentHighlightRules.getTagRule(),
334
- {token : "comment", regex : "\\*\\/", next : "no_regex"},
335
- {defaultToken : "comment", caseInsensitive: true}
336
- ],
337
- "line_comment_regex_allowed" : [
338
- DocCommentHighlightRules.getTagRule(),
339
- {token : "comment", regex : "$|^", next : "start"},
340
- {defaultToken : "comment", caseInsensitive: true}
341
- ],
342
- "line_comment" : [
343
- DocCommentHighlightRules.getTagRule(),
344
- {token : "comment", regex : "$|^", next : "no_regex"},
345
- {defaultToken : "comment", caseInsensitive: true}
346
- ],
347
312
  "qqstring" : [
348
313
  {
349
314
  token : "constant.language.escape",
@@ -385,9 +350,8 @@ var JavaScriptHighlightRules = function(options) {
385
350
  this.next = val == "{" ? this.nextState : "";
386
351
  if (val == "{" && stack.length) {
387
352
  stack.unshift("start", state);
388
- return "paren";
389
353
  }
390
- if (val == "}" && stack.length) {
354
+ else if (val == "}" && stack.length) {
391
355
  stack.shift();
392
356
  this.next = stack.shift();
393
357
  if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1)
@@ -490,6 +454,7 @@ function JSX() {
490
454
  nextState: "jsx"
491
455
  },
492
456
  jsxJsRule,
457
+ comments("jsxAttributes"),
493
458
  {
494
459
  token : "entity.other.attribute-name.xml",
495
460
  regex : tagRegex
@@ -505,7 +470,6 @@ function JSX() {
505
470
  stateName : "jsx_attr_q",
506
471
  push : [
507
472
  {token : "string.attribute-value.xml", regex: "'", next: "pop"},
508
- jsxJsRule,
509
473
  {include : "reference"},
510
474
  {defaultToken : "string.attribute-value.xml"}
511
475
  ]
@@ -514,18 +478,40 @@ function JSX() {
514
478
  regex : '"',
515
479
  stateName : "jsx_attr_qq",
516
480
  push : [
517
- jsxJsRule,
518
481
  {token : "string.attribute-value.xml", regex: '"', next: "pop"},
519
482
  {include : "reference"},
520
483
  {defaultToken : "string.attribute-value.xml"}
521
484
  ]
522
- }];
485
+ },
486
+ jsxTag
487
+ ];
523
488
  this.$rules.reference = [{
524
489
  token : "constant.language.escape.reference.xml",
525
490
  regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"
526
491
  }];
527
492
  }
528
493
 
494
+ function comments(next) {
495
+ return [
496
+ {
497
+ token : "comment", // multi line comment
498
+ regex : /\/\*/,
499
+ next: [
500
+ DocCommentHighlightRules.getTagRule(),
501
+ {token : "comment", regex : "\\*\\/", next : next || "pop"},
502
+ {defaultToken : "comment", caseInsensitive: true}
503
+ ]
504
+ }, {
505
+ token : "comment",
506
+ regex : "\\/\\/",
507
+ next: [
508
+ DocCommentHighlightRules.getTagRule(),
509
+ {token : "comment", regex : "$|^", next : next || "pop"},
510
+ {defaultToken : "comment", caseInsensitive: true}
511
+ ]
512
+ }
513
+ ];
514
+ }
529
515
  exports.JavaScriptHighlightRules = JavaScriptHighlightRules;
530
516
  });
531
517
 
@@ -1159,7 +1145,7 @@ define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop
1159
1145
  var oop = require("../lib/oop");
1160
1146
  var lang = require("../lib/lang");
1161
1147
  var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
1162
- var supportType = exports.supportType = "animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|pointer-events|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index";
1148
+ var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index";
1163
1149
  var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters";
1164
1150
  var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero";
1165
1151
  var supportConstantColor = exports.supportConstantColor = "aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow";
@@ -1305,14 +1291,14 @@ var propertyMap = {
1305
1291
  "background-color": {"#$0": 1, "transparent": 1, "fixed": 1},
1306
1292
  "background-image": {"url('/$0')": 1},
1307
1293
  "background-repeat": {"repeat": 1, "repeat-x": 1, "repeat-y": 1, "no-repeat": 1, "inherit": 1},
1308
- "background-position": {"bottom":2, "center":2, "left":2, "right":2, "top":2, "inherit":2,},
1294
+ "background-position": {"bottom":2, "center":2, "left":2, "right":2, "top":2, "inherit":2},
1309
1295
  "background-attachment": {"scroll": 1, "fixed": 1},
1310
1296
  "background-size": {"cover": 1, "contain": 1},
1311
1297
  "background-clip": {"border-box": 1, "padding-box": 1, "content-box": 1},
1312
1298
  "background-origin": {"border-box": 1, "padding-box": 1, "content-box": 1},
1313
1299
  "border": {"solid $0": 1, "dashed $0": 1, "dotted $0": 1, "#$0": 1},
1314
1300
  "border-color": {"#$0": 1},
1315
- "border-style": {"solid":2, "dashed":2, "dotted":2, "double":2, "groove":2, "hidden":2, "inherit":2, "inset":2, "none":2, "outset":2, "ridged":2,},
1301
+ "border-style": {"solid":2, "dashed":2, "dotted":2, "double":2, "groove":2, "hidden":2, "inherit":2, "inset":2, "none":2, "outset":2, "ridged":2},
1316
1302
  "border-collapse": {"collapse": 1, "separate": 1},
1317
1303
  "bottom": {"px": 1, "em": 1, "%": 1},
1318
1304
  "clear": {"left": 1, "right": 1, "both": 1, "none": 1},
@@ -1643,7 +1629,7 @@ var XmlHighlightRules = function(normalize) {
1643
1629
  },
1644
1630
  {
1645
1631
  token : ["punctuation.instruction.xml", "keyword.instruction.xml"],
1646
- regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction",
1632
+ regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction"
1647
1633
  },
1648
1634
  {token : "comment.xml", regex : "<\\!--", next : "comment"},
1649
1635
  {
@@ -1904,7 +1890,7 @@ var HtmlHighlightRules = function() {
1904
1890
  tag_stuff: [
1905
1891
  {include : "attributes"},
1906
1892
  {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : "start"}
1907
- ],
1893
+ ]
1908
1894
  });
1909
1895
 
1910
1896
  this.embedTagRules(CssHighlightRules, "css-", "style");
@@ -2701,12 +2687,12 @@ var HtmlCompletions = function() {
2701
2687
  };
2702
2688
 
2703
2689
  this.getHTMLEntityCompletions = function(state, session, pos, prefix) {
2704
- var values = ['&Aacute;', '&aacute;', '&Acirc;', '&acirc;', '&acute;', '&AElig;', '&aelig;', '&Agrave;', '&agrave;', '&alefsym;', '&Alpha;', '&alpha;', '&amp;', '&and;', '&ang;', '&Aring;', '&aring;', '&asymp;', '&Atilde;', '&atilde;', '&Auml;', '&auml;', '&bdquo;', '&Beta;', '&beta;', '&brvbar;', '&bull;', '&cap;', '&Ccedil;', '&ccedil;', '&cedil;', '&cent;', '&Chi;', '&chi;', '&circ;', '&clubs;', '&cong;', '&copy;', '&crarr;', '&cup;', '&curren;', '&Dagger;', '&dagger;', '&dArr;', '&darr;', '&deg;', '&Delta;', '&delta;', '&diams;', '&divide;', '&Eacute;', '&eacute;', '&Ecirc;', '&ecirc;', '&Egrave;', '&egrave;', '&empty;', '&emsp;', '&ensp;', '&Epsilon;', '&epsilon;', '&equiv;', '&Eta;', '&eta;', '&ETH;', '&eth;', '&Euml;', '&euml;', '&euro;', '&exist;', '&fnof;', '&forall;', '&frac12;', '&frac14;', '&frac34;', '&frasl;', '&Gamma;', '&gamma;', '&ge;', '&gt;', '&hArr;', '&harr;', '&hearts;', '&hellip;', '&Iacute;', '&iacute;', '&Icirc;', '&icirc;', '&iexcl;', '&Igrave;', '&igrave;', '&image;', '&infin;', '&int;', '&Iota;', '&iota;', '&iquest;', '&isin;', '&Iuml;', '&iuml;', '&Kappa;', '&kappa;', '&Lambda;', '&lambda;', '&lang;', '&laquo;', '&lArr;', '&larr;', '&lceil;', '&ldquo;', '&le;', '&lfloor;', '&lowast;', '&loz;', '&lrm;', '&lsaquo;', '&lsquo;', '&lt;', '&macr;', '&mdash;', '&micro;', '&middot;', '&minus;', '&Mu;', '&mu;', '&nabla;', '&nbsp;', '&ndash;', '&ne;', '&ni;', '&not;', '&notin;', '&nsub;', '&Ntilde;', '&ntilde;', '&Nu;', '&nu;', '&Oacute;', '&oacute;', '&Ocirc;', '&ocirc;', '&OElig;', '&oelig;', '&Ograve;', '&ograve;', '&oline;', '&Omega;', '&omega;', '&Omicron;', '&omicron;', '&oplus;', '&or;', '&ordf;', '&ordm;', '&Oslash;', '&oslash;', '&Otilde;', '&otilde;', '&otimes;', '&Ouml;', '&ouml;', '&para;', '&part;', '&permil;', '&perp;', '&Phi;', '&phi;', '&Pi;', '&pi;', '&piv;', '&plusmn;', '&pound;', '&Prime;', '&prime;', '&prod;', '&prop;', '&Psi;', '&psi;', '&quot;', '&radic;', '&rang;', '&raquo;', '&rArr;', '&rarr;', '&rceil;', '&rdquo;', '&real;', '&reg;', '&rfloor;', '&Rho;', '&rho;', '&rlm;', '&rsaquo;', '&rsquo;', '&sbquo;', '&Scaron;', '&scaron;', '&sdot;', '&sect;', '&shy;', '&Sigma;', '&sigma;', '&sigmaf;', '&sim;', '&spades;', '&sub;', '&sube;', '&sum;', '&sup;', '&sup1;', '&sup2;', '&sup3;', '&supe;', '&szlig;', '&Tau;', '&tau;', '&there4;', '&Theta;', '&theta;', '&thetasym;', '&thinsp;', '&THORN;', '&thorn;', '&tilde;', '&times;', '&trade;', '&Uacute;', '&uacute;', '&uArr;', '&uarr;', '&Ucirc;', '&ucirc;', '&Ugrave;', '&ugrave;', '&uml;', '&upsih;', '&Upsilon;', '&upsilon;', '&Uuml;', '&uuml;', '&weierp;', '&Xi;', '&xi;', '&Yacute;', '&yacute;', '&yen;', '&Yuml;', '&yuml;', '&Zeta;', '&zeta;', '&zwj;', '&zwnj;'];
2690
+ var values = ['Aacute;', 'aacute;', 'Acirc;', 'acirc;', 'acute;', 'AElig;', 'aelig;', 'Agrave;', 'agrave;', 'alefsym;', 'Alpha;', 'alpha;', 'amp;', 'and;', 'ang;', 'Aring;', 'aring;', 'asymp;', 'Atilde;', 'atilde;', 'Auml;', 'auml;', 'bdquo;', 'Beta;', 'beta;', 'brvbar;', 'bull;', 'cap;', 'Ccedil;', 'ccedil;', 'cedil;', 'cent;', 'Chi;', 'chi;', 'circ;', 'clubs;', 'cong;', 'copy;', 'crarr;', 'cup;', 'curren;', 'Dagger;', 'dagger;', 'dArr;', 'darr;', 'deg;', 'Delta;', 'delta;', 'diams;', 'divide;', 'Eacute;', 'eacute;', 'Ecirc;', 'ecirc;', 'Egrave;', 'egrave;', 'empty;', 'emsp;', 'ensp;', 'Epsilon;', 'epsilon;', 'equiv;', 'Eta;', 'eta;', 'ETH;', 'eth;', 'Euml;', 'euml;', 'euro;', 'exist;', 'fnof;', 'forall;', 'frac12;', 'frac14;', 'frac34;', 'frasl;', 'Gamma;', 'gamma;', 'ge;', 'gt;', 'hArr;', 'harr;', 'hearts;', 'hellip;', 'Iacute;', 'iacute;', 'Icirc;', 'icirc;', 'iexcl;', 'Igrave;', 'igrave;', 'image;', 'infin;', 'int;', 'Iota;', 'iota;', 'iquest;', 'isin;', 'Iuml;', 'iuml;', 'Kappa;', 'kappa;', 'Lambda;', 'lambda;', 'lang;', 'laquo;', 'lArr;', 'larr;', 'lceil;', 'ldquo;', 'le;', 'lfloor;', 'lowast;', 'loz;', 'lrm;', 'lsaquo;', 'lsquo;', 'lt;', 'macr;', 'mdash;', 'micro;', 'middot;', 'minus;', 'Mu;', 'mu;', 'nabla;', 'nbsp;', 'ndash;', 'ne;', 'ni;', 'not;', 'notin;', 'nsub;', 'Ntilde;', 'ntilde;', 'Nu;', 'nu;', 'Oacute;', 'oacute;', 'Ocirc;', 'ocirc;', 'OElig;', 'oelig;', 'Ograve;', 'ograve;', 'oline;', 'Omega;', 'omega;', 'Omicron;', 'omicron;', 'oplus;', 'or;', 'ordf;', 'ordm;', 'Oslash;', 'oslash;', 'Otilde;', 'otilde;', 'otimes;', 'Ouml;', 'ouml;', 'para;', 'part;', 'permil;', 'perp;', 'Phi;', 'phi;', 'Pi;', 'pi;', 'piv;', 'plusmn;', 'pound;', 'Prime;', 'prime;', 'prod;', 'prop;', 'Psi;', 'psi;', 'quot;', 'radic;', 'rang;', 'raquo;', 'rArr;', 'rarr;', 'rceil;', 'rdquo;', 'real;', 'reg;', 'rfloor;', 'Rho;', 'rho;', 'rlm;', 'rsaquo;', 'rsquo;', 'sbquo;', 'Scaron;', 'scaron;', 'sdot;', 'sect;', 'shy;', 'Sigma;', 'sigma;', 'sigmaf;', 'sim;', 'spades;', 'sub;', 'sube;', 'sum;', 'sup;', 'sup1;', 'sup2;', 'sup3;', 'supe;', 'szlig;', 'Tau;', 'tau;', 'there4;', 'Theta;', 'theta;', 'thetasym;', 'thinsp;', 'THORN;', 'thorn;', 'tilde;', 'times;', 'trade;', 'Uacute;', 'uacute;', 'uArr;', 'uarr;', 'Ucirc;', 'ucirc;', 'Ugrave;', 'ugrave;', 'uml;', 'upsih;', 'Upsilon;', 'upsilon;', 'Uuml;', 'uuml;', 'weierp;', 'Xi;', 'xi;', 'Yacute;', 'yacute;', 'yen;', 'Yuml;', 'yuml;', 'Zeta;', 'zeta;', 'zwj;', 'zwnj;'];
2705
2691
 
2706
2692
  return values.map(function(value){
2707
2693
  return {
2708
2694
  caption: value,
2709
- snippet: value.substr(1),
2695
+ snippet: value,
2710
2696
  meta: "html entity",
2711
2697
  score: Number.MAX_VALUE
2712
2698
  };