ace-rails-ap 4.2 → 4.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (331) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -2
  3. data/ace-rails-ap.gemspec +0 -2
  4. data/lib/ace/rails/version.rb +1 -1
  5. data/update.sh +1 -1
  6. data/vendor/assets/javascripts/ace/ace.js +1297 -1274
  7. data/vendor/assets/javascripts/ace/ext-beautify.js +6 -2
  8. data/vendor/assets/javascripts/ace/ext-code_lens.js +238 -0
  9. data/vendor/assets/javascripts/ace/ext-emmet.js +340 -236
  10. data/vendor/assets/javascripts/ace/ext-keybinding_menu.js +37 -32
  11. data/vendor/assets/javascripts/ace/ext-language_tools.js +415 -263
  12. data/vendor/assets/javascripts/ace/ext-linking.js +1 -1
  13. data/vendor/assets/javascripts/ace/ext-modelist.js +15 -5
  14. data/vendor/assets/javascripts/ace/ext-options.js +88 -50
  15. data/vendor/assets/javascripts/ace/ext-prompt.js +2783 -0
  16. data/vendor/assets/javascripts/ace/ext-rtl.js +1 -3
  17. data/vendor/assets/javascripts/ace/ext-settings_menu.js +92 -54
  18. data/vendor/assets/javascripts/ace/ext-spellcheck.js +0 -1
  19. data/vendor/assets/javascripts/ace/ext-statusbar.js +2 -2
  20. data/vendor/assets/javascripts/ace/ext-themelist.js +2 -1
  21. data/vendor/assets/javascripts/ace/ext-whitespace.js +4 -0
  22. data/vendor/assets/javascripts/ace/keybinding-emacs.js +22 -22
  23. data/vendor/assets/javascripts/ace/keybinding-sublime.js +2 -5
  24. data/vendor/assets/javascripts/ace/keybinding-vim.js +336 -70
  25. data/vendor/assets/javascripts/ace/keybinding-vscode.js +262 -0
  26. data/vendor/assets/javascripts/ace/mode-abc.js +3 -0
  27. data/vendor/assets/javascripts/ace/mode-actionscript.js +1 -0
  28. data/vendor/assets/javascripts/ace/mode-alda.js +311 -0
  29. data/vendor/assets/javascripts/ace/mode-aql.js +102 -0
  30. data/vendor/assets/javascripts/ace/mode-asl.js +17 -16
  31. data/vendor/assets/javascripts/ace/mode-autohotkey.js +3 -1
  32. data/vendor/assets/javascripts/ace/mode-c_cpp.js +1 -0
  33. data/vendor/assets/javascripts/ace/mode-cirru.js +2 -2
  34. data/vendor/assets/javascripts/ace/mode-clojure.js +1 -0
  35. data/vendor/assets/javascripts/ace/mode-coffee.js +1 -0
  36. data/vendor/assets/javascripts/ace/mode-coldfusion.js +3 -0
  37. data/vendor/assets/javascripts/ace/mode-crystal.js +642 -0
  38. data/vendor/assets/javascripts/ace/mode-csound_document.js +82 -34
  39. data/vendor/assets/javascripts/ace/mode-csound_orchestra.js +72 -30
  40. data/vendor/assets/javascripts/ace/mode-csound_score.js +30 -21
  41. data/vendor/assets/javascripts/ace/mode-css.js +1 -0
  42. data/vendor/assets/javascripts/ace/mode-curly.js +3 -0
  43. data/vendor/assets/javascripts/ace/mode-d.js +1 -1
  44. data/vendor/assets/javascripts/ace/mode-dart.js +2 -0
  45. data/vendor/assets/javascripts/ace/mode-diff.js +1 -0
  46. data/vendor/assets/javascripts/ace/mode-django.js +4 -0
  47. data/vendor/assets/javascripts/ace/mode-dockerfile.js +1 -0
  48. data/vendor/assets/javascripts/ace/mode-drools.js +1 -0
  49. data/vendor/assets/javascripts/ace/mode-edifact.js +1 -0
  50. data/vendor/assets/javascripts/ace/mode-ejs.js +673 -165
  51. data/vendor/assets/javascripts/ace/mode-erlang.js +1 -0
  52. data/vendor/assets/javascripts/ace/mode-fsharp.js +2 -2
  53. data/vendor/assets/javascripts/ace/mode-fsl.js +1 -0
  54. data/vendor/assets/javascripts/ace/mode-gherkin.js +0 -2
  55. data/vendor/assets/javascripts/ace/mode-glsl.js +1 -0
  56. data/vendor/assets/javascripts/ace/mode-gobstones.js +254 -94
  57. data/vendor/assets/javascripts/ace/mode-graphqlschema.js +1 -0
  58. data/vendor/assets/javascripts/ace/mode-groovy.js +1 -0
  59. data/vendor/assets/javascripts/ace/mode-haml.js +419 -104
  60. data/vendor/assets/javascripts/ace/mode-handlebars.js +3 -0
  61. data/vendor/assets/javascripts/ace/mode-haskell.js +1 -0
  62. data/vendor/assets/javascripts/ace/mode-html.js +3 -0
  63. data/vendor/assets/javascripts/ace/mode-html_elixir.js +3 -0
  64. data/vendor/assets/javascripts/ace/mode-html_ruby.js +673 -165
  65. data/vendor/assets/javascripts/ace/mode-io.js +2 -7
  66. data/vendor/assets/javascripts/ace/mode-jade.js +1 -1
  67. data/vendor/assets/javascripts/ace/mode-java.js +2 -0
  68. data/vendor/assets/javascripts/ace/mode-javascript.js +1 -0
  69. data/vendor/assets/javascripts/ace/mode-json.js +3 -0
  70. data/vendor/assets/javascripts/ace/mode-json5.js +360 -0
  71. data/vendor/assets/javascripts/ace/mode-jsoniq.js +1 -0
  72. data/vendor/assets/javascripts/ace/mode-jsp.js +1 -0
  73. data/vendor/assets/javascripts/ace/mode-kotlin.js +2 -0
  74. data/vendor/assets/javascripts/ace/mode-liquid.js +4 -0
  75. data/vendor/assets/javascripts/ace/mode-lsl.js +1 -0
  76. data/vendor/assets/javascripts/ace/mode-lua.js +31 -10
  77. data/vendor/assets/javascripts/ace/mode-luapage.js +34 -10
  78. data/vendor/assets/javascripts/ace/mode-lucene.js +77 -9
  79. data/vendor/assets/javascripts/ace/mode-makefile.js +1 -0
  80. data/vendor/assets/javascripts/ace/mode-markdown.js +7 -1
  81. data/vendor/assets/javascripts/ace/mode-mask.js +1 -1
  82. data/vendor/assets/javascripts/ace/mode-maze.js +1 -0
  83. data/vendor/assets/javascripts/ace/mode-mediawiki.js +592 -0
  84. data/vendor/assets/javascripts/ace/mode-nginx.js +298 -0
  85. data/vendor/assets/javascripts/ace/mode-nim.js +363 -0
  86. data/vendor/assets/javascripts/ace/mode-nix.js +1 -0
  87. data/vendor/assets/javascripts/ace/mode-nsis.js +1 -1
  88. data/vendor/assets/javascripts/ace/mode-nunjucks.js +2698 -0
  89. data/vendor/assets/javascripts/ace/mode-pascal.js +84 -66
  90. data/vendor/assets/javascripts/ace/mode-perl.js +1 -0
  91. data/vendor/assets/javascripts/ace/mode-pgsql.js +2 -2
  92. data/vendor/assets/javascripts/ace/mode-php.js +5 -1
  93. data/vendor/assets/javascripts/ace/mode-php_laravel_blade.js +5 -1
  94. data/vendor/assets/javascripts/ace/mode-prisma.js +489 -0
  95. data/vendor/assets/javascripts/ace/mode-protobuf.js +1 -0
  96. data/vendor/assets/javascripts/ace/mode-puppet.js +8 -9
  97. data/vendor/assets/javascripts/ace/mode-python.js +3 -2
  98. data/vendor/assets/javascripts/ace/mode-qml.js +381 -0
  99. data/vendor/assets/javascripts/ace/mode-r.js +1 -0
  100. data/vendor/assets/javascripts/ace/mode-razor.js +4 -0
  101. data/vendor/assets/javascripts/ace/mode-rhtml.js +3 -0
  102. data/vendor/assets/javascripts/ace/mode-rst.js +1 -0
  103. data/vendor/assets/javascripts/ace/mode-ruby.js +670 -165
  104. data/vendor/assets/javascripts/ace/mode-rust.js +1 -1
  105. data/vendor/assets/javascripts/ace/mode-scala.js +1 -0
  106. data/vendor/assets/javascripts/ace/mode-sh.js +1 -0
  107. data/vendor/assets/javascripts/ace/mode-sjs.js +1 -0
  108. data/vendor/assets/javascripts/ace/mode-slim.js +710 -111
  109. data/vendor/assets/javascripts/ace/mode-smarty.js +3 -0
  110. data/vendor/assets/javascripts/ace/mode-snippets.js +1 -0
  111. data/vendor/assets/javascripts/ace/mode-soy_template.js +3 -0
  112. data/vendor/assets/javascripts/ace/mode-sql.js +1 -0
  113. data/vendor/assets/javascripts/ace/mode-sqlserver.js +2 -1
  114. data/vendor/assets/javascripts/ace/mode-svg.js +1 -0
  115. data/vendor/assets/javascripts/ace/mode-swift.js +6 -0
  116. data/vendor/assets/javascripts/ace/mode-tcl.js +4 -0
  117. data/vendor/assets/javascripts/ace/mode-terraform.js +14 -11
  118. data/vendor/assets/javascripts/ace/mode-tex.js +1 -0
  119. data/vendor/assets/javascripts/ace/mode-textile.js +1 -0
  120. data/vendor/assets/javascripts/ace/mode-tsx.js +1 -0
  121. data/vendor/assets/javascripts/ace/mode-twig.js +3 -0
  122. data/vendor/assets/javascripts/ace/mode-typescript.js +1 -0
  123. data/vendor/assets/javascripts/ace/mode-vala.js +1 -0
  124. data/vendor/assets/javascripts/ace/mode-vbscript.js +444 -15
  125. data/vendor/assets/javascripts/ace/mode-velocity.js +4 -0
  126. data/vendor/assets/javascripts/ace/mode-vhdl.js +5 -6
  127. data/vendor/assets/javascripts/ace/mode-visualforce.js +3 -0
  128. data/vendor/assets/javascripts/ace/mode-wollok.js +2 -0
  129. data/vendor/assets/javascripts/ace/mode-xquery.js +1 -0
  130. data/vendor/assets/javascripts/ace/mode-yaml.js +44 -13
  131. data/vendor/assets/javascripts/ace/mode-zeek.js +539 -0
  132. data/vendor/assets/javascripts/ace/snippets/abap.js +8 -6
  133. data/vendor/assets/javascripts/ace/snippets/abc.js +8 -1
  134. data/vendor/assets/javascripts/ace/snippets/actionscript.js +8 -1
  135. data/vendor/assets/javascripts/ace/snippets/ada.js +8 -6
  136. data/vendor/assets/javascripts/ace/snippets/alda.js +9 -0
  137. data/vendor/assets/javascripts/ace/snippets/apache_conf.js +8 -6
  138. data/vendor/assets/javascripts/ace/snippets/apex.js +9 -0
  139. data/vendor/assets/javascripts/ace/snippets/applescript.js +8 -6
  140. data/vendor/assets/javascripts/ace/snippets/aql.js +9 -0
  141. data/vendor/assets/javascripts/ace/snippets/asciidoc.js +8 -6
  142. data/vendor/assets/javascripts/ace/snippets/asl.js +9 -0
  143. data/vendor/assets/javascripts/ace/snippets/assembly_x86.js +8 -6
  144. data/vendor/assets/javascripts/ace/snippets/autohotkey.js +8 -6
  145. data/vendor/assets/javascripts/ace/snippets/batchfile.js +8 -6
  146. data/vendor/assets/javascripts/ace/snippets/c9search.js +8 -6
  147. data/vendor/assets/javascripts/ace/snippets/c_cpp.js +8 -1
  148. data/vendor/assets/javascripts/ace/snippets/cirru.js +8 -6
  149. data/vendor/assets/javascripts/ace/snippets/clojure.js +8 -1
  150. data/vendor/assets/javascripts/ace/snippets/cobol.js +8 -6
  151. data/vendor/assets/javascripts/ace/snippets/coffee.js +8 -1
  152. data/vendor/assets/javascripts/ace/snippets/coldfusion.js +8 -6
  153. data/vendor/assets/javascripts/ace/snippets/crystal.js +9 -0
  154. data/vendor/assets/javascripts/ace/snippets/csharp.js +8 -6
  155. data/vendor/assets/javascripts/ace/snippets/csound_document.js +24 -0
  156. data/vendor/assets/javascripts/ace/snippets/csound_orchestra.js +61 -0
  157. data/vendor/assets/javascripts/ace/snippets/csound_score.js +9 -0
  158. data/vendor/assets/javascripts/ace/snippets/csp.js +9 -0
  159. data/vendor/assets/javascripts/ace/snippets/css.js +8 -1
  160. data/vendor/assets/javascripts/ace/snippets/curly.js +8 -6
  161. data/vendor/assets/javascripts/ace/snippets/d.js +8 -6
  162. data/vendor/assets/javascripts/ace/snippets/dart.js +8 -1
  163. data/vendor/assets/javascripts/ace/snippets/diff.js +8 -1
  164. data/vendor/assets/javascripts/ace/snippets/django.js +8 -1
  165. data/vendor/assets/javascripts/ace/snippets/dockerfile.js +8 -6
  166. data/vendor/assets/javascripts/ace/snippets/dot.js +8 -6
  167. data/vendor/assets/javascripts/ace/snippets/drools.js +8 -1
  168. data/vendor/assets/javascripts/ace/snippets/edifact.js +254 -0
  169. data/vendor/assets/javascripts/ace/snippets/eiffel.js +8 -6
  170. data/vendor/assets/javascripts/ace/snippets/ejs.js +8 -6
  171. data/vendor/assets/javascripts/ace/snippets/elixir.js +8 -6
  172. data/vendor/assets/javascripts/ace/snippets/elm.js +8 -6
  173. data/vendor/assets/javascripts/ace/snippets/erlang.js +8 -1
  174. data/vendor/assets/javascripts/ace/snippets/forth.js +8 -6
  175. data/vendor/assets/javascripts/ace/snippets/fortran.js +8 -6
  176. data/vendor/assets/javascripts/ace/snippets/fsharp.js +9 -0
  177. data/vendor/assets/javascripts/ace/snippets/fsl.js +14 -0
  178. data/vendor/assets/javascripts/ace/snippets/ftl.js +8 -6
  179. data/vendor/assets/javascripts/ace/snippets/gcode.js +8 -6
  180. data/vendor/assets/javascripts/ace/snippets/gherkin.js +8 -6
  181. data/vendor/assets/javascripts/ace/snippets/gitignore.js +8 -6
  182. data/vendor/assets/javascripts/ace/snippets/glsl.js +8 -6
  183. data/vendor/assets/javascripts/ace/snippets/gobstones.js +1701 -24
  184. data/vendor/assets/javascripts/ace/snippets/golang.js +8 -6
  185. data/vendor/assets/javascripts/ace/snippets/graphqlschema.js +8 -1
  186. data/vendor/assets/javascripts/ace/snippets/groovy.js +8 -6
  187. data/vendor/assets/javascripts/ace/snippets/haml.js +8 -1
  188. data/vendor/assets/javascripts/ace/snippets/handlebars.js +8 -6
  189. data/vendor/assets/javascripts/ace/snippets/haskell.js +8 -1
  190. data/vendor/assets/javascripts/ace/snippets/haskell_cabal.js +8 -6
  191. data/vendor/assets/javascripts/ace/snippets/haxe.js +8 -6
  192. data/vendor/assets/javascripts/ace/snippets/hjson.js +8 -6
  193. data/vendor/assets/javascripts/ace/snippets/html.js +36 -2
  194. data/vendor/assets/javascripts/ace/snippets/html_elixir.js +8 -6
  195. data/vendor/assets/javascripts/ace/snippets/html_ruby.js +8 -6
  196. data/vendor/assets/javascripts/ace/snippets/ini.js +8 -6
  197. data/vendor/assets/javascripts/ace/snippets/io.js +8 -1
  198. data/vendor/assets/javascripts/ace/snippets/jack.js +8 -6
  199. data/vendor/assets/javascripts/ace/snippets/jade.js +8 -6
  200. data/vendor/assets/javascripts/ace/snippets/java.js +8 -1
  201. data/vendor/assets/javascripts/ace/snippets/javascript.js +8 -1
  202. data/vendor/assets/javascripts/ace/snippets/json.js +8 -6
  203. data/vendor/assets/javascripts/ace/snippets/json5.js +9 -0
  204. data/vendor/assets/javascripts/ace/snippets/jsoniq.js +8 -1
  205. data/vendor/assets/javascripts/ace/snippets/jsp.js +8 -1
  206. data/vendor/assets/javascripts/ace/snippets/jssm.js +9 -0
  207. data/vendor/assets/javascripts/ace/snippets/jsx.js +8 -6
  208. data/vendor/assets/javascripts/ace/snippets/julia.js +8 -6
  209. data/vendor/assets/javascripts/ace/snippets/kotlin.js +8 -6
  210. data/vendor/assets/javascripts/ace/snippets/latex.js +8 -6
  211. data/vendor/assets/javascripts/ace/snippets/less.js +8 -6
  212. data/vendor/assets/javascripts/ace/snippets/liquid.js +890 -2
  213. data/vendor/assets/javascripts/ace/snippets/lisp.js +8 -6
  214. data/vendor/assets/javascripts/ace/snippets/livescript.js +8 -6
  215. data/vendor/assets/javascripts/ace/snippets/logiql.js +8 -6
  216. data/vendor/assets/javascripts/ace/snippets/logtalk.js +9 -0
  217. data/vendor/assets/javascripts/ace/snippets/lsl.js +8 -1
  218. data/vendor/assets/javascripts/ace/snippets/lua.js +8 -1
  219. data/vendor/assets/javascripts/ace/snippets/luapage.js +8 -6
  220. data/vendor/assets/javascripts/ace/snippets/lucene.js +8 -6
  221. data/vendor/assets/javascripts/ace/snippets/makefile.js +8 -1
  222. data/vendor/assets/javascripts/ace/snippets/markdown.js +8 -1
  223. data/vendor/assets/javascripts/ace/snippets/mask.js +8 -6
  224. data/vendor/assets/javascripts/ace/snippets/matlab.js +8 -6
  225. data/vendor/assets/javascripts/ace/snippets/maze.js +8 -1
  226. data/vendor/assets/javascripts/ace/snippets/mediawiki.js +9 -0
  227. data/vendor/assets/javascripts/ace/snippets/mel.js +8 -6
  228. data/vendor/assets/javascripts/ace/snippets/mixal.js +9 -0
  229. data/vendor/assets/javascripts/ace/snippets/mushcode.js +8 -6
  230. data/vendor/assets/javascripts/ace/snippets/mysql.js +8 -6
  231. data/vendor/assets/javascripts/ace/snippets/nginx.js +9 -0
  232. data/vendor/assets/javascripts/ace/snippets/nim.js +9 -0
  233. data/vendor/assets/javascripts/ace/snippets/nix.js +8 -6
  234. data/vendor/assets/javascripts/ace/snippets/nsis.js +8 -6
  235. data/vendor/assets/javascripts/ace/snippets/nunjucks.js +9 -0
  236. data/vendor/assets/javascripts/ace/snippets/objectivec.js +8 -6
  237. data/vendor/assets/javascripts/ace/snippets/ocaml.js +8 -6
  238. data/vendor/assets/javascripts/ace/snippets/pascal.js +8 -6
  239. data/vendor/assets/javascripts/ace/snippets/perl.js +8 -1
  240. data/vendor/assets/javascripts/ace/snippets/perl6.js +9 -0
  241. data/vendor/assets/javascripts/ace/snippets/pgsql.js +8 -6
  242. data/vendor/assets/javascripts/ace/snippets/php.js +49 -36
  243. data/vendor/assets/javascripts/ace/snippets/php_laravel_blade.js +9 -0
  244. data/vendor/assets/javascripts/ace/snippets/pig.js +8 -6
  245. data/vendor/assets/javascripts/ace/snippets/plain_text.js +8 -6
  246. data/vendor/assets/javascripts/ace/snippets/powershell.js +8 -6
  247. data/vendor/assets/javascripts/ace/snippets/praat.js +8 -6
  248. data/vendor/assets/javascripts/ace/snippets/prisma.js +9 -0
  249. data/vendor/assets/javascripts/ace/snippets/prolog.js +8 -6
  250. data/vendor/assets/javascripts/ace/snippets/properties.js +8 -6
  251. data/vendor/assets/javascripts/ace/snippets/protobuf.js +8 -6
  252. data/vendor/assets/javascripts/ace/snippets/puppet.js +9 -0
  253. data/vendor/assets/javascripts/ace/snippets/python.js +8 -1
  254. data/vendor/assets/javascripts/ace/snippets/qml.js +9 -0
  255. data/vendor/assets/javascripts/ace/snippets/r.js +8 -1
  256. data/vendor/assets/javascripts/ace/snippets/razor.js +8 -1
  257. data/vendor/assets/javascripts/ace/snippets/rdoc.js +8 -6
  258. data/vendor/assets/javascripts/ace/snippets/red.js +9 -0
  259. data/vendor/assets/javascripts/ace/snippets/redshift.js +9 -0
  260. data/vendor/assets/javascripts/ace/snippets/rhtml.js +8 -6
  261. data/vendor/assets/javascripts/ace/snippets/rst.js +8 -1
  262. data/vendor/assets/javascripts/ace/snippets/ruby.js +8 -1
  263. data/vendor/assets/javascripts/ace/snippets/rust.js +8 -6
  264. data/vendor/assets/javascripts/ace/snippets/sass.js +8 -6
  265. data/vendor/assets/javascripts/ace/snippets/scad.js +8 -6
  266. data/vendor/assets/javascripts/ace/snippets/scala.js +8 -6
  267. data/vendor/assets/javascripts/ace/snippets/scheme.js +8 -6
  268. data/vendor/assets/javascripts/ace/snippets/scss.js +8 -6
  269. data/vendor/assets/javascripts/ace/snippets/sh.js +8 -1
  270. data/vendor/assets/javascripts/ace/snippets/sjs.js +8 -6
  271. data/vendor/assets/javascripts/ace/snippets/slim.js +9 -0
  272. data/vendor/assets/javascripts/ace/snippets/smarty.js +8 -6
  273. data/vendor/assets/javascripts/ace/snippets/snippets.js +8 -1
  274. data/vendor/assets/javascripts/ace/snippets/soy_template.js +8 -6
  275. data/vendor/assets/javascripts/ace/snippets/space.js +8 -6
  276. data/vendor/assets/javascripts/ace/snippets/sparql.js +8 -6
  277. data/vendor/assets/javascripts/ace/snippets/sql.js +8 -1
  278. data/vendor/assets/javascripts/ace/snippets/sqlserver.js +8 -1
  279. data/vendor/assets/javascripts/ace/snippets/stylus.js +8 -6
  280. data/vendor/assets/javascripts/ace/snippets/svg.js +8 -6
  281. data/vendor/assets/javascripts/ace/snippets/swift.js +8 -6
  282. data/vendor/assets/javascripts/ace/snippets/tcl.js +8 -1
  283. data/vendor/assets/javascripts/ace/snippets/terraform.js +9 -0
  284. data/vendor/assets/javascripts/ace/snippets/tex.js +8 -1
  285. data/vendor/assets/javascripts/ace/snippets/text.js +8 -6
  286. data/vendor/assets/javascripts/ace/snippets/textile.js +8 -1
  287. data/vendor/assets/javascripts/ace/snippets/toml.js +8 -6
  288. data/vendor/assets/javascripts/ace/snippets/tsx.js +8 -6
  289. data/vendor/assets/javascripts/ace/snippets/turtle.js +8 -6
  290. data/vendor/assets/javascripts/ace/snippets/twig.js +8 -6
  291. data/vendor/assets/javascripts/ace/snippets/typescript.js +8 -6
  292. data/vendor/assets/javascripts/ace/snippets/vala.js +8 -1
  293. data/vendor/assets/javascripts/ace/snippets/vbscript.js +8 -6
  294. data/vendor/assets/javascripts/ace/snippets/velocity.js +8 -1
  295. data/vendor/assets/javascripts/ace/snippets/verilog.js +8 -6
  296. data/vendor/assets/javascripts/ace/snippets/vhdl.js +8 -6
  297. data/vendor/assets/javascripts/ace/snippets/visualforce.js +9 -0
  298. data/vendor/assets/javascripts/ace/snippets/wollok.js +8 -1
  299. data/vendor/assets/javascripts/ace/snippets/xml.js +8 -6
  300. data/vendor/assets/javascripts/ace/snippets/xquery.js +8 -1
  301. data/vendor/assets/javascripts/ace/snippets/yaml.js +8 -6
  302. data/vendor/assets/javascripts/ace/snippets/zeek.js +9 -0
  303. data/vendor/assets/javascripts/ace/theme-ambiance.js +3 -2
  304. data/vendor/assets/javascripts/ace/theme-chaos.js +1 -1
  305. data/vendor/assets/javascripts/ace/theme-nord_dark.js +102 -0
  306. data/vendor/assets/javascripts/ace/worker-base.js +1421 -0
  307. data/vendor/assets/javascripts/ace/worker-coffee.js +17 -703
  308. data/vendor/assets/javascripts/ace/worker-css.js +24 -704
  309. data/vendor/assets/javascripts/ace/worker-html.js +17 -703
  310. data/vendor/assets/javascripts/ace/worker-javascript.js +7833 -5352
  311. data/vendor/assets/javascripts/ace/worker-json.js +17 -703
  312. data/vendor/assets/javascripts/ace/worker-lua.js +17 -703
  313. data/vendor/assets/javascripts/ace/worker-php.js +859 -1477
  314. data/vendor/assets/javascripts/ace/worker-xml.js +26 -707
  315. data/vendor/assets/javascripts/ace/worker-xquery.js +17 -703
  316. metadata +50 -18
  317. data/vendor/assets/javascripts/ace/ext-chromevox.js +0 -540
  318. data/vendor/assets/javascripts/ace/ext-old_ie.js +0 -502
  319. data/vendor/assets/javascripts/ace/mode-bash.js +0 -247
  320. data/vendor/assets/javascripts/ace/mode-bro.js +0 -334
  321. data/vendor/assets/javascripts/ace/mode-lean.js +0 -281
  322. data/vendor/assets/javascripts/ace/mode-live_script.js +0 -481
  323. data/vendor/assets/javascripts/ace/mode-mips_assembler.js +0 -235
  324. data/vendor/assets/javascripts/ace/mode-mipsassembler.js +0 -196
  325. data/vendor/assets/javascripts/ace/mode-swig.js +0 -1099
  326. data/vendor/assets/javascripts/ace/snippets/bro.js +0 -7
  327. data/vendor/assets/javascripts/ace/snippets/lean.js +0 -7
  328. data/vendor/assets/javascripts/ace/snippets/live_script.js +0 -7
  329. data/vendor/assets/javascripts/ace/snippets/mips_assembler.js +0 -7
  330. data/vendor/assets/javascripts/ace/snippets/mipsassembler.js +0 -7
  331. data/vendor/assets/javascripts/ace/snippets/swig.js +0 -7
