ace-rails-ap 4.0.0 → 4.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (158) hide show
  1. checksums.yaml +4 -4
  2. data/lib/ace/rails/version.rb +1 -1
  3. data/vendor/assets/javascripts/ace/ace.js +993 -613
  4. data/vendor/assets/javascripts/ace/ext-chromevox.js +3 -4
  5. data/vendor/assets/javascripts/ace/ext-elastic_tabstops_lite.js +5 -6
  6. data/vendor/assets/javascripts/ace/ext-emmet.js +50 -21
  7. data/vendor/assets/javascripts/ace/ext-language_tools.js +21 -19
  8. data/vendor/assets/javascripts/ace/ext-modelist.js +11 -6
  9. data/vendor/assets/javascripts/ace/ext-old_ie.js +12 -5
  10. data/vendor/assets/javascripts/ace/ext-searchbox.js +12 -5
  11. data/vendor/assets/javascripts/ace/ext-settings_menu.js +14 -7
  12. data/vendor/assets/javascripts/ace/ext-static_highlight.js +5 -5
  13. data/vendor/assets/javascripts/ace/ext-statusbar.js +14 -12
  14. data/vendor/assets/javascripts/ace/ext-textarea.js +1 -2
  15. data/vendor/assets/javascripts/ace/ext-themelist.js +2 -0
  16. data/vendor/assets/javascripts/ace/ext-whitespace.js +17 -13
  17. data/vendor/assets/javascripts/ace/keybinding-emacs.js +76 -78
  18. data/vendor/assets/javascripts/ace/keybinding-vim.js +221 -80
  19. data/vendor/assets/javascripts/ace/mode-abc.js +2 -3
  20. data/vendor/assets/javascripts/ace/mode-actionscript.js +2 -3
  21. data/vendor/assets/javascripts/ace/mode-apache_conf.js +2 -3
  22. data/vendor/assets/javascripts/ace/mode-applescript.js +2 -3
  23. data/vendor/assets/javascripts/ace/mode-autohotkey.js +2 -3
  24. data/vendor/assets/javascripts/ace/mode-batchfile.js +2 -3
  25. data/vendor/assets/javascripts/ace/mode-c_cpp.js +8 -5
  26. data/vendor/assets/javascripts/ace/mode-coffee.js +1 -1
  27. data/vendor/assets/javascripts/ace/mode-coldfusion.js +533 -139
  28. data/vendor/assets/javascripts/ace/mode-csharp.js +4 -5
  29. data/vendor/assets/javascripts/ace/mode-css.js +185 -6
  30. data/vendor/assets/javascripts/ace/mode-curly.js +495 -138
  31. data/vendor/assets/javascripts/ace/mode-d.js +2 -3
  32. data/vendor/assets/javascripts/ace/mode-dart.js +8 -5
  33. data/vendor/assets/javascripts/ace/mode-django.js +495 -138
  34. data/vendor/assets/javascripts/ace/mode-dockerfile.js +59 -14
  35. data/vendor/assets/javascripts/ace/mode-dot.js +2 -3
  36. data/vendor/assets/javascripts/ace/mode-ejs.js +497 -152
  37. data/vendor/assets/javascripts/ace/mode-elm.js +6 -4
  38. data/vendor/assets/javascripts/ace/mode-erlang.js +3 -4
  39. data/vendor/assets/javascripts/ace/mode-forth.js +3 -4
  40. data/vendor/assets/javascripts/ace/mode-ftl.js +145 -17
  41. data/vendor/assets/javascripts/ace/mode-gherkin.js +58 -25
  42. data/vendor/assets/javascripts/ace/mode-glsl.js +8 -5
  43. data/vendor/assets/javascripts/ace/mode-golang.js +36 -25
  44. data/vendor/assets/javascripts/ace/mode-groovy.js +145 -17
  45. data/vendor/assets/javascripts/ace/mode-handlebars.js +496 -140
  46. data/vendor/assets/javascripts/ace/mode-haskell.js +3 -4
  47. data/vendor/assets/javascripts/ace/mode-haxe.js +4 -5
  48. data/vendor/assets/javascripts/ace/mode-html.js +495 -138
  49. data/vendor/assets/javascripts/ace/mode-html_elixir.js +3372 -0
  50. data/vendor/assets/javascripts/ace/mode-html_ruby.js +495 -138
  51. data/vendor/assets/javascripts/ace/mode-ini.js +1 -1
  52. data/vendor/assets/javascripts/ace/mode-io.js +2 -3
  53. data/vendor/assets/javascripts/ace/mode-jack.js +4 -5
  54. data/vendor/assets/javascripts/ace/mode-jade.js +155 -25
  55. data/vendor/assets/javascripts/ace/mode-java.js +145 -17
  56. data/vendor/assets/javascripts/ace/mode-javascript.js +145 -17
  57. data/vendor/assets/javascripts/ace/mode-json.js +4 -5
  58. data/vendor/assets/javascripts/ace/mode-jsoniq.js +4 -5
  59. data/vendor/assets/javascripts/ace/mode-jsp.js +150 -23
  60. data/vendor/assets/javascripts/ace/mode-jsx.js +4 -5
  61. data/vendor/assets/javascripts/ace/mode-julia.js +2 -3
  62. data/vendor/assets/javascripts/ace/mode-less.js +5 -6
  63. data/vendor/assets/javascripts/ace/mode-liquid.js +145 -17
  64. data/vendor/assets/javascripts/ace/mode-logiql.js +2 -2
  65. data/vendor/assets/javascripts/ace/mode-lsl.js +8 -10
  66. data/vendor/assets/javascripts/ace/mode-lua.js +2 -2
  67. data/vendor/assets/javascripts/ace/mode-luapage.js +497 -140
  68. data/vendor/assets/javascripts/ace/mode-makefile.js +54 -8
  69. data/vendor/assets/javascripts/ace/mode-markdown.js +497 -139
  70. data/vendor/assets/javascripts/ace/mode-mask.js +150 -22
  71. data/vendor/assets/javascripts/ace/mode-maze.js +283 -0
  72. data/vendor/assets/javascripts/ace/mode-mel.js +4 -5
  73. data/vendor/assets/javascripts/ace/mode-mushcode.js +0 -1
  74. data/vendor/assets/javascripts/ace/mode-mysql.js +1 -1
  75. data/vendor/assets/javascripts/ace/mode-nix.js +8 -5
  76. data/vendor/assets/javascripts/ace/mode-objectivec.js +6 -3
  77. data/vendor/assets/javascripts/ace/mode-perl.js +4 -5
  78. data/vendor/assets/javascripts/ace/mode-pgsql.js +141 -12
  79. data/vendor/assets/javascripts/ace/mode-php.js +9872 -143
  80. data/vendor/assets/javascripts/ace/mode-powershell.js +4 -5
  81. data/vendor/assets/javascripts/ace/mode-praat.js +18 -14
  82. data/vendor/assets/javascripts/ace/mode-prolog.js +2 -3
  83. data/vendor/assets/javascripts/ace/mode-protobuf.js +8 -5
  84. data/vendor/assets/javascripts/ace/mode-rhtml.js +495 -138
  85. data/vendor/assets/javascripts/ace/mode-ruby.js +2 -2
  86. data/vendor/assets/javascripts/ace/mode-rust.js +32 -39
  87. data/vendor/assets/javascripts/ace/mode-scad.js +4 -5
  88. data/vendor/assets/javascripts/ace/mode-scala.js +158 -21
  89. data/vendor/assets/javascripts/ace/mode-scheme.js +118 -1
  90. data/vendor/assets/javascripts/ace/mode-scss.js +4 -5
  91. data/vendor/assets/javascripts/ace/mode-sh.js +58 -13
  92. data/vendor/assets/javascripts/ace/mode-sjs.js +145 -17
  93. data/vendor/assets/javascripts/ace/mode-smarty.js +495 -138
  94. data/vendor/assets/javascripts/ace/mode-soy_template.js +496 -140
  95. data/vendor/assets/javascripts/ace/mode-sql.js +12 -4
  96. data/vendor/assets/javascripts/ace/mode-sqlserver.js +437 -0
  97. data/vendor/assets/javascripts/ace/mode-svg.js +147 -20
  98. data/vendor/assets/javascripts/ace/mode-swift.js +738 -0
  99. data/vendor/assets/javascripts/ace/mode-swig.js +1099 -0
  100. data/vendor/assets/javascripts/ace/mode-tcl.js +2 -3
  101. data/vendor/assets/javascripts/ace/mode-tex.js +1 -0
  102. data/vendor/assets/javascripts/ace/mode-toml.js +4 -0
  103. data/vendor/assets/javascripts/ace/mode-twig.js +495 -138
  104. data/vendor/assets/javascripts/ace/mode-typescript.js +147 -19
  105. data/vendor/assets/javascripts/ace/mode-vala.js +4 -5
  106. data/vendor/assets/javascripts/ace/mode-vbscript.js +26 -13
  107. data/vendor/assets/javascripts/ace/mode-velocity.js +495 -138
  108. data/vendor/assets/javascripts/ace/mode-verilog.js +8 -0
  109. data/vendor/assets/javascripts/ace/mode-xml.js +2 -3
  110. data/vendor/assets/javascripts/ace/mode-xquery.js +4 -5
  111. data/vendor/assets/javascripts/ace/snippets/actionscript.js +5 -0
  112. data/vendor/assets/javascripts/ace/snippets/html_elixir.js +7 -0
  113. data/vendor/assets/javascripts/ace/snippets/java.js +6 -0
  114. data/vendor/assets/javascripts/ace/snippets/javascript.js +13 -0
  115. data/vendor/assets/javascripts/ace/snippets/lsl.js +166 -0
  116. data/vendor/assets/javascripts/ace/snippets/maze.js +16 -0
  117. data/vendor/assets/javascripts/ace/snippets/php.js +105 -4
  118. data/vendor/assets/javascripts/ace/snippets/sqlserver.js +76 -0
  119. data/vendor/assets/javascripts/ace/snippets/swift.js +7 -0
  120. data/vendor/assets/javascripts/ace/snippets/swig.js +7 -0
  121. data/vendor/assets/javascripts/ace/theme-clouds.js +0 -1
  122. data/vendor/assets/javascripts/ace/theme-clouds_midnight.js +0 -1
  123. data/vendor/assets/javascripts/ace/theme-cobalt.js +3 -3
  124. data/vendor/assets/javascripts/ace/theme-dawn.js +0 -1
  125. data/vendor/assets/javascripts/ace/theme-github.js +0 -1
  126. data/vendor/assets/javascripts/ace/theme-idle_fingers.js +0 -1
  127. data/vendor/assets/javascripts/ace/theme-iplastic.js +121 -0
  128. data/vendor/assets/javascripts/ace/theme-katzenmilch.js +1 -2
  129. data/vendor/assets/javascripts/ace/theme-kr_theme.js +0 -1
  130. data/vendor/assets/javascripts/ace/theme-kuroir.js +0 -1
  131. data/vendor/assets/javascripts/ace/theme-merbivore.js +0 -1
  132. data/vendor/assets/javascripts/ace/theme-merbivore_soft.js +0 -1
  133. data/vendor/assets/javascripts/ace/theme-mono_industrial.js +0 -1
  134. data/vendor/assets/javascripts/ace/theme-monokai.js +0 -1
  135. data/vendor/assets/javascripts/ace/theme-pastel_on_dark.js +0 -1
  136. data/vendor/assets/javascripts/ace/theme-solarized_dark.js +0 -1
  137. data/vendor/assets/javascripts/ace/theme-solarized_light.js +0 -1
  138. data/vendor/assets/javascripts/ace/theme-sqlserver.js +138 -0
  139. data/vendor/assets/javascripts/ace/theme-terminal.js +0 -1
  140. data/vendor/assets/javascripts/ace/theme-textmate.js +0 -1
  141. data/vendor/assets/javascripts/ace/theme-tomorrow.js +0 -1
  142. data/vendor/assets/javascripts/ace/theme-tomorrow_night.js +0 -1
  143. data/vendor/assets/javascripts/ace/theme-tomorrow_night_blue.js +0 -1
  144. data/vendor/assets/javascripts/ace/theme-tomorrow_night_bright.js +0 -1
  145. data/vendor/assets/javascripts/ace/theme-tomorrow_night_eighties.js +0 -1
  146. data/vendor/assets/javascripts/ace/theme-twilight.js +0 -1
  147. data/vendor/assets/javascripts/ace/theme-vibrant_ink.js +0 -1
  148. data/vendor/assets/javascripts/ace/theme-xcode.js +0 -1
  149. data/vendor/assets/javascripts/ace/worker-coffee.js +576 -6015
  150. data/vendor/assets/javascripts/ace/worker-css.js +529 -449
  151. data/vendor/assets/javascripts/ace/worker-html.js +528 -448
  152. data/vendor/assets/javascripts/ace/worker-javascript.js +8719 -7656
  153. data/vendor/assets/javascripts/ace/worker-json.js +530 -450
  154. data/vendor/assets/javascripts/ace/worker-lua.js +530 -450
  155. data/vendor/assets/javascripts/ace/worker-php.js +530 -450
  156. data/vendor/assets/javascripts/ace/worker-xml.js +530 -450
  157. data/vendor/assets/javascripts/ace/worker-xquery.js +529 -449
  158. metadata +14 -2
