ace-rails-ap 4.2 → 4.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +2 -2
- data/ace-rails-ap.gemspec +0 -2
- data/lib/ace/rails/version.rb +1 -1
- data/update.sh +1 -1
- data/vendor/assets/javascripts/ace/ace.js +1297 -1274
- data/vendor/assets/javascripts/ace/ext-beautify.js +6 -2
- data/vendor/assets/javascripts/ace/ext-code_lens.js +238 -0
- data/vendor/assets/javascripts/ace/ext-emmet.js +340 -236
- data/vendor/assets/javascripts/ace/ext-keybinding_menu.js +37 -32
- data/vendor/assets/javascripts/ace/ext-language_tools.js +415 -263
- data/vendor/assets/javascripts/ace/ext-linking.js +1 -1
- data/vendor/assets/javascripts/ace/ext-modelist.js +15 -5
- data/vendor/assets/javascripts/ace/ext-options.js +88 -50
- data/vendor/assets/javascripts/ace/ext-prompt.js +2783 -0
- data/vendor/assets/javascripts/ace/ext-rtl.js +1 -3
- data/vendor/assets/javascripts/ace/ext-settings_menu.js +92 -54
- data/vendor/assets/javascripts/ace/ext-spellcheck.js +0 -1
- data/vendor/assets/javascripts/ace/ext-statusbar.js +2 -2
- data/vendor/assets/javascripts/ace/ext-themelist.js +2 -1
- data/vendor/assets/javascripts/ace/ext-whitespace.js +4 -0
- data/vendor/assets/javascripts/ace/keybinding-emacs.js +22 -22
- data/vendor/assets/javascripts/ace/keybinding-sublime.js +2 -5
- data/vendor/assets/javascripts/ace/keybinding-vim.js +336 -70
- data/vendor/assets/javascripts/ace/keybinding-vscode.js +262 -0
- data/vendor/assets/javascripts/ace/mode-abc.js +3 -0
- data/vendor/assets/javascripts/ace/mode-actionscript.js +1 -0
- data/vendor/assets/javascripts/ace/mode-alda.js +311 -0
- data/vendor/assets/javascripts/ace/mode-aql.js +102 -0
- data/vendor/assets/javascripts/ace/mode-asl.js +17 -16
- data/vendor/assets/javascripts/ace/mode-autohotkey.js +3 -1
- data/vendor/assets/javascripts/ace/mode-c_cpp.js +1 -0
- data/vendor/assets/javascripts/ace/mode-cirru.js +2 -2
- data/vendor/assets/javascripts/ace/mode-clojure.js +1 -0
- data/vendor/assets/javascripts/ace/mode-coffee.js +1 -0
- data/vendor/assets/javascripts/ace/mode-coldfusion.js +3 -0
- data/vendor/assets/javascripts/ace/mode-crystal.js +642 -0
- data/vendor/assets/javascripts/ace/mode-csound_document.js +82 -34
- data/vendor/assets/javascripts/ace/mode-csound_orchestra.js +72 -30
- data/vendor/assets/javascripts/ace/mode-csound_score.js +30 -21
- data/vendor/assets/javascripts/ace/mode-css.js +1 -0
- data/vendor/assets/javascripts/ace/mode-curly.js +3 -0
- data/vendor/assets/javascripts/ace/mode-d.js +1 -1
- data/vendor/assets/javascripts/ace/mode-dart.js +2 -0
- data/vendor/assets/javascripts/ace/mode-diff.js +1 -0
- data/vendor/assets/javascripts/ace/mode-django.js +4 -0
- data/vendor/assets/javascripts/ace/mode-dockerfile.js +1 -0
- data/vendor/assets/javascripts/ace/mode-drools.js +1 -0
- data/vendor/assets/javascripts/ace/mode-edifact.js +1 -0
- data/vendor/assets/javascripts/ace/mode-ejs.js +673 -165
- data/vendor/assets/javascripts/ace/mode-erlang.js +1 -0
- data/vendor/assets/javascripts/ace/mode-fsharp.js +2 -2
- data/vendor/assets/javascripts/ace/mode-fsl.js +1 -0
- data/vendor/assets/javascripts/ace/mode-gherkin.js +0 -2
- data/vendor/assets/javascripts/ace/mode-glsl.js +1 -0
- data/vendor/assets/javascripts/ace/mode-gobstones.js +254 -94
- data/vendor/assets/javascripts/ace/mode-graphqlschema.js +1 -0
- data/vendor/assets/javascripts/ace/mode-groovy.js +1 -0
- data/vendor/assets/javascripts/ace/mode-haml.js +419 -104
- data/vendor/assets/javascripts/ace/mode-handlebars.js +3 -0
- data/vendor/assets/javascripts/ace/mode-haskell.js +1 -0
- data/vendor/assets/javascripts/ace/mode-html.js +3 -0
- data/vendor/assets/javascripts/ace/mode-html_elixir.js +3 -0
- data/vendor/assets/javascripts/ace/mode-html_ruby.js +673 -165
- data/vendor/assets/javascripts/ace/mode-io.js +2 -7
- data/vendor/assets/javascripts/ace/mode-jade.js +1 -1
- data/vendor/assets/javascripts/ace/mode-java.js +2 -0
- data/vendor/assets/javascripts/ace/mode-javascript.js +1 -0
- data/vendor/assets/javascripts/ace/mode-json.js +3 -0
- data/vendor/assets/javascripts/ace/mode-json5.js +360 -0
- data/vendor/assets/javascripts/ace/mode-jsoniq.js +1 -0
- data/vendor/assets/javascripts/ace/mode-jsp.js +1 -0
- data/vendor/assets/javascripts/ace/mode-kotlin.js +2 -0
- data/vendor/assets/javascripts/ace/mode-liquid.js +4 -0
- data/vendor/assets/javascripts/ace/mode-lsl.js +1 -0
- data/vendor/assets/javascripts/ace/mode-lua.js +31 -10
- data/vendor/assets/javascripts/ace/mode-luapage.js +34 -10
- data/vendor/assets/javascripts/ace/mode-lucene.js +77 -9
- data/vendor/assets/javascripts/ace/mode-makefile.js +1 -0
- data/vendor/assets/javascripts/ace/mode-markdown.js +7 -1
- data/vendor/assets/javascripts/ace/mode-mask.js +1 -1
- data/vendor/assets/javascripts/ace/mode-maze.js +1 -0
- data/vendor/assets/javascripts/ace/mode-mediawiki.js +592 -0
- data/vendor/assets/javascripts/ace/mode-nginx.js +298 -0
- data/vendor/assets/javascripts/ace/mode-nim.js +363 -0
- data/vendor/assets/javascripts/ace/mode-nix.js +1 -0
- data/vendor/assets/javascripts/ace/mode-nsis.js +1 -1
- data/vendor/assets/javascripts/ace/mode-nunjucks.js +2698 -0
- data/vendor/assets/javascripts/ace/mode-pascal.js +84 -66
- data/vendor/assets/javascripts/ace/mode-perl.js +1 -0
- data/vendor/assets/javascripts/ace/mode-pgsql.js +2 -2
- data/vendor/assets/javascripts/ace/mode-php.js +5 -1
- data/vendor/assets/javascripts/ace/mode-php_laravel_blade.js +5 -1
- data/vendor/assets/javascripts/ace/mode-prisma.js +489 -0
- data/vendor/assets/javascripts/ace/mode-protobuf.js +1 -0
- data/vendor/assets/javascripts/ace/mode-puppet.js +8 -9
- data/vendor/assets/javascripts/ace/mode-python.js +3 -2
- data/vendor/assets/javascripts/ace/mode-qml.js +381 -0
- data/vendor/assets/javascripts/ace/mode-r.js +1 -0
- data/vendor/assets/javascripts/ace/mode-razor.js +4 -0
- data/vendor/assets/javascripts/ace/mode-rhtml.js +3 -0
- data/vendor/assets/javascripts/ace/mode-rst.js +1 -0
- data/vendor/assets/javascripts/ace/mode-ruby.js +670 -165
- data/vendor/assets/javascripts/ace/mode-rust.js +1 -1
- data/vendor/assets/javascripts/ace/mode-scala.js +1 -0
- data/vendor/assets/javascripts/ace/mode-sh.js +1 -0
- data/vendor/assets/javascripts/ace/mode-sjs.js +1 -0
- data/vendor/assets/javascripts/ace/mode-slim.js +710 -111
- data/vendor/assets/javascripts/ace/mode-smarty.js +3 -0
- data/vendor/assets/javascripts/ace/mode-snippets.js +1 -0
- data/vendor/assets/javascripts/ace/mode-soy_template.js +3 -0
- data/vendor/assets/javascripts/ace/mode-sql.js +1 -0
- data/vendor/assets/javascripts/ace/mode-sqlserver.js +2 -1
- data/vendor/assets/javascripts/ace/mode-svg.js +1 -0
- data/vendor/assets/javascripts/ace/mode-swift.js +6 -0
- data/vendor/assets/javascripts/ace/mode-tcl.js +4 -0
- data/vendor/assets/javascripts/ace/mode-terraform.js +14 -11
- data/vendor/assets/javascripts/ace/mode-tex.js +1 -0
- data/vendor/assets/javascripts/ace/mode-textile.js +1 -0
- data/vendor/assets/javascripts/ace/mode-tsx.js +1 -0
- data/vendor/assets/javascripts/ace/mode-twig.js +3 -0
- data/vendor/assets/javascripts/ace/mode-typescript.js +1 -0
- data/vendor/assets/javascripts/ace/mode-vala.js +1 -0
- data/vendor/assets/javascripts/ace/mode-vbscript.js +444 -15
- data/vendor/assets/javascripts/ace/mode-velocity.js +4 -0
- data/vendor/assets/javascripts/ace/mode-vhdl.js +5 -6
- data/vendor/assets/javascripts/ace/mode-visualforce.js +3 -0
- data/vendor/assets/javascripts/ace/mode-wollok.js +2 -0
- data/vendor/assets/javascripts/ace/mode-xquery.js +1 -0
- data/vendor/assets/javascripts/ace/mode-yaml.js +44 -13
- data/vendor/assets/javascripts/ace/mode-zeek.js +539 -0
- data/vendor/assets/javascripts/ace/snippets/abap.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/abc.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/actionscript.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/ada.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/alda.js +9 -0
- data/vendor/assets/javascripts/ace/snippets/apache_conf.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/apex.js +9 -0
- data/vendor/assets/javascripts/ace/snippets/applescript.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/aql.js +9 -0
- data/vendor/assets/javascripts/ace/snippets/asciidoc.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/asl.js +9 -0
- data/vendor/assets/javascripts/ace/snippets/assembly_x86.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/autohotkey.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/batchfile.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/c9search.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/c_cpp.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/cirru.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/clojure.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/cobol.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/coffee.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/coldfusion.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/crystal.js +9 -0
- data/vendor/assets/javascripts/ace/snippets/csharp.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/csound_document.js +24 -0
- data/vendor/assets/javascripts/ace/snippets/csound_orchestra.js +61 -0
- data/vendor/assets/javascripts/ace/snippets/csound_score.js +9 -0
- data/vendor/assets/javascripts/ace/snippets/csp.js +9 -0
- data/vendor/assets/javascripts/ace/snippets/css.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/curly.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/d.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/dart.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/diff.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/django.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/dockerfile.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/dot.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/drools.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/edifact.js +254 -0
- data/vendor/assets/javascripts/ace/snippets/eiffel.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/ejs.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/elixir.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/elm.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/erlang.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/forth.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/fortran.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/fsharp.js +9 -0
- data/vendor/assets/javascripts/ace/snippets/fsl.js +14 -0
- data/vendor/assets/javascripts/ace/snippets/ftl.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/gcode.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/gherkin.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/gitignore.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/glsl.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/gobstones.js +1701 -24
- data/vendor/assets/javascripts/ace/snippets/golang.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/graphqlschema.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/groovy.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/haml.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/handlebars.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/haskell.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/haskell_cabal.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/haxe.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/hjson.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/html.js +36 -2
- data/vendor/assets/javascripts/ace/snippets/html_elixir.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/html_ruby.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/ini.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/io.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/jack.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/jade.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/java.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/javascript.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/json.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/json5.js +9 -0
- data/vendor/assets/javascripts/ace/snippets/jsoniq.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/jsp.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/jssm.js +9 -0
- data/vendor/assets/javascripts/ace/snippets/jsx.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/julia.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/kotlin.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/latex.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/less.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/liquid.js +890 -2
- data/vendor/assets/javascripts/ace/snippets/lisp.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/livescript.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/logiql.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/logtalk.js +9 -0
- data/vendor/assets/javascripts/ace/snippets/lsl.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/lua.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/luapage.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/lucene.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/makefile.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/markdown.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/mask.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/matlab.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/maze.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/mediawiki.js +9 -0
- data/vendor/assets/javascripts/ace/snippets/mel.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/mixal.js +9 -0
- data/vendor/assets/javascripts/ace/snippets/mushcode.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/mysql.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/nginx.js +9 -0
- data/vendor/assets/javascripts/ace/snippets/nim.js +9 -0
- data/vendor/assets/javascripts/ace/snippets/nix.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/nsis.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/nunjucks.js +9 -0
- data/vendor/assets/javascripts/ace/snippets/objectivec.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/ocaml.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/pascal.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/perl.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/perl6.js +9 -0
- data/vendor/assets/javascripts/ace/snippets/pgsql.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/php.js +49 -36
- data/vendor/assets/javascripts/ace/snippets/php_laravel_blade.js +9 -0
- data/vendor/assets/javascripts/ace/snippets/pig.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/plain_text.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/powershell.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/praat.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/prisma.js +9 -0
- data/vendor/assets/javascripts/ace/snippets/prolog.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/properties.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/protobuf.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/puppet.js +9 -0
- data/vendor/assets/javascripts/ace/snippets/python.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/qml.js +9 -0
- data/vendor/assets/javascripts/ace/snippets/r.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/razor.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/rdoc.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/red.js +9 -0
- data/vendor/assets/javascripts/ace/snippets/redshift.js +9 -0
- data/vendor/assets/javascripts/ace/snippets/rhtml.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/rst.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/ruby.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/rust.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/sass.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/scad.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/scala.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/scheme.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/scss.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/sh.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/sjs.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/slim.js +9 -0
- data/vendor/assets/javascripts/ace/snippets/smarty.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/snippets.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/soy_template.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/space.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/sparql.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/sql.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/sqlserver.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/stylus.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/svg.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/swift.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/tcl.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/terraform.js +9 -0
- data/vendor/assets/javascripts/ace/snippets/tex.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/text.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/textile.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/toml.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/tsx.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/turtle.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/twig.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/typescript.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/vala.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/vbscript.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/velocity.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/verilog.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/vhdl.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/visualforce.js +9 -0
- data/vendor/assets/javascripts/ace/snippets/wollok.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/xml.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/xquery.js +8 -1
- data/vendor/assets/javascripts/ace/snippets/yaml.js +8 -6
- data/vendor/assets/javascripts/ace/snippets/zeek.js +9 -0
- data/vendor/assets/javascripts/ace/theme-ambiance.js +3 -2
- data/vendor/assets/javascripts/ace/theme-chaos.js +1 -1
- data/vendor/assets/javascripts/ace/theme-nord_dark.js +102 -0
- data/vendor/assets/javascripts/ace/worker-base.js +1421 -0
- data/vendor/assets/javascripts/ace/worker-coffee.js +17 -703
- data/vendor/assets/javascripts/ace/worker-css.js +24 -704
- data/vendor/assets/javascripts/ace/worker-html.js +17 -703
- data/vendor/assets/javascripts/ace/worker-javascript.js +7833 -5352
- data/vendor/assets/javascripts/ace/worker-json.js +17 -703
- data/vendor/assets/javascripts/ace/worker-lua.js +17 -703
- data/vendor/assets/javascripts/ace/worker-php.js +859 -1477
- data/vendor/assets/javascripts/ace/worker-xml.js +26 -707
- data/vendor/assets/javascripts/ace/worker-xquery.js +17 -703
- metadata +50 -18
- data/vendor/assets/javascripts/ace/ext-chromevox.js +0 -540
- data/vendor/assets/javascripts/ace/ext-old_ie.js +0 -502
- data/vendor/assets/javascripts/ace/mode-bash.js +0 -247
- data/vendor/assets/javascripts/ace/mode-bro.js +0 -334
- data/vendor/assets/javascripts/ace/mode-lean.js +0 -281
- data/vendor/assets/javascripts/ace/mode-live_script.js +0 -481
- data/vendor/assets/javascripts/ace/mode-mips_assembler.js +0 -235
- data/vendor/assets/javascripts/ace/mode-mipsassembler.js +0 -196
- data/vendor/assets/javascripts/ace/mode-swig.js +0 -1099
- data/vendor/assets/javascripts/ace/snippets/bro.js +0 -7
- data/vendor/assets/javascripts/ace/snippets/lean.js +0 -7
- data/vendor/assets/javascripts/ace/snippets/live_script.js +0 -7
- data/vendor/assets/javascripts/ace/snippets/mips_assembler.js +0 -7
- data/vendor/assets/javascripts/ace/snippets/mipsassembler.js +0 -7
- 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: '
|
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
|
-
|
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
|
-
|
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
|
-
}
|
2429
|
-
if (
|
2430
|
-
var
|
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
|
-
|
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
|
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 =
|
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 (
|
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,
|
3934
|
-
end = cm.scanForBracket(Pos(cur.line, cur.ch + offset), 1,
|
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
|
-
|
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 (
|
5469
|
+
if (text) {
|
5470
|
+
if (cm.state.overwrite && !/\n/.test(text)) {
|
5204
5471
|
lastChange.changes.push([text]);
|
5205
|
-
|
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
|
5334
|
-
if (
|
5335
|
-
|
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 (
|
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 (
|
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
|
-
|
5681
|
+
|
5682
|
+
var wasMultiselect = cm.ace.inMultiSelectMode;
|
5683
|
+
if (vim.wasInVisualBlock && !wasMultiselect) {
|
5417
5684
|
vim.wasInVisualBlock = false;
|
5418
|
-
} else if (
|
5685
|
+
} else if (wasMultiselect && vim.visualBlock) {
|
5419
5686
|
vim.wasInVisualBlock = true;
|
5420
5687
|
}
|
5421
5688
|
|
5422
|
-
if (key == '<Esc>' && !vim.insertMode && !vim.visualMode &&
|
5689
|
+
if (key == '<Esc>' && !vim.insertMode && !vim.visualMode && wasMultiselect) {
|
5423
5690
|
cm.ace.exitMultiSelectMode();
|
5424
|
-
} else if (visualBlock || !
|
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) {
|