@@ -78,6 +78,7 @@ define("ace/keyboard/vim",["require","exports","module","ace/range","ace/lib/eve
78
78
  };
79
79
  };
80
80
  CodeMirror.lookupKey = function lookupKey(key, map, handle) {
81
+ if (!map) map = "default";
81
82
  if (typeof map == "string")
82
83
  map = CodeMirror.keyMap[map];
83
84
  var found = typeof map == "function" ? map(key) : map[key];
@@ -434,6 +435,7 @@ define("ace/keyboard/vim",["require","exports","module","ace/range","ace/lib/eve
434
435
  if (!e) e = s;
435
436
  return this.ace.session.replace(new Range(s.line, s.ch, e.line, e.ch), text);
436
437
  };
438
+ this.replaceSelection =
437
439
  this.replaceSelections = function(p) {
438
440
  var sel = this.ace.selection;
439
441
  if (this.ace.inVirtualSelectionMode) {
@@ -475,6 +477,10 @@ define("ace/keyboard/vim",["require","exports","module","ace/range","ace/lib/eve
475
477
  name = optMap[name];
476
478
  val = !val;
477
479
  break;
480
+ case 'keyMap':
481
+ this.state.$keyMap = val;
482
+ return;
483
+ break;
478
484
  default:
479
485
  name = optMap[name];
480
486
  }
@@ -489,6 +495,8 @@ define("ace/keyboard/vim",["require","exports","module","ace/range","ace/lib/eve
489
495
  case 'indentWithTabs':
490
496
  name = optMap[name];
491
497
  return !val;
498
+ case 'keyMap':
499
+ return this.state.$keyMap;
492
500
  }
493
501
  return aceOpt ? val : this.state[name];
494
502
  };
@@ -542,7 +550,7 @@ define("ace/keyboard/vim",["require","exports","module","ace/range","ace/lib/eve
542
550
  return this.ace.getValue();
543
551
  };
544
552
  this.setValue = function(v) {
545
- return this.ace.setValue(v);
553
+ return this.ace.setValue(v, -1);
546
554
  };
547
555
  this.getTokenTypeAt = function(pos) {
548
556
  var token = this.ace.session.getTokenAt(pos.line, pos.ch);
@@ -588,7 +596,11 @@ define("ace/keyboard/vim",["require","exports","module","ace/range","ace/lib/eve
588
596
  };
589
597
  this.getMode = function() {
590
598
  return { name : this.getOption("mode") };
591
- }
599
+ };
600
+ this.execCommand = function(name) {
601
+ if (name == "indentAuto") this.ace.execCommand("autoindent");
602
+ else console.log(name + " is not implemented");
603
+ };
592
604
  }).call(CodeMirror.prototype);
593
605
  function toAcePos(cmPos) {
594
606
  return {row: cmPos.line, column: cmPos.ch};
@@ -825,6 +837,7 @@ dom.importCssString(".normal-mode .ace_cursor{\
825
837
  { keys: '<Down>', type: 'keyToKey', toKeys: 'j' },
826
838
  { keys: '<Space>', type: 'keyToKey', toKeys: 'l' },
827
839
  { keys: '<BS>', type: 'keyToKey', toKeys: 'h', context: 'normal'},
840
+ { keys: '<Del>', type: 'keyToKey', toKeys: 'x', context: 'normal'},
828
841
  { keys: '<C-Space>', type: 'keyToKey', toKeys: 'W' },
829
842
  { keys: '<C-BS>', type: 'keyToKey', toKeys: 'B', context: 'normal' },
830
843
  { keys: '<S-Space>', type: 'keyToKey', toKeys: 'w' },
@@ -835,6 +848,8 @@ dom.importCssString(".normal-mode .ace_cursor{\
835
848
  { keys: '<C-c>', type: 'keyToKey', toKeys: '<Esc>' },
836
849
  { keys: '<C-[>', type: 'keyToKey', toKeys: '<Esc>', context: 'insert' },
837
850
  { keys: '<C-c>', type: 'keyToKey', toKeys: '<Esc>', context: 'insert' },
851
+ { keys: '<C-Esc>', type: 'keyToKey', toKeys: '<Esc>' }, // ace_patch ipad keyboard sends C-Esc instead of C-[
852
+ { keys: '<C-Esc>', type: 'keyToKey', toKeys: '<Esc>', context: 'insert' },
838
853
  { keys: 's', type: 'keyToKey', toKeys: 'cl', context: 'normal' },
839
854
  { keys: 's', type: 'keyToKey', toKeys: 'c', context: 'visual'},
840
855
  { keys: 'S', type: 'keyToKey', toKeys: 'cc', context: 'normal' },
@@ -864,6 +879,8 @@ dom.importCssString(".normal-mode .ace_cursor{\
864
879
  { keys: 'gE', type: 'motion', motion: 'moveByWords', motionArgs: { forward: false, wordEnd: true, bigWord: true, inclusive: true }},
865
880
  { keys: '{', type: 'motion', motion: 'moveByParagraph', motionArgs: { forward: false, toJumplist: true }},
866
881
  { keys: '}', type: 'motion', motion: 'moveByParagraph', motionArgs: { forward: true, toJumplist: true }},
882
+ { keys: '(', type: 'motion', motion: 'moveBySentence', motionArgs: { forward: false }},
883
+ { keys: ')', type: 'motion', motion: 'moveBySentence', motionArgs: { forward: true }},
867
884
  { keys: '<C-f>', type: 'motion', motion: 'moveByPage', motionArgs: { forward: true }},
868
885
  { keys: '<C-b>', type: 'motion', motion: 'moveByPage', motionArgs: { forward: false }},
869
886
  { keys: '<C-d>', type: 'motion', motion: 'moveByScroll', motionArgs: { forward: true, explicitRepeat: true }},
@@ -899,6 +916,7 @@ dom.importCssString(".normal-mode .ace_cursor{\
899
916
  { keys: 'd', type: 'operator', operator: 'delete' },
900
917
  { keys: 'y', type: 'operator', operator: 'yank' },
901
918
  { keys: 'c', type: 'operator', operator: 'change' },
919
+ { keys: '=', type: 'operator', operator: 'indentAuto' },
902
920
  { keys: '>', type: 'operator', operator: 'indent', operatorArgs: { indentRight: true }},
903
921
  { keys: '<', type: 'operator', operator: 'indent', operatorArgs: { indentRight: false }},
904
922
  { keys: 'g~', type: 'operator', operator: 'changeCase' },
@@ -910,13 +928,14 @@ dom.importCssString(".normal-mode .ace_cursor{\
910
928
  { keys: 'X', type: 'operatorMotion', operator: 'delete', motion: 'moveByCharacters', motionArgs: { forward: false }, operatorMotionArgs: { visualLine: true }},
911
929
  { keys: 'D', type: 'operatorMotion', operator: 'delete', motion: 'moveToEol', motionArgs: { inclusive: true }, context: 'normal'},
912
930
  { keys: 'D', type: 'operator', operator: 'delete', operatorArgs: { linewise: true }, context: 'visual'},
913
- { keys: 'Y', type: 'operatorMotion', operator: 'yank', motion: 'moveToEol', motionArgs: { inclusive: true }, context: 'normal'},
931
+ { keys: 'Y', type: 'operatorMotion', operator: 'yank', motion: 'expandToLine', motionArgs: { linewise: true }, context: 'normal'},
914
932
  { keys: 'Y', type: 'operator', operator: 'yank', operatorArgs: { linewise: true }, context: 'visual'},
915
933
  { keys: 'C', type: 'operatorMotion', operator: 'change', motion: 'moveToEol', motionArgs: { inclusive: true }, context: 'normal'},
916
934
  { keys: 'C', type: 'operator', operator: 'change', operatorArgs: { linewise: true }, context: 'visual'},
917
935
  { keys: '~', type: 'operatorMotion', operator: 'changeCase', motion: 'moveByCharacters', motionArgs: { forward: true }, operatorArgs: { shouldMoveCursor: true }, context: 'normal'},
918
936
  { keys: '~', type: 'operator', operator: 'changeCase', context: 'visual'},
919
937
  { keys: '<C-w>', type: 'operatorMotion', operator: 'delete', motion: 'moveByWords', motionArgs: { forward: false, wordEnd: false }, context: 'insert' },
938
+ { keys: '<C-w>', type: 'idle', context: 'normal' },
920
939
  { keys: '<C-i>', type: 'action', action: 'jumpListWalk', actionArgs: { forward: true }},
921
940
  { keys: '<C-o>', type: 'action', action: 'jumpListWalk', actionArgs: { forward: false }},
922
941
  { keys: '<C-e>', type: 'action', action: 'scroll', actionArgs: { forward: true, linewise: true }},
@@ -925,7 +944,9 @@ dom.importCssString(".normal-mode .ace_cursor{\
925
944
  { keys: 'A', type: 'action', action: 'enterInsertMode', isEdit: true, actionArgs: { insertAt: 'eol' }, context: 'normal' },
926
945
  { keys: 'A', type: 'action', action: 'enterInsertMode', isEdit: true, actionArgs: { insertAt: 'endOfSelectedArea' }, context: 'visual' },
927
946
  { keys: 'i', type: 'action', action: 'enterInsertMode', isEdit: true, actionArgs: { insertAt: 'inplace' }, context: 'normal' },
947
+ { keys: 'gi', type: 'action', action: 'enterInsertMode', isEdit: true, actionArgs: { insertAt: 'lastEdit' }, context: 'normal' },
928
948
  { keys: 'I', type: 'action', action: 'enterInsertMode', isEdit: true, actionArgs: { insertAt: 'firstNonBlank'}, context: 'normal' },
949
+ { keys: 'gI', type: 'action', action: 'enterInsertMode', isEdit: true, actionArgs: { insertAt: 'bol'}, context: 'normal' },
929
950
  { keys: 'I', type: 'action', action: 'enterInsertMode', isEdit: true, actionArgs: { insertAt: 'startOfSelectedArea' }, context: 'visual' },
930
951
  { keys: 'o', type: 'action', action: 'newLineAndEnterInsertMode', isEdit: true, interlaceInsertRepeat: true, actionArgs: { after: true }, context: 'normal' },
931
952
  { keys: 'O', type: 'action', action: 'newLineAndEnterInsertMode', isEdit: true, interlaceInsertRepeat: true, actionArgs: { after: false }, context: 'normal' },
@@ -935,12 +956,14 @@ dom.importCssString(".normal-mode .ace_cursor{\
935
956
  { keys: '<C-q>', type: 'action', action: 'toggleVisualMode', actionArgs: { blockwise: true }},
936
957
  { keys: 'gv', type: 'action', action: 'reselectLastSelection' },
937
958
  { keys: 'J', type: 'action', action: 'joinLines', isEdit: true },
959
+ { keys: 'gJ', type: 'action', action: 'joinLines', actionArgs: { keepSpaces: true }, isEdit: true },
938
960
  { keys: 'p', type: 'action', action: 'paste', isEdit: true, actionArgs: { after: true, isEdit: true }},
939
961
  { keys: 'P', type: 'action', action: 'paste', isEdit: true, actionArgs: { after: false, isEdit: true }},
940
962
  { keys: 'r<character>', type: 'action', action: 'replace', isEdit: true },
941
963
  { keys: '@<character>', type: 'action', action: 'replayMacro' },
942
964
  { keys: 'q<character>', type: 'action', action: 'enterMacroRecordMode' },
943
- { keys: 'R', type: 'action', action: 'enterInsertMode', isEdit: true, actionArgs: { replace: true }},
965
+ { keys: 'R', type: 'action', action: 'enterInsertMode', isEdit: true, actionArgs: { replace: true }, context: 'normal'},
966
+ { keys: 'R', type: 'operator', operator: 'change', operatorArgs: { linewise: true, fullLine: true }, context: 'visual', exitVisualBlock: true},
944
967
  { keys: 'u', type: 'action', action: 'undo', context: 'normal' },
945
968
  { keys: 'u', type: 'operator', operator: 'changeCase', operatorArgs: {toLower: true}, context: 'visual', isEdit: true },
946
969
  { keys: 'U', type: 'operator', operator: 'changeCase', operatorArgs: {toLower: false}, context: 'visual', isEdit: true },
@@ -968,6 +991,7 @@ dom.importCssString(".normal-mode .ace_cursor{\
968
991
  { keys: 'g#', type: 'search', searchArgs: { forward: false, querySrc: 'wordUnderCursor', toJumplist: true }},
969
992
  { keys: ':', type: 'ex' }
970
993
  ];
994
+ var defaultKeymapLength = defaultKeymap.length;
971
995
  var defaultExCommandMap = [
972
996
  { name: 'colorscheme', shortName: 'colo' },
973
997
  { name: 'map' },
@@ -1009,7 +1033,6 @@ dom.importCssString(".normal-mode .ace_cursor{\
1009
1033
  CodeMirror.off(cm.getInputField(), 'paste', getOnPasteFn(cm));
1010
1034
  cm.state.vim = null;
1011
1035
  }
1012
-
1013
1036
  function detachVimMap(cm, next) {
1014
1037
  if (this == CodeMirror.keyMap.vim)
1015
1038
  CodeMirror.rmClass(cm.getWrapperElement(), "cm-fat-cursor");
@@ -1124,6 +1147,9 @@ dom.importCssString(".normal-mode .ace_cursor{\
1124
1147
  function isWhiteSpaceString(k) {
1125
1148
  return (/^\s*$/).test(k);
1126
1149
  }
1150
+ function isEndOfSentenceSymbol(k) {
1151
+ return '.?!'.indexOf(k) != -1;
1152
+ }
1127
1153
  function inArray(val, arr) {
1128
1154
  for (var i = 0; i < arr.length; i++) {
1129
1155
  if (arr[i] == val) {
@@ -1276,9 +1302,16 @@ dom.importCssString(".normal-mode .ace_cursor{\
1276
1302
  }
1277
1303
  return mark;
1278
1304
  }
1305
+ function find(cm, offset) {
1306
+ var oldPointer = pointer;
1307
+ var mark = move(cm, offset);
1308
+ pointer = oldPointer;
1309
+ return mark && mark.find();
1310
+ }
1279
1311
  return {
1280
1312
  cachedCursor: undefined, //used for # and * jumps
1281
1313
  add: add,
1314
+ find: find,
1282
1315
  move: move
1283
1316
  };
1284
1317
  };
@@ -1392,6 +1425,62 @@ dom.importCssString(".normal-mode .ace_cursor{\
1392
1425
  unmap: function(lhs, ctx) {
1393
1426
  exCommandDispatcher.unmap(lhs, ctx);
1394
1427
  },
1428
+ noremap: function(lhs, rhs, ctx) {
1429
+ function toCtxArray(ctx) {
1430
+ return ctx ? [ctx] : ['normal', 'insert', 'visual'];
1431
+ }
1432
+ var ctxsToMap = toCtxArray(ctx);
1433
+ var actualLength = defaultKeymap.length, origLength = defaultKeymapLength;
1434
+ for (var i = actualLength - origLength;
1435
+ i < actualLength && ctxsToMap.length;
1436
+ i++) {
1437
+ var mapping = defaultKeymap[i];
1438
+ if (mapping.keys == rhs &&
1439
+ (!ctx || !mapping.context || mapping.context === ctx) &&
1440
+ mapping.type.substr(0, 2) !== 'ex' &&
1441
+ mapping.type.substr(0, 3) !== 'key') {
1442
+ var newMapping = {};
1443
+ for (var key in mapping) {
1444
+ newMapping[key] = mapping[key];
1445
+ }
1446
+ newMapping.keys = lhs;
1447
+ if (ctx && !newMapping.context) {
1448
+ newMapping.context = ctx;
1449
+ }
1450
+ this._mapCommand(newMapping);
1451
+ var mappedCtxs = toCtxArray(mapping.context);
1452
+ ctxsToMap = ctxsToMap.filter(function(el) { return mappedCtxs.indexOf(el) === -1; });
1453
+ }
1454
+ }
1455
+ },
1456
+ mapclear: function(ctx) {
1457
+ var actualLength = defaultKeymap.length,
1458
+ origLength = defaultKeymapLength;
1459
+ var userKeymap = defaultKeymap.slice(0, actualLength - origLength);
1460
+ defaultKeymap = defaultKeymap.slice(actualLength - origLength);
1461
+ if (ctx) {
1462
+ for (var i = userKeymap.length - 1; i >= 0; i--) {
1463
+ var mapping = userKeymap[i];
1464
+ if (ctx !== mapping.context) {
1465
+ if (mapping.context) {
1466
+ this._mapCommand(mapping);
1467
+ } else {
1468
+ var contexts = ['normal', 'insert', 'visual'];
1469
+ for (var j in contexts) {
1470
+ if (contexts[j] !== ctx) {
1471
+ var newMapping = {};
1472
+ for (var key in mapping) {
1473
+ newMapping[key] = mapping[key];
1474
+ }
1475
+ newMapping.context = contexts[j];
1476
+ this._mapCommand(newMapping);
1477
+ }
1478
+ }
1479
+ }
1480
+ }
1481
+ }
1482
+ }
1483
+ },
1395
1484
  setOption: setOption,
1396
1485
  getOption: getOption,
1397
1486
  defineOption: defineOption,
@@ -1504,7 +1593,7 @@ dom.importCssString(".normal-mode .ace_cursor{\
1504
1593
  if (vim.insertMode) { command = handleKeyInsertMode(); }
1505
1594
  else { command = handleKeyNonInsertMode(); }
1506
1595
  if (command === false) {
1507
- return undefined;
1596
+ return undefined; //ace_patch
1508
1597
  } else if (command === true) {
1509
1598
  return function() { return true; };
1510
1599
  } else {
@@ -1742,7 +1831,7 @@ dom.importCssString(".normal-mode .ace_cursor{\
1742
1831
  }
1743
1832
  if (bestMatch.keys.slice(-11) == '<character>') {
1744
1833
  var character = lastChar(keys);
1745
- if (/<C-.>/.test(character)) return {type: 'none'};
1834
+ if (/<C-.>/.test(character) || !character) return {type: 'none'}; //ace_patch
1746
1835
  inputState.selectedCharacter = character;
1747
1836
  }
1748
1837
  return {type: 'full', command: bestMatch};
@@ -1792,6 +1881,10 @@ dom.importCssString(".normal-mode .ace_cursor{\
1792
1881
  }
1793
1882
  inputState.operator = command.operator;
1794
1883
  inputState.operatorArgs = copyArgs(command.operatorArgs);
1884
+ if (command.exitVisualBlock) {
1885
+ vim.visualBlock = false;
1886
+ updateCmSelection(cm);
1887
+ }
1795
1888
  if (vim.visualMode) {
1796
1889
  this.evalInput(cm, vim);
1797
1890
  }
@@ -1863,6 +1956,7 @@ dom.importCssString(".normal-mode .ace_cursor{\
1863
1956
  });
1864
1957
  }
1865
1958
  function onPromptClose(query) {
1959
+ cm.scrollTo(originalScrollPos.left, originalScrollPos.top);
1866
1960
  handleQuery(query, true /** ignoreCase */, true /** smartCase */);
1867
1961
  var macroModeState = vimGlobalState.macroModeState;
1868
1962
  if (macroModeState.isRecording) {
@@ -2183,6 +2277,7 @@ dom.importCssString(".normal-mode .ace_cursor{\
2183
2277
  vim.lastEditActionCommand = actionCommand;
2184
2278
  macroModeState.lastInsertModeChanges.changes = [];
2185
2279
  macroModeState.lastInsertModeChanges.expectCursorActivityForChange = false;
2280
+ macroModeState.lastInsertModeChanges.visualBlock = vim.visualBlock ? vim.sel.head.line - vim.sel.anchor.line : 0;
2186
2281
  }
2187
2282
  };
2188
2283
  var motions = {
@@ -2294,7 +2389,7 @@ dom.importCssString(".normal-mode .ace_cursor{\
2294
2389
  if (line < first && cur.line == first){
2295
2390
  return this.moveToStartOfLine(cm, head, motionArgs, vim);
2296
2391
  }else if (line > last && cur.line == last){
2297
- return this.moveToEol(cm, head, motionArgs, vim);
2392
+ return this.moveToEol(cm, head, motionArgs, vim, true);
2298
2393
  }
2299
2394
  var fold = cm.ace.session.getFoldLine(line);
2300
2395
  if (fold) {
@@ -2349,6 +2444,10 @@ dom.importCssString(".normal-mode .ace_cursor{\
2349
2444
  var dir = motionArgs.forward ? 1 : -1;
2350
2445
  return findParagraph(cm, head, motionArgs.repeat, dir);
2351
2446
  },
2447
+ moveBySentence: function(cm, head, motionArgs) {
2448
+ var dir = motionArgs.forward ? 1 : -1;
2449
+ return findSentence(cm, head, motionArgs.repeat, dir);
2450
+ },
2352
2451
  moveByScroll: function(cm, head, motionArgs, vim) {
2353
2452
  var scrollbox = cm.getScrollInfo();
2354
2453
  var curEnd = null;
@@ -2397,13 +2496,15 @@ dom.importCssString(".normal-mode .ace_cursor{\
2397
2496
  vim.lastHSPos = cm.charCoords(head,'div').left;
2398
2497
  return moveToColumn(cm, repeat);
2399
2498
  },
2400
- moveToEol: function(cm, head, motionArgs, vim) {
2499
+ moveToEol: function(cm, head, motionArgs, vim, keepHPos) {
2401
2500
  var cur = head;
2402
- vim.lastHPos = Infinity;
2403
2501
  var retval= Pos(cur.line + motionArgs.repeat - 1, Infinity);
2404
2502
  var end=cm.clipPos(retval);
2405
2503
  end.ch--;
2406
- vim.lastHSPos = cm.charCoords(end,'div').left;
2504
+ if (!keepHPos) {
2505
+ vim.lastHPos = Infinity;
2506
+ vim.lastHSPos = cm.charCoords(end,'div').left;
2507
+ }
2407
2508
  return retval;
2408
2509
  },
2409
2510
  moveToFirstNonWhiteSpaceCharacter: function(cm, head) {
@@ -2417,17 +2518,18 @@ dom.importCssString(".normal-mode .ace_cursor{\
2417
2518
  var ch = cursor.ch;
2418
2519
  var lineText = cm.getLine(line);
2419
2520
  var symbol;
2420
- do {
2421
- symbol = lineText.charAt(ch++);
2521
+ for (; ch < lineText.length; ch++) {
2522
+ symbol = lineText.charAt(ch);
2422
2523
  if (symbol && isMatchableSymbol(symbol)) {
2423
- var style = cm.getTokenTypeAt(Pos(line, ch));
2524
+ var style = cm.getTokenTypeAt(Pos(line, ch + 1));
2424
2525
  if (style !== "string" && style !== "comment") {
2425
2526
  break;
2426
2527
  }
2427
2528
  }
2428
- } while (symbol);
2429
- if (symbol) {
2430
- var matched = cm.findMatchingBracket(Pos(line, ch));
2529
+ }
2530
+ if (ch < lineText.length) {
2531
+ var re = /[<>]/.test(lineText[ch]) ? /[(){}[\]<>]/ : /[(){}[\]]/; //ace_patch?
2532
+ var matched = cm.findMatchingBracket(Pos(line, ch+1), {bracketRegex: re});
2431
2533
  return matched.to;
2432
2534
  } else {
2433
2535
  return cursor;
@@ -2523,10 +2625,9 @@ dom.importCssString(".normal-mode .ace_cursor{\
2523
2625
  change: function(cm, args, ranges) {
2524
2626
  var finalHead, text;
2525
2627
  var vim = cm.state.vim;
2526
- vimGlobalState.macroModeState.lastInsertModeChanges.inVisualBlock = vim.visualBlock;
2628
+ var anchor = ranges[0].anchor,
2629
+ head = ranges[0].head;
2527
2630
  if (!vim.visualMode) {
2528
- var anchor = ranges[0].anchor,
2529
- head = ranges[0].head;
2530
2631
  text = cm.getRange(anchor, head);
2531
2632
  var lastState = vim.lastEditInputState || {};
2532
2633
  if (lastState.motion == "moveByWords" && !isWhiteSpaceString(text)) {
@@ -2551,6 +2652,13 @@ dom.importCssString(".normal-mode .ace_cursor{\
2551
2652
  anchor.ch = Number.MAX_VALUE;
2552
2653
  }
2553
2654
  finalHead = anchor;
2655
+ } else if (args.fullLine) {
2656
+ head.ch = Number.MAX_VALUE;
2657
+ head.line--;
2658
+ cm.setSelection(anchor, head)
2659
+ text = cm.getSelection();
2660
+ cm.replaceSelection("");
2661
+ finalHead = anchor;
2554
2662
  } else {
2555
2663
  text = cm.getSelection();
2556
2664
  var replacement = fillArray('', ranges.length);
@@ -2613,6 +2721,10 @@ dom.importCssString(".normal-mode .ace_cursor{\
2613
2721
  }
2614
2722
  return motions.moveToFirstNonWhiteSpaceCharacter(cm, ranges[0].anchor);
2615
2723
  },
2724
+ indentAuto: function(cm, _args, ranges) {
2725
+ cm.execCommand("indentAuto");
2726
+ return motions.moveToFirstNonWhiteSpaceCharacter(cm, ranges[0].anchor);
2727
+ },
2616
2728
  changeCase: function(cm, args, ranges, oldAnchor, newHead) {
2617
2729
  var selections = cm.getSelections();
2618
2730
  var swapped = [];
@@ -2720,9 +2832,7 @@ dom.importCssString(".normal-mode .ace_cursor{\
2720
2832
  switch (actionArgs.position) {
2721
2833
  case 'center': y = y - (height / 2) + lineHeight;
2722
2834
  break;
2723
- case 'bottom': y = y - height + lineHeight*1.4;
2724
- break;
2725
- case 'top': y = y + lineHeight*0.4;
2835
+ case 'bottom': y = y - height + lineHeight;
2726
2836
  break;
2727
2837
  }
2728
2838
  cm.scrollTo(null, y);
@@ -2733,6 +2843,8 @@ dom.importCssString(".normal-mode .ace_cursor{\
2733
2843
  var macroModeState = vimGlobalState.macroModeState;
2734
2844
  if (registerName == '@') {
2735
2845
  registerName = macroModeState.latestRegister;
2846
+ } else {
2847
+ macroModeState.latestRegister = registerName;
2736
2848
  }
2737
2849
  while(repeat--){
2738
2850
  executeMacroRegister(cm, vim, macroModeState, registerName);
@@ -2766,11 +2878,15 @@ dom.importCssString(".normal-mode .ace_cursor{\
2766
2878
  var height = cm.listSelections().length;
2767
2879
  if (insertAt == 'eol') {
2768
2880
  head = Pos(head.line, lineLength(cm, head.line));
2881
+ } else if (insertAt == 'bol') {
2882
+ head = Pos(head.line, 0);
2769
2883
  } else if (insertAt == 'charAfter') {
2770
2884
  head = offsetCursor(head, 0, 1);
2771
2885
  } else if (insertAt == 'firstNonBlank') {
2772
2886
  head = motions.moveToFirstNonWhiteSpaceCharacter(cm, head);
2773
2887
  } else if (insertAt == 'startOfSelectedArea') {
2888
+ if (!vim.visualMode)
2889
+ return;
2774
2890
  if (!vim.visualBlock) {
2775
2891
  if (sel.head.line < sel.anchor.line) {
2776
2892
  head = sel.head;
@@ -2784,6 +2900,8 @@ dom.importCssString(".normal-mode .ace_cursor{\
2784
2900
  height = Math.abs(sel.head.line - sel.anchor.line) + 1;
2785
2901
  }
2786
2902
  } else if (insertAt == 'endOfSelectedArea') {
2903
+ if (!vim.visualMode)
2904
+ return;
2787
2905
  if (!vim.visualBlock) {
2788
2906
  if (sel.head.line >= sel.anchor.line) {
2789
2907
  head = offsetCursor(sel.head, 0, 1);
@@ -2800,6 +2918,8 @@ dom.importCssString(".normal-mode .ace_cursor{\
2800
2918
  if (vim.visualMode){
2801
2919
  return;
2802
2920
  }
2921
+ } else if (insertAt == 'lastEdit') {
2922
+ head = getLastEditPos(cm) || head;
2803
2923
  }
2804
2924
  cm.setOption('disableInput', false);
2805
2925
  if (actionArgs && actionArgs.replace) {
@@ -2899,7 +3019,9 @@ dom.importCssString(".normal-mode .ace_cursor{\
2899
3019
  var tmp = Pos(curStart.line + 1,
2900
3020
  lineLength(cm, curStart.line + 1));
2901
3021
  var text = cm.getRange(curStart, tmp);
2902
- text = text.replace(/\n\s*/g, ' ');
3022
+ text = actionArgs.keepSpaces
3023
+ ? text.replace(/\n\r?/g, '')
3024
+ : text.replace(/\n\s*/g, ' ');
2903
3025
  cm.replaceRange(text, curStart, tmp);
2904
3026
  }
2905
3027
  var curFinalPos = Pos(curStart.line, finalCh);
@@ -2965,7 +3087,17 @@ dom.importCssString(".normal-mode .ace_cursor{\
2965
3087
  }
2966
3088
  var linewise = register.linewise;
2967
3089
  var blockwise = register.blockwise;
2968
- if (linewise && !blockwise) {
3090
+ if (blockwise) {
3091
+ text = text.split('\n');
3092
+ if (linewise) {
3093
+ text.pop();
3094
+ }
3095
+ for (var i = 0; i < text.length; i++) {
3096
+ text[i] = (text[i] == '') ? ' ' : text[i];
3097
+ }
3098
+ cur.ch += actionArgs.after ? 1 : 0;
3099
+ cur.ch = Math.min(lineLength(cm, cur.line), cur.ch);
3100
+ } else if (linewise) {
2969
3101
  if(vim.visualMode) {
2970
3102
  text = vim.visualLine ? text.slice(0, -1) : '\n' + text.slice(0, text.length - 1) + '\n';
2971
3103
  } else if (actionArgs.after) {
@@ -2975,12 +3107,6 @@ dom.importCssString(".normal-mode .ace_cursor{\
2975
3107
  cur.ch = 0;
2976
3108
  }
2977
3109
  } else {
2978
- if (blockwise) {
2979
- text = text.split('\n');
2980
- for (var i = 0; i < text.length; i++) {
2981
- text[i] = (text[i] == '') ? ' ' : text[i];
2982
- }
2983
- }
2984
3110
  cur.ch += actionArgs.after ? 1 : 0;
2985
3111
  }
2986
3112
  var curPosFinal;
@@ -3196,12 +3322,6 @@ dom.importCssString(".normal-mode .ace_cursor{\
3196
3322
  }
3197
3323
  return Pos(cur.line + offsetLine, cur.ch + offsetCh);
3198
3324
  }
3199
- function getOffset(anchor, head) {
3200
- return {
3201
- line: head.line - anchor.line,
3202
- ch: head.line - anchor.line
3203
- };
3204
- }
3205
3325
  function commandMatches(keys, keyMap, context, inputState) {
3206
3326
  var match, partial = [], full = [];
3207
3327
  for (var i = 0; i < keyMap.length; i++) {
@@ -3914,6 +4034,142 @@ dom.importCssString(".normal-mode .ace_cursor{\
3914
4034
  start = new Pos(i, 0);
3915
4035
  return { start: start, end: end };
3916
4036
  }
4037
+
4038
+ function findSentence(cm, cur, repeat, dir) {
4039
+ function nextChar(cm, idx) {
4040
+ if (idx.pos + idx.dir < 0 || idx.pos + idx.dir >= idx.line.length) {
4041
+ idx.ln += idx.dir;
4042
+ if (!isLine(cm, idx.ln)) {
4043
+ idx.line = null;
4044
+ idx.ln = null;
4045
+ idx.pos = null;
4046
+ return;
4047
+ }
4048
+ idx.line = cm.getLine(idx.ln);
4049
+ idx.pos = (idx.dir > 0) ? 0 : idx.line.length - 1;
4050
+ }
4051
+ else {
4052
+ idx.pos += idx.dir;
4053
+ }
4054
+ }
4055
+ function forward(cm, ln, pos, dir) {
4056
+ var line = cm.getLine(ln);
4057
+ var stop = (line === "");
4058
+
4059
+ var curr = {
4060
+ line: line,
4061
+ ln: ln,
4062
+ pos: pos,
4063
+ dir: dir,
4064
+ }
4065
+
4066
+ var last_valid = {
4067
+ ln: curr.ln,
4068
+ pos: curr.pos,
4069
+ }
4070
+
4071
+ var skip_empty_lines = (curr.line === "");
4072
+ nextChar(cm, curr);
4073
+
4074
+ while (curr.line !== null) {
4075
+ last_valid.ln = curr.ln;
4076
+ last_valid.pos = curr.pos;
4077
+
4078
+ if (curr.line === "" && !skip_empty_lines) {
4079
+ return { ln: curr.ln, pos: curr.pos, };
4080
+ }
4081
+ else if (stop && curr.line !== "" && !isWhiteSpaceString(curr.line[curr.pos])) {
4082
+ return { ln: curr.ln, pos: curr.pos, };
4083
+ }
4084
+ else if (isEndOfSentenceSymbol(curr.line[curr.pos])
4085
+ && !stop
4086
+ && (curr.pos === curr.line.length - 1
4087
+ || isWhiteSpaceString(curr.line[curr.pos + 1]))) {
4088
+ stop = true;
4089
+ }
4090
+
4091
+ nextChar(cm, curr);
4092
+ }
4093
+ var line = cm.getLine(last_valid.ln);
4094
+ last_valid.pos = 0;
4095
+ for(var i = line.length - 1; i >= 0; --i) {
4096
+ if (!isWhiteSpaceString(line[i])) {
4097
+ last_valid.pos = i;
4098
+ break;
4099
+ }
4100
+ }
4101
+
4102
+ return last_valid;
4103
+
4104
+ }
4105
+ function reverse(cm, ln, pos, dir) {
4106
+ var line = cm.getLine(ln);
4107
+
4108
+ var curr = {
4109
+ line: line,
4110
+ ln: ln,
4111
+ pos: pos,
4112
+ dir: dir,
4113
+ }
4114
+
4115
+ var last_valid = {
4116
+ ln: curr.ln,
4117
+ pos: null,
4118
+ };
4119
+
4120
+ var skip_empty_lines = (curr.line === "");
4121
+ nextChar(cm, curr);
4122
+
4123
+ while (curr.line !== null) {
4124
+
4125
+ if (curr.line === "" && !skip_empty_lines) {
4126
+ if (last_valid.pos !== null) {
4127
+ return last_valid;
4128
+ }
4129
+ else {
4130
+ return { ln: curr.ln, pos: curr.pos };
4131
+ }
4132
+ }
4133
+ else if (isEndOfSentenceSymbol(curr.line[curr.pos])
4134
+ && last_valid.pos !== null
4135
+ && !(curr.ln === last_valid.ln && curr.pos + 1 === last_valid.pos)) {
4136
+ return last_valid;
4137
+ }
4138
+ else if (curr.line !== "" && !isWhiteSpaceString(curr.line[curr.pos])) {
4139
+ skip_empty_lines = false;
4140
+ last_valid = { ln: curr.ln, pos: curr.pos }
4141
+ }
4142
+
4143
+ nextChar(cm, curr);
4144
+ }
4145
+ var line = cm.getLine(last_valid.ln);
4146
+ last_valid.pos = 0;
4147
+ for(var i = 0; i < line.length; ++i) {
4148
+ if (!isWhiteSpaceString(line[i])) {
4149
+ last_valid.pos = i;
4150
+ break;
4151
+ }
4152
+ }
4153
+ return last_valid;
4154
+ }
4155
+
4156
+ var curr_index = {
4157
+ ln: cur.line,
4158
+ pos: cur.ch,
4159
+ };
4160
+
4161
+ while (repeat > 0) {
4162
+ if (dir < 0) {
4163
+ curr_index = reverse(cm, curr_index.ln, curr_index.pos, dir);
4164
+ }
4165
+ else {
4166
+ curr_index = forward(cm, curr_index.ln, curr_index.pos, dir);
4167
+ }
4168
+ repeat--;
4169
+ }
4170
+
4171
+ return Pos(curr_index.ln, curr_index.pos);
4172
+ }
3917
4173
  function selectCompanionObject(cm, head, symb, inclusive) {
3918
4174
  var cur = head, start, end;
3919
4175
 
@@ -3930,8 +4186,8 @@ dom.importCssString(".normal-mode .ace_cursor{\
3930
4186
  var curChar = cm.getLine(cur.line).charAt(cur.ch);
3931
4187
  var offset = curChar === openSym ? 1 : 0;
3932
4188
 
3933
- start = cm.scanForBracket(Pos(cur.line, cur.ch + offset), -1, null, {'bracketRegex': bracketRegexp});
3934
- end = cm.scanForBracket(Pos(cur.line, cur.ch + offset), 1, null, {'bracketRegex': bracketRegexp});
4189
+ start = cm.scanForBracket(Pos(cur.line, cur.ch + offset), -1, undefined, {'bracketRegex': bracketRegexp});
4190
+ end = cm.scanForBracket(Pos(cur.line, cur.ch + offset), 1, undefined, {'bracketRegex': bracketRegexp});
3935
4191
 
3936
4192
  if (!start || !end) {
3937
4193
  return { start: cur, end: cur };
@@ -4043,11 +4299,10 @@ dom.importCssString(".normal-mode .ace_cursor{\
4043
4299
  onClose(prompt(shortText, ''));
4044
4300
  }
4045
4301
  }
4046
-
4047
4302
  function splitBySlash(argString) {
4048
4303
  return splitBySeparator(argString, '/');
4049
4304
  }
4050
-
4305
+
4051
4306
  function findUnescapedSlashes(argString) {
4052
4307
  return findUnescapedSeparators(argString, '/');
4053
4308
  }
@@ -4348,11 +4603,22 @@ dom.importCssString(".normal-mode .ace_cursor{\
4348
4603
  }
4349
4604
 
4350
4605
  function getMarkPos(cm, vim, markName) {
4606
+ if (markName == '\'' || markName == '`') {
4607
+ return vimGlobalState.jumpList.find(cm, -1) || Pos(0, 0);
4608
+ } else if (markName == '.') {
4609
+ return getLastEditPos(cm);
4610
+ }
4351
4611
 
4352
4612
  var mark = vim.marks[markName];
4353
4613
  return mark && mark.find();
4354
4614
  }
4355
4615
 
4616
+ function getLastEditPos(cm) {
4617
+ var undoManager = cm.ace.session.$undoManager;
4618
+ if (undoManager && undoManager.$lastDelta)
4619
+ return toCmPos(undoManager.$lastDelta.end);
4620
+ }
4621
+
4356
4622
  var ExCommandDispatcher = function() {
4357
4623
  this.buildCommandMap_();
4358
4624
  };
@@ -4833,6 +5099,9 @@ dom.importCssString(".normal-mode .ace_cursor{\
4833
5099
  var global = false; // True to replace all instances on a line, false to replace only 1.
4834
5100
  if (tokens.length) {
4835
5101
  regexPart = tokens[0];
5102
+ if (getOption('pcre') && regexPart !== '') {
5103
+ regexPart = new RegExp(regexPart).source; //normalize not escaped characters
5104
+ }
4836
5105
  replacePart = tokens[1];
4837
5106
  if (regexPart && regexPart[regexPart.length - 1] === '$') {
4838
5107
  regexPart = regexPart.slice(0, regexPart.length - 1) + '\\n';
@@ -4840,7 +5109,7 @@ dom.importCssString(".normal-mode .ace_cursor{\
4840
5109
  }
4841
5110
  if (replacePart !== undefined) {
4842
5111
  if (getOption('pcre')) {
4843
- replacePart = unescapeRegexReplace(replacePart);
5112
+ replacePart = unescapeRegexReplace(replacePart.replace(/([^\\])&/g,"$1$$&"));
4844
5113
  } else {
4845
5114
  replacePart = translateRegexReplace(replacePart);
4846
5115
  }
@@ -4866,7 +5135,11 @@ dom.importCssString(".normal-mode .ace_cursor{\
4866
5135
  global = true;
4867
5136
  flagsPart.replace('g', '');
4868
5137
  }
4869
- regexPart = regexPart.replace(/\//g, "\\/") + '/' + flagsPart;
5138
+ if (getOption('pcre')) {
5139
+ regexPart = regexPart + '/' + flagsPart;
5140
+ } else {
5141
+ regexPart = regexPart.replace(/\//g, "\\/") + '/' + flagsPart;
5142
+ }
4870
5143
  }
4871
5144
  }
4872
5145
  if (regexPart) {
@@ -5102,13 +5375,6 @@ dom.importCssString(".normal-mode .ace_cursor{\
5102
5375
  defineOption('insertModeEscKeysTimeout', 200, 'number');
5103
5376
 
5104
5377
  CodeMirror.keyMap['vim-insert'] = {
5105
- 'Ctrl-N': 'autocomplete',
5106
- 'Ctrl-P': 'autocomplete',
5107
- 'Enter': function(cm) {
5108
- var fn = CodeMirror.commands.newlineAndIndentContinueComment ||
5109
- CodeMirror.commands.newlineAndIndent;
5110
- fn(cm);
5111
- },
5112
5378
  fallthrough: ['default'],
5113
5379
  attach: attachVimMap,
5114
5380
  detach: detachVimMap,
@@ -5200,10 +5466,12 @@ dom.importCssString(".normal-mode .ace_cursor{\
5200
5466
  lastChange.changes = [];
5201
5467
  lastChange.maybeReset = false;
5202
5468
  }
5203
- if (cm.state.overwrite && !/\n/.test(text)) {
5469
+ if (text) {
5470
+ if (cm.state.overwrite && !/\n/.test(text)) {
5204
5471
  lastChange.changes.push([text]);
5205
- } else {
5472
+ } else {
5206
5473
  lastChange.changes.push(text);
5474
+ }
5207
5475
  }
5208
5476
  }
5209
5477
  changeObj = changeObj.next;
@@ -5237,7 +5505,7 @@ dom.importCssString(".normal-mode .ace_cursor{\
5237
5505
  }
5238
5506
  vim.fakeCursor = cm.markText(from, to, {className: 'cm-animate-fat-cursor'});
5239
5507
  }
5240
- function handleExternalSelection(cm, vim) {
5508
+ function handleExternalSelection(cm, vim, keepHPos) {
5241
5509
  var anchor = cm.getCursor('anchor');
5242
5510
  var head = cm.getCursor('head');
5243
5511
  if (vim.visualMode && !cm.somethingSelected()) {
@@ -5258,7 +5526,7 @@ dom.importCssString(".normal-mode .ace_cursor{\
5258
5526
  };
5259
5527
  updateMark(cm, vim, '<', cursorMin(head, anchor));
5260
5528
  updateMark(cm, vim, '>', cursorMax(head, anchor));
5261
- } else if (!vim.insertMode) {
5529
+ } else if (!vim.insertMode && !keepHPos) {
5262
5530
  vim.lastHPos = cm.getCursor().ch;
5263
5531
  }
5264
5532
  }
@@ -5330,17 +5598,14 @@ dom.importCssString(".normal-mode .ace_cursor{\
5330
5598
  return true;
5331
5599
  }
5332
5600
  var head = cm.getCursor('head');
5333
- var inVisualBlock = vimGlobalState.macroModeState.lastInsertModeChanges.inVisualBlock;
5334
- if (inVisualBlock) {
5335
- var vim = cm.state.vim;
5336
- var lastSel = vim.lastSelection;
5337
- var offset = getOffset(lastSel.anchor, lastSel.head);
5338
- selectForInsert(cm, head, offset.line + 1);
5601
+ var visualBlock = vimGlobalState.macroModeState.lastInsertModeChanges.visualBlock;
5602
+ if (visualBlock) {
5603
+ selectForInsert(cm, head, visualBlock + 1);
5339
5604
  repeat = cm.listSelections().length;
5340
5605
  cm.setCursor(head);
5341
5606
  }
5342
5607
  for (var i = 0; i < repeat; i++) {
5343
- if (inVisualBlock) {
5608
+ if (visualBlock) {
5344
5609
  cm.setCursor(offsetCursor(head, i, 0));
5345
5610
  }
5346
5611
  for (var j = 0; j < changes.length; j++) {
@@ -5357,7 +5622,7 @@ dom.importCssString(".normal-mode .ace_cursor{\
5357
5622
  }
5358
5623
  }
5359
5624
  }
5360
- if (inVisualBlock) {
5625
+ if (visualBlock) {
5361
5626
  cm.setCursor(offsetCursor(head, 0, 1));
5362
5627
  }
5363
5628
  }
@@ -5413,15 +5678,17 @@ dom.importCssString(".normal-mode .ace_cursor{\
5413
5678
  var isHandled = false;
5414
5679
  var vim = Vim.maybeInitVimState_(cm);
5415
5680
  var visualBlock = vim.visualBlock || vim.wasInVisualBlock;
5416
- if (vim.wasInVisualBlock && !cm.ace.inMultiSelectMode) {
5681
+
5682
+ var wasMultiselect = cm.ace.inMultiSelectMode;
5683
+ if (vim.wasInVisualBlock && !wasMultiselect) {
5417
5684
  vim.wasInVisualBlock = false;
5418
- } else if (cm.ace.inMultiSelectMode && vim.visualBlock) {
5685
+ } else if (wasMultiselect && vim.visualBlock) {
5419
5686
  vim.wasInVisualBlock = true;
5420
5687
  }
5421
5688
 
5422
- if (key == '<Esc>' && !vim.insertMode && !vim.visualMode && cm.ace.inMultiSelectMode) {
5689
+ if (key == '<Esc>' && !vim.insertMode && !vim.visualMode && wasMultiselect) {
5423
5690
  cm.ace.exitMultiSelectMode();
5424
- } else if (visualBlock || !cm.ace.inMultiSelectMode || cm.ace.inVirtualSelectionMode) {
5691
+ } else if (visualBlock || !wasMultiselect || cm.ace.inVirtualSelectionMode) {
5425
5692
  isHandled = Vim.handleKey(cm, key, origin);
5426
5693
  } else {
5427
5694
  var old = cloneVimState(vim);
@@ -5448,8 +5715,9 @@ dom.importCssString(".normal-mode .ace_cursor{\
5448
5715
  cm.curOp.cursorActivity = false;
5449
5716
  }, true);
5450
5717
  }
5451
- if (isHandled && !vim.visualMode && !vim.insert)
5452
- handleExternalSelection(cm, vim);
5718
+ if (isHandled && !vim.visualMode && !vim.insert && vim.visualMode != cm.somethingSelected()) {
5719
+ handleExternalSelection(cm, vim, true);
5720
+ }
5453
5721
  return isHandled;
5454
5722
  }
5455
5723
  exports.CodeMirror = CodeMirror;
@@ -5653,8 +5921,6 @@ dom.importCssString(".normal-mode .ace_cursor{\
5653
5921
  exports.handler.defaultKeymap = defaultKeymap;
5654
5922
  exports.handler.actions = actions;
5655
5923
  exports.Vim = Vim;
5656
-
5657
- Vim.map("Y", "yy", "normal");
5658
5924
  }); (function() {
5659
5925
  window.require(["ace/keyboard/vim"], function(m) {
5660
5926
  if (typeof module == "object" && typeof exports == "object" && module) {