@@ -287,14 +287,13 @@ var onSelectionChange = function(evt) {
287
287
  cvox.Api.speak('unselected');
288
288
  }
289
289
  };
290
- var onChange = function(evt) {
291
- var data = evt.data;
290
+ var onChange = function(delta) {
292
291
  switch (data.action) {
293
- case 'removeText':
292
+ case 'remove':
294
293
  cvox.Api.speak(data.text, 0, DELETED_PROP);
295
294
  changed = true;
296
295
  break;
297
- case 'insertText':
296
+ case 'insert':
298
297
  cvox.Api.speak(data.text, 0);
299
298
  changed = true;
300
299
  break;
@@ -14,13 +14,12 @@ var ElasticTabstopsLite = function(editor) {
14
14
  this.onExec = function() {
15
15
  recordChanges = true;
16
16
  };
17
- this.onChange = function(e) {
18
- var range = e.data.range
17
+ this.onChange = function(delta) {
19
18
  if (recordChanges) {
20
- if (changedRows.indexOf(range.start.row) == -1)
21
- changedRows.push(range.start.row);
22
- if (range.end.row != range.start.row)
23
- changedRows.push(range.end.row);
19
+ if (changedRows.indexOf(delta.start.row) == -1)
20
+ changedRows.push(delta.start.row);
21
+ if (delta.end.row != delta.start.row)
22
+ changedRows.push(delta.end.row);
24
23
  }
25
24
  };
26
25
  };
@@ -502,7 +502,10 @@ var SnippetManager = function() {
502
502
  s.guard = "\\b";
503
503
  s.trigger = lang.escapeRegExp(s.tabTrigger);
504
504
  }
505
-
505
+
506
+ if (!s.trigger && !s.guard && !s.endTrigger && !s.endGuard)
507
+ return;
508
+
506
509
  s.startRe = guardedRegexp(s.trigger, s.guard, true);
507
510
  s.triggerRe = new RegExp(s.trigger, "", true);
508
511
 
@@ -624,11 +627,11 @@ var TabstopManager = function(editor) {
624
627
  this.editor = null;
625
628
  };
626
629
 
627
- this.onChange = function(e) {
628
- var changeRange = e.data.range;
629
- var isRemove = e.data.action[0] == "r";
630
- var start = changeRange.start;
631
- var end = changeRange.end;
630
+ this.onChange = function(delta) {
631
+ var changeRange = delta;
632
+ var isRemove = delta.action[0] == "r";
633
+ var start = delta.start;
634
+ var end = delta.end;
632
635
  var startRow = start.row;
633
636
  var endRow = end.row;
634
637
  var lineDif = endRow - startRow;
@@ -996,7 +999,7 @@ AceEmmetEditor.prototype = {
996
999
  return syntax;
997
1000
  },
998
1001
  getProfileName: function() {
999
- switch(this.getSyntax()) {
1002
+ switch (this.getSyntax()) {
1000
1003
  case "css": return "css";
1001
1004
  case "xml":
1002
1005
  case "xsl":
@@ -1006,8 +1009,10 @@ AceEmmetEditor.prototype = {
1006
1009
  if (!profile)
1007
1010
  profile = this.ace.session.getLines(0,2).join("").search(/<!DOCTYPE[^>]+XHTML/i) != -1 ? "xhtml": "html";
1008
1011
  return profile;
1012
+ default:
1013
+ var mode = this.ace.session.$mode;
1014
+ return mode.emmetConfig && mode.emmetConfig.profile || "xhtml";
1009
1015
  }
1010
- return "xhtml";
1011
1016
  },
1012
1017
  prompt: function(title) {
1013
1018
  return prompt(title);
@@ -1095,11 +1100,9 @@ var keymap = {
1095
1100
 
1096
1101
  var editorProxy = new AceEmmetEditor();
1097
1102
  exports.commands = new HashHandler();
1098
- exports.runEmmetCommand = function(editor) {
1103
+ exports.runEmmetCommand = function runEmmetCommand(editor) {
1099
1104
  try {
1100
1105
  editorProxy.setupContext(editor);
1101
- if (editorProxy.getSyntax() == "php")
1102
- return false;
1103
1106
  var actions = emmet.require("actions");
1104
1107
 
1105
1108
  if (this.action == "expand_abbreviation_with_tab") {
@@ -1120,6 +1123,10 @@ exports.runEmmetCommand = function(editor) {
1120
1123
 
1121
1124
  var result = actions.run(this.action, editorProxy);
1122
1125
  } catch(e) {
1126
+ if (!emmet) {
1127
+ load(runEmmetCommand.bind(this, editor));
1128
+ return true;
1129
+ }
1123
1130
  editor._signal("changeStatus", typeof e == "string" ? e : e.message);
1124
1131
  console.log(e);
1125
1132
  result = false;
@@ -1145,27 +1152,49 @@ exports.updateCommands = function(editor, enabled) {
1145
1152
  }
1146
1153
  };
1147
1154
 
1148
- exports.isSupportedMode = function(modeId) {
1149
- return modeId && /css|less|scss|sass|stylus|html|php|twig|ejs/.test(modeId);
1155
+ exports.isSupportedMode = function(mode) {
1156
+ if (!mode) return false;
1157
+ if (mode.emmetConfig) return true;
1158
+ var id = mode.$id || mode;
1159
+ return /css|less|scss|sass|stylus|html|php|twig|ejs|handlebars/.test(id);
1150
1160
  };
1151
1161
 
1162
+ exports.isAvailable = function(editor, command) {
1163
+ if (/(evaluate_math_expression|expand_abbreviation)$/.test(command))
1164
+ return true;
1165
+ var mode = editor.session.$mode;
1166
+ var isSupported = exports.isSupportedMode(mode);
1167
+ if (isSupported && mode.$modes) {
1168
+ try {
1169
+ editorProxy.setupContext(editor);
1170
+ if (/js|php/.test(editorProxy.getSyntax()))
1171
+ isSupported = false;
1172
+ } catch(e) {}
1173
+ }
1174
+ return isSupported;
1175
+ }
1176
+
1152
1177
  var onChangeMode = function(e, target) {
1153
1178
  var editor = target;
1154
1179
  if (!editor)
1155
1180
  return;
1156
- var enabled = exports.isSupportedMode(editor.session.$modeId);
1181
+ var enabled = exports.isSupportedMode(editor.session.$mode);
1157
1182
  if (e.enableEmmet === false)
1158
1183
  enabled = false;
1159
- if (enabled) {
1160
- if (typeof emmetPath == "string") {
1161
- require("ace/config").loadModule(emmetPath, function() {
1162
- emmetPath = null;
1163
- });
1164
- }
1165
- }
1184
+ if (enabled)
1185
+ load();
1166
1186
  exports.updateCommands(editor, enabled);
1167
1187
  };
1168
1188
 
1189
+ var load = function(cb) {
1190
+ if (typeof emmetPath == "string") {
1191
+ require("ace/config").loadModule(emmetPath, function() {
1192
+ emmetPath = null;
1193
+ cb && cb();
1194
+ });
1195
+ }
1196
+ };
1197
+
1169
1198
  exports.AceEmmetEditor = AceEmmetEditor;
1170
1199
  require("ace/config").defineOptions(Editor.prototype, "editor", {
1171
1200
  enableEmmet: {
@@ -502,7 +502,10 @@ var SnippetManager = function() {
502
502
  s.guard = "\\b";
503
503
  s.trigger = lang.escapeRegExp(s.tabTrigger);
504
504
  }
505
-
505
+
506
+ if (!s.trigger && !s.guard && !s.endTrigger && !s.endGuard)
507
+ return;
508
+
506
509
  s.startRe = guardedRegexp(s.trigger, s.guard, true);
507
510
  s.triggerRe = new RegExp(s.trigger, "", true);
508
511
 
@@ -624,11 +627,11 @@ var TabstopManager = function(editor) {
624
627
  this.editor = null;
625
628
  };
626
629
 
627
- this.onChange = function(e) {
628
- var changeRange = e.data.range;
629
- var isRemove = e.data.action[0] == "r";
630
- var start = changeRange.start;
631
- var end = changeRange.end;
630
+ this.onChange = function(delta) {
631
+ var changeRange = delta;
632
+ var isRemove = delta.action[0] == "r";
633
+ var start = delta.start;
634
+ var end = delta.end;
632
635
  var startRow = start.row;
633
636
  var endRow = end.row;
634
637
  var lineDif = endRow - startRow;
@@ -901,10 +904,9 @@ var Editor = require("./editor").Editor;
901
904
 
902
905
  });
903
906
 
904
- define("ace/autocomplete/popup",["require","exports","module","ace/edit_session","ace/virtual_renderer","ace/editor","ace/range","ace/lib/event","ace/lib/lang","ace/lib/dom"], function(require, exports, module) {
907
+ define("ace/autocomplete/popup",["require","exports","module","ace/virtual_renderer","ace/editor","ace/range","ace/lib/event","ace/lib/lang","ace/lib/dom"], function(require, exports, module) {
905
908
  "use strict";
906
909
 
907
- var EditSession = require("../edit_session").EditSession;
908
910
  var Renderer = require("../virtual_renderer").VirtualRenderer;
909
911
  var Editor = require("../editor").Editor;
910
912
  var Range = require("../range").Range;
@@ -1090,8 +1092,8 @@ var AcePopup = function(parentNode) {
1090
1092
 
1091
1093
  popup.data = [];
1092
1094
  popup.setData = function(list) {
1093
- popup.data = list || [];
1094
1095
  popup.setValue(lang.stringRepeat("\n", list.length), -1);
1096
+ popup.data = list || [];
1095
1097
  popup.setRow(0);
1096
1098
  };
1097
1099
  popup.getData = function(row) {
@@ -1329,7 +1331,7 @@ var Autocomplete = function() {
1329
1331
  var rect = editor.container.getBoundingClientRect();
1330
1332
  pos.top += rect.top - renderer.layerConfig.offset;
1331
1333
  pos.left += rect.left - editor.renderer.scrollLeft;
1332
- pos.left += renderer.$gutterLayer.gutterWidth;
1334
+ pos.left += renderer.gutterWidth;
1333
1335
 
1334
1336
  this.popup.show(pos, lineHeight);
1335
1337
  } else if (keepPopupPosition && !prefix) {
@@ -1369,10 +1371,11 @@ var Autocomplete = function() {
1369
1371
 
1370
1372
  this.blurListener = function(e) {
1371
1373
  var el = document.activeElement;
1372
- var text = this.editor.textInput.getElement()
1373
- if (el != text && ( !this.popup || el.parentNode != this.popup.container )
1374
- && el != this.tooltipNode && e.relatedTarget != this.tooltipNode
1375
- && e.relatedTarget != text
1374
+ var text = this.editor.textInput.getElement();
1375
+ var fromTooltip = e.relatedTarget && e.relatedTarget == this.tooltipNode;
1376
+ var container = this.popup && this.popup.container;
1377
+ if (el != text && el.parentNode != container && !fromTooltip
1378
+ && el != this.tooltipNode && e.relatedTarget != text
1376
1379
  ) {
1377
1380
  this.detach();
1378
1381
  }
@@ -1400,7 +1403,7 @@ var Autocomplete = function() {
1400
1403
  this.popup.setRow(row);
1401
1404
  };
1402
1405
 
1403
- this.insertMatch = function(data) {
1406
+ this.insertMatch = function(data, options) {
1404
1407
  if (!data)
1405
1408
  data = this.popup.getData(this.popup.getRow());
1406
1409
  if (!data)
@@ -1433,7 +1436,7 @@ var Autocomplete = function() {
1433
1436
 
1434
1437
  "Esc": function(editor) { editor.completer.detach(); },
1435
1438
  "Return": function(editor) { return editor.completer.insertMatch(); },
1436
- "Shift-Return": function(editor) { editor.completer.insertMatch(true); },
1439
+ "Shift-Return": function(editor) { editor.completer.insertMatch(null, {deleteSuffix: true}); },
1437
1440
  "Tab": function(editor) {
1438
1441
  var result = editor.completer.insertMatch();
1439
1442
  if (!result && !editor.tabstopManager)
@@ -1564,7 +1567,7 @@ var Autocomplete = function() {
1564
1567
  doc = selected;
1565
1568
 
1566
1569
  if (typeof doc == "string")
1567
- doc = {docText: doc}
1570
+ doc = {docText: doc};
1568
1571
  if (!doc || !(doc.docHTML || doc.docText))
1569
1572
  return this.hideDocTooltip();
1570
1573
  this.showDocTooltip(doc);
@@ -1630,7 +1633,7 @@ Autocomplete.startCommand = {
1630
1633
  bindKey: "Ctrl-Space|Ctrl-Shift-Space|Alt-Space"
1631
1634
  };
1632
1635
 
1633
- var FilteredList = function(array, filterText, mutateData) {
1636
+ var FilteredList = function(array, filterText) {
1634
1637
  this.all = array;
1635
1638
  this.filtered = array;
1636
1639
  this.filterText = filterText || "";
@@ -1870,7 +1873,6 @@ function getCompletionPrefix(editor) {
1870
1873
 
1871
1874
  var doLiveAutocomplete = function(e) {
1872
1875
  var editor = e.editor;
1873
- var text = e.args || "";
1874
1876
  var hasCompleter = editor.completer && editor.completer.activated;
1875
1877
  if (e.command.name === "backspace") {
1876
1878
  if (hasCompleter && !getCompletionPrefix(editor))
@@ -40,11 +40,11 @@ var supportedModes = {
40
40
  ADA: ["ada|adb"],
41
41
  Apache_Conf: ["^htaccess|^htgroups|^htpasswd|^conf|htaccess|htgroups|htpasswd"],
42
42
  AsciiDoc: ["asciidoc|adoc"],
43
- Assembly_x86:["asm"],
43
+ Assembly_x86:["asm|a"],
44
44
  AutoHotKey: ["ahk"],
45
45
  BatchFile: ["bat|cmd"],
46
+ C_Cpp: ["cpp|c|cc|cxx|h|hh|hpp|ino"],
46
47
  C9Search: ["c9search_results"],
47
- C_Cpp: ["cpp|c|cc|cxx|h|hh|hpp"],
48
48
  Cirru: ["cirru|cr"],
49
49
  Clojure: ["clj|cljs"],
50
50
  Cobol: ["CBL|COB"],
@@ -60,7 +60,7 @@ var supportedModes = {
60
60
  Dot: ["dot"],
61
61
  Dummy: ["dummy"],
62
62
  DummySyntax: ["dummy"],
63
- Eiffel: ["e"],
63
+ Eiffel: ["e|ge"],
64
64
  EJS: ["ejs"],
65
65
  Elixir: ["ex|exs"],
66
66
  Elm: ["elm"],
@@ -79,6 +79,7 @@ var supportedModes = {
79
79
  haXe: ["hx"],
80
80
  HTML: ["html|htm|xhtml"],
81
81
  HTML_Ruby: ["erb|rhtml|html.erb"],
82
+ HTML_Elixir: ["eex|html.eex"],
82
83
  INI: ["ini|conf|cfg|prefs"],
83
84
  Io: ["io"],
84
85
  Jack: ["jack"],
@@ -105,6 +106,7 @@ var supportedModes = {
105
106
  Markdown: ["md|markdown"],
106
107
  Mask: ["mask"],
107
108
  MATLAB: ["matlab"],
109
+ Maze: ["mz"],
108
110
  MEL: ["mel"],
109
111
  MUSHCode: ["mc|mush"],
110
112
  MySQL: ["mysql"],
@@ -114,7 +116,7 @@ var supportedModes = {
114
116
  Pascal: ["pas|p"],
115
117
  Perl: ["pl|pm"],
116
118
  pgSQL: ["pgsql"],
117
- PHP: ["php|phtml"],
119
+ PHP: ["php|phtml|shtml|php3|php4|php5|phps|phpt|aw|ctp"],
118
120
  Powershell: ["ps1"],
119
121
  Praat: ["praat|praatscript|psc|proc"],
120
122
  Prolog: ["plg|prolog"],
@@ -129,7 +131,7 @@ var supportedModes = {
129
131
  SASS: ["sass"],
130
132
  SCAD: ["scad"],
131
133
  Scala: ["scala"],
132
- Scheme: ["scm|rkt"],
134
+ Scheme: ["scm|sm|rkt|oak|scheme"],
133
135
  SCSS: ["scss"],
134
136
  SH: ["sh|bash|^.bashrc"],
135
137
  SJS: ["sjs"],
@@ -138,14 +140,16 @@ var supportedModes = {
138
140
  Soy_Template:["soy"],
139
141
  Space: ["space"],
140
142
  SQL: ["sql"],
143
+ SQLServer: ["sqlserver"],
141
144
  Stylus: ["styl|stylus"],
142
145
  SVG: ["svg"],
146
+ Swift: ["swift"],
143
147
  Tcl: ["tcl"],
144
148
  Tex: ["tex"],
145
149
  Text: ["txt"],
146
150
  Textile: ["textile"],
147
151
  Toml: ["toml"],
148
- Twig: ["twig"],
152
+ Twig: ["twig|swig"],
149
153
  Typescript: ["ts|typescript|str"],
150
154
  Vala: ["vala"],
151
155
  VBScript: ["vbs|vb"],
@@ -165,6 +169,7 @@ var nameOverrides = {
165
169
  C_Cpp: "C and C++",
166
170
  coffee: "CoffeeScript",
167
171
  HTML_Ruby: "HTML (Ruby)",
172
+ HTML_Elixir: "HTML (Elixir)",
168
173
  FTL: "FreeMarker"
169
174
  };
170
175
  var modesByName = {};
@@ -63,7 +63,6 @@ cursor: pointer;\
63
63
  float: left;\
64
64
  height: 22px;\
65
65
  margin: 0;\
66
- padding: 0;\
67
66
  position: relative;\
68
67
  }\
69
68
  .ace_searchbtn:last-child,\
@@ -255,10 +254,14 @@ var SearchBox = function(editor, range, showReplaceForm) {
255
254
  }]);
256
255
  this.$searchBarKb = new HashHandler();
257
256
  this.$searchBarKb.bindKeys({
258
- "Ctrl-f|Command-f|Ctrl-H|Command-Option-F": function(sb) {
257
+ "Ctrl-f|Command-f": function(sb) {
259
258
  var isReplace = sb.isReplace = !sb.isReplace;
260
259
  sb.replaceBox.style.display = isReplace ? "" : "none";
261
- sb[isReplace ? "replaceInput" : "searchInput"].focus();
260
+ sb.searchInput.focus();
261
+ },
262
+ "Ctrl-H|Command-Option-F": function(sb) {
263
+ sb.replaceBox.style.display = "";
264
+ sb.replaceInput.focus();
262
265
  },
263
266
  "Ctrl-G|Command-G": function(sb) {
264
267
  sb.findNext();
@@ -323,14 +326,15 @@ var SearchBox = function(editor, range, showReplaceForm) {
323
326
  this.editor.session.highlight(re || this.editor.$search.$options.re);
324
327
  this.editor.renderer.updateBackMarkers()
325
328
  };
326
- this.find = function(skipCurrent, backwards) {
329
+ this.find = function(skipCurrent, backwards, preventScroll) {
327
330
  var range = this.editor.find(this.searchInput.value, {
328
331
  skipCurrent: skipCurrent,
329
332
  backwards: backwards,
330
333
  wrap: true,
331
334
  regExp: this.regExpOption.checked,
332
335
  caseSensitive: this.caseSensitiveOption.checked,
333
- wholeWord: this.wholeWordOption.checked
336
+ wholeWord: this.wholeWordOption.checked,
337
+ preventScroll: preventScroll
334
338
  });
335
339
  var noMatch = !range && this.searchInput.value;
336
340
  dom.setCssClass(this.searchBox, "ace_nomatch", noMatch);
@@ -383,6 +387,9 @@ var SearchBox = function(editor, range, showReplaceForm) {
383
387
 
384
388
  if (value)
385
389
  this.searchInput.value = value;
390
+
391
+ this.find(false, false, true);
392
+
386
393
  this.searchInput.focus();
387
394
  this.searchInput.select();
388
395
 
@@ -63,7 +63,6 @@ cursor: pointer;\
63
63
  float: left;\
64
64
  height: 22px;\
65
65
  margin: 0;\
66
- padding: 0;\
67
66
  position: relative;\
68
67
  }\
69
68
  .ace_searchbtn:last-child,\
@@ -255,10 +254,14 @@ var SearchBox = function(editor, range, showReplaceForm) {
255
254
  }]);
256
255
  this.$searchBarKb = new HashHandler();
257
256
  this.$searchBarKb.bindKeys({
258
- "Ctrl-f|Command-f|Ctrl-H|Command-Option-F": function(sb) {
257
+ "Ctrl-f|Command-f": function(sb) {
259
258
  var isReplace = sb.isReplace = !sb.isReplace;
260
259
  sb.replaceBox.style.display = isReplace ? "" : "none";
261
- sb[isReplace ? "replaceInput" : "searchInput"].focus();
260
+ sb.searchInput.focus();
261
+ },
262
+ "Ctrl-H|Command-Option-F": function(sb) {
263
+ sb.replaceBox.style.display = "";
264
+ sb.replaceInput.focus();
262
265
  },
263
266
  "Ctrl-G|Command-G": function(sb) {
264
267
  sb.findNext();
@@ -323,14 +326,15 @@ var SearchBox = function(editor, range, showReplaceForm) {
323
326
  this.editor.session.highlight(re || this.editor.$search.$options.re);
324
327
  this.editor.renderer.updateBackMarkers()
325
328
  };
326
- this.find = function(skipCurrent, backwards) {
329
+ this.find = function(skipCurrent, backwards, preventScroll) {
327
330
  var range = this.editor.find(this.searchInput.value, {
328
331
  skipCurrent: skipCurrent,
329
332
  backwards: backwards,
330
333
  wrap: true,
331
334
  regExp: this.regExpOption.checked,
332
335
  caseSensitive: this.caseSensitiveOption.checked,
333
- wholeWord: this.wholeWordOption.checked
336
+ wholeWord: this.wholeWordOption.checked,
337
+ preventScroll: preventScroll
334
338
  });
335
339
  var noMatch = !range && this.searchInput.value;
336
340
  dom.setCssClass(this.searchBox, "ace_nomatch", noMatch);
@@ -383,6 +387,9 @@ var SearchBox = function(editor, range, showReplaceForm) {
383
387
 
384
388
  if (value)
385
389
  this.searchInput.value = value;
390
+
391
+ this.find(false, false, true);
392
+
386
393
  this.searchInput.focus();
387
394
  this.searchInput.select();
388
395