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
@@ -990,6 +990,7 @@ oop.inherits(Mode, TextMode);
|
|
990
990
|
};
|
991
991
|
|
992
992
|
this.$id = "ace/mode/javascript";
|
993
|
+
this.snippetFileId = "ace/snippets/javascript";
|
993
994
|
}).call(Mode.prototype);
|
994
995
|
|
995
996
|
exports.Mode = Mode;
|
@@ -2192,6 +2193,7 @@ oop.inherits(Mode, TextMode);
|
|
2192
2193
|
};
|
2193
2194
|
|
2194
2195
|
this.$id = "ace/mode/css";
|
2196
|
+
this.snippetFileId = "ace/snippets/css";
|
2195
2197
|
}).call(Mode.prototype);
|
2196
2198
|
|
2197
2199
|
exports.Mode = Mode;
|
@@ -2745,6 +2747,7 @@ oop.inherits(Mode, TextMode);
|
|
2745
2747
|
};
|
2746
2748
|
|
2747
2749
|
this.$id = "ace/mode/html";
|
2750
|
+
this.snippetFileId = "ace/snippets/html";
|
2748
2751
|
}).call(Mode.prototype);
|
2749
2752
|
|
2750
2753
|
exports.Mode = Mode;
|
@@ -2831,7 +2834,7 @@ var MarkdownHighlightRules = function() {
|
|
2831
2834
|
next : "blockquote"
|
2832
2835
|
}, { // HR * - _
|
2833
2836
|
token : "constant",
|
2834
|
-
regex : "^ {0,
|
2837
|
+
regex : "^ {0,3}(?:(?:\\* ?){3,}|(?:\\- ?){3,}|(?:\\_ ?){3,})\\s*$",
|
2835
2838
|
next: "allowBlock"
|
2836
2839
|
}, { // list
|
2837
2840
|
token : "markup.list",
|
@@ -3330,6 +3333,7 @@ oop.inherits(Mode, TextMode);
|
|
3330
3333
|
};
|
3331
3334
|
|
3332
3335
|
this.$id = "ace/mode/sh";
|
3336
|
+
this.snippetFileId = "ace/snippets/sh";
|
3333
3337
|
}).call(Mode.prototype);
|
3334
3338
|
|
3335
3339
|
exports.Mode = Mode;
|
@@ -3366,6 +3370,7 @@ oop.inherits(Mode, TextMode);
|
|
3366
3370
|
(function() {
|
3367
3371
|
this.type = "text";
|
3368
3372
|
this.blockComment = {start: "<!--", end: "-->"};
|
3373
|
+
this.$quotes = {'"': '"', "`": "`"};
|
3369
3374
|
|
3370
3375
|
this.getNextLineIndent = function(state, line, tab) {
|
3371
3376
|
if (state == "listblock") {
|
@@ -3381,6 +3386,7 @@ oop.inherits(Mode, TextMode);
|
|
3381
3386
|
}
|
3382
3387
|
};
|
3383
3388
|
this.$id = "ace/mode/markdown";
|
3389
|
+
this.snippetFileId = "ace/snippets/markdown";
|
3384
3390
|
}).call(Mode.prototype);
|
3385
3391
|
|
3386
3392
|
exports.Mode = Mode;
|
@@ -3733,6 +3739,7 @@ oop.inherits(Mode, TextMode);
|
|
3733
3739
|
};
|
3734
3740
|
|
3735
3741
|
this.$id = "ace/mode/coffee";
|
3742
|
+
this.snippetFileId = "ace/snippets/coffee";
|
3736
3743
|
}).call(Mode.prototype);
|
3737
3744
|
|
3738
3745
|
exports.Mode = Mode;
|
@@ -4246,17 +4253,17 @@ var constantOtherSymbol = exports.constantOtherSymbol = {
|
|
4246
4253
|
regex : "[:](?:[A-Za-z_]|[@$](?=[a-zA-Z0-9_]))[a-zA-Z0-9_]*[!=?]?"
|
4247
4254
|
};
|
4248
4255
|
|
4249
|
-
|
4256
|
+
exports.qString = {
|
4250
4257
|
token : "string", // single line
|
4251
4258
|
regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
|
4252
4259
|
};
|
4253
4260
|
|
4254
|
-
|
4261
|
+
exports.qqString = {
|
4255
4262
|
token : "string", // single line
|
4256
4263
|
regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
|
4257
4264
|
};
|
4258
4265
|
|
4259
|
-
|
4266
|
+
exports.tString = {
|
4260
4267
|
token : "string", // backtick string
|
4261
4268
|
regex : "[`](?:(?:\\\\.)|(?:[^'\\\\]))*?[`]"
|
4262
4269
|
};
|
@@ -4266,9 +4273,34 @@ var constantNumericHex = exports.constantNumericHex = {
|
|
4266
4273
|
regex : "0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_(?=[0-9a-fA-F]))*\\b"
|
4267
4274
|
};
|
4268
4275
|
|
4276
|
+
var constantNumericBinary = exports.constantNumericBinary = {
|
4277
|
+
token: "constant.numeric",
|
4278
|
+
regex: /\b(0[bB][01](?:[01]|_(?=[01]))*)\b/
|
4279
|
+
};
|
4280
|
+
|
4281
|
+
var constantNumericDecimal = exports.constantNumericDecimal = {
|
4282
|
+
token: "constant.numeric",
|
4283
|
+
regex: /\b(0[dD](?:[1-9](?:[\d]|_(?=[\d]))*|0))\b/
|
4284
|
+
};
|
4285
|
+
|
4286
|
+
var constantNumericOctal = exports.constantNumericDecimal = {
|
4287
|
+
token: "constant.numeric",
|
4288
|
+
regex: /\b(0[oO]?(?:[1-7](?:[0-7]|_(?=[0-7]))*|0))\b/
|
4289
|
+
};
|
4290
|
+
|
4291
|
+
var constantNumericRational = exports.constantNumericRational = {
|
4292
|
+
token: "constant.numeric", //rational + complex
|
4293
|
+
regex: /\b([\d]+(?:[./][\d]+)?ri?)\b/
|
4294
|
+
};
|
4295
|
+
|
4296
|
+
var constantNumericComplex = exports.constantNumericComplex = {
|
4297
|
+
token: "constant.numeric", //simple complex numbers
|
4298
|
+
regex: /\b([\d]i)\b/
|
4299
|
+
};
|
4300
|
+
|
4269
4301
|
var constantNumericFloat = exports.constantNumericFloat = {
|
4270
|
-
token : "constant.numeric", // float
|
4271
|
-
regex : "[+-]?\\d(?:\\d|_(?=\\d))*(?:(?:\\.\\d(?:\\d|_(?=\\d))*)?(?:[eE][+-]?\\d+)?)?\\b"
|
4302
|
+
token : "constant.numeric", // float + complex
|
4303
|
+
regex : "[+-]?\\d(?:\\d|_(?=\\d))*(?:(?:\\.\\d(?:\\d|_(?=\\d))*)?(?:[eE][+-]?\\d+)?)?i?\\b"
|
4272
4304
|
};
|
4273
4305
|
|
4274
4306
|
var instanceVariable = exports.instanceVariable = {
|
@@ -4308,18 +4340,19 @@ var RubyHighlightRules = function() {
|
|
4308
4340
|
"filter_parameter_logging|match|get|post|resources|redirect|scope|assert_routing|" +
|
4309
4341
|
"translate|localize|extract_locale_from_tld|caches_page|expire_page|caches_action|expire_action|" +
|
4310
4342
|
"cache|expire_fragment|expire_cache_for|observe|cache_sweeper|" +
|
4311
|
-
"has_many|has_one|belongs_to|has_and_belongs_to_many"
|
4343
|
+
"has_many|has_one|belongs_to|has_and_belongs_to_many|p|warn|refine|using|module_function|extend|alias_method|" +
|
4344
|
+
"private_class_method|remove_method|undef_method"
|
4312
4345
|
);
|
4313
4346
|
|
4314
4347
|
var keywords = (
|
4315
4348
|
"alias|and|BEGIN|begin|break|case|class|def|defined|do|else|elsif|END|end|ensure|" +
|
4316
4349
|
"__FILE__|finally|for|gem|if|in|__LINE__|module|next|not|or|private|protected|public|" +
|
4317
|
-
"redo|rescue|retry|return|super|then|undef|unless|until|when|while|yield"
|
4350
|
+
"redo|rescue|retry|return|super|then|undef|unless|until|when|while|yield|__ENCODING__|prepend"
|
4318
4351
|
);
|
4319
4352
|
|
4320
4353
|
var buildinConstants = (
|
4321
4354
|
"true|TRUE|false|FALSE|nil|NIL|ARGF|ARGV|DATA|ENV|RUBY_PLATFORM|RUBY_RELEASE_DATE|" +
|
4322
|
-
"RUBY_VERSION|STDERR|STDIN|STDOUT|TOPLEVEL_BINDING"
|
4355
|
+
"RUBY_VERSION|STDERR|STDIN|STDOUT|TOPLEVEL_BINDING|RUBY_PATCHLEVEL|RUBY_REVISION|RUBY_COPYRIGHT|RUBY_ENGINE|RUBY_ENGINE_VERSION|RUBY_DESCRIPTION"
|
4323
4356
|
);
|
4324
4357
|
|
4325
4358
|
var builtinVariables = (
|
@@ -4335,126 +4368,191 @@ var RubyHighlightRules = function() {
|
|
4335
4368
|
"invalid.deprecated": "debugger" // TODO is this a remnant from js mode?
|
4336
4369
|
}, "identifier");
|
4337
4370
|
|
4371
|
+
var escapedChars = "\\\\(?:n(?:[1-7][0-7]{0,2}|0)|[nsrtvfbae'\"\\\\]|c(?:\\\\M-)?.|M-(?:\\\\C-|\\\\c)?.|C-(?:\\\\M-)?.|[0-7]{3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4}|u{[\\da-fA-F]{1,6}(?:\\s[\\da-fA-F]{1,6})*})";
|
4372
|
+
|
4373
|
+
var closeParen = {
|
4374
|
+
"(": ")",
|
4375
|
+
"[": "]",
|
4376
|
+
"{": "}",
|
4377
|
+
"<": ">",
|
4378
|
+
"^": "^",
|
4379
|
+
"|": "|",
|
4380
|
+
"%": "%"
|
4381
|
+
};
|
4382
|
+
|
4338
4383
|
this.$rules = {
|
4339
|
-
"start"
|
4384
|
+
"start": [
|
4340
4385
|
{
|
4341
|
-
token
|
4342
|
-
regex
|
4386
|
+
token: "comment",
|
4387
|
+
regex: "#.*$"
|
4343
4388
|
}, {
|
4344
|
-
token
|
4345
|
-
regex
|
4346
|
-
next
|
4389
|
+
token: "comment.multiline", // multi line comment
|
4390
|
+
regex: "^=begin(?=$|\\s.*$)",
|
4391
|
+
next: "comment"
|
4347
4392
|
}, {
|
4348
|
-
token
|
4349
|
-
regex
|
4393
|
+
token: "string.regexp",
|
4394
|
+
regex: /[/](?=.*\/)/,
|
4395
|
+
next: "regex"
|
4350
4396
|
},
|
4351
4397
|
|
4352
4398
|
[{
|
4353
|
-
|
4354
|
-
|
4355
|
-
|
4356
|
-
|
4357
|
-
|
4358
|
-
}
|
4359
|
-
if (val == "}" && stack.length) {
|
4360
|
-
stack.shift();
|
4361
|
-
this.next = stack.shift();
|
4362
|
-
if (this.next.indexOf("string") != -1)
|
4363
|
-
return "paren.end";
|
4364
|
-
}
|
4365
|
-
return val == "{" ? "paren.lparen" : "paren.rparen";
|
4366
|
-
},
|
4367
|
-
nextState: "start"
|
4368
|
-
}, {
|
4369
|
-
token : "string.start",
|
4370
|
-
regex : /"/,
|
4371
|
-
push : [{
|
4372
|
-
token : "constant.language.escape",
|
4373
|
-
regex : /\\(?:[nsrtvfbae'"\\]|c.|C-.|M-.(?:\\C-.)?|[0-7]{3}|x[\da-fA-F]{2}|u[\da-fA-F]{4})/
|
4399
|
+
token: ["constant.other.symbol.ruby", "string.start"],
|
4400
|
+
regex: /(:)?(")/,
|
4401
|
+
push: [{
|
4402
|
+
token: "constant.language.escape",
|
4403
|
+
regex: escapedChars
|
4374
4404
|
}, {
|
4375
|
-
token
|
4376
|
-
regex
|
4377
|
-
push
|
4405
|
+
token: "paren.start",
|
4406
|
+
regex: /#{/,
|
4407
|
+
push: "start"
|
4378
4408
|
}, {
|
4379
|
-
token
|
4380
|
-
regex
|
4381
|
-
next
|
4409
|
+
token: "string.end",
|
4410
|
+
regex: /"/,
|
4411
|
+
next: "pop"
|
4382
4412
|
}, {
|
4383
4413
|
defaultToken: "string"
|
4384
4414
|
}]
|
4385
4415
|
}, {
|
4386
|
-
token
|
4387
|
-
regex
|
4388
|
-
push
|
4389
|
-
token
|
4390
|
-
regex
|
4416
|
+
token: "string.start",
|
4417
|
+
regex: /`/,
|
4418
|
+
push: [{
|
4419
|
+
token: "constant.language.escape",
|
4420
|
+
regex: escapedChars
|
4391
4421
|
}, {
|
4392
|
-
token
|
4393
|
-
regex
|
4394
|
-
push
|
4422
|
+
token: "paren.start",
|
4423
|
+
regex: /#{/,
|
4424
|
+
push: "start"
|
4395
4425
|
}, {
|
4396
|
-
token
|
4397
|
-
regex
|
4398
|
-
next
|
4426
|
+
token: "string.end",
|
4427
|
+
regex: /`/,
|
4428
|
+
next: "pop"
|
4399
4429
|
}, {
|
4400
4430
|
defaultToken: "string"
|
4401
4431
|
}]
|
4402
4432
|
}, {
|
4403
|
-
token
|
4404
|
-
regex
|
4405
|
-
push
|
4406
|
-
token
|
4407
|
-
regex
|
4408
|
-
},
|
4409
|
-
token
|
4410
|
-
regex
|
4411
|
-
next
|
4433
|
+
token: ["constant.other.symbol.ruby", "string.start"],
|
4434
|
+
regex: /(:)?(')/,
|
4435
|
+
push: [{
|
4436
|
+
token: "constant.language.escape",
|
4437
|
+
regex: /\\['\\]/
|
4438
|
+
}, {
|
4439
|
+
token: "string.end",
|
4440
|
+
regex: /'/,
|
4441
|
+
next: "pop"
|
4412
4442
|
}, {
|
4413
4443
|
defaultToken: "string"
|
4414
4444
|
}]
|
4445
|
+
}, {
|
4446
|
+
token: "string.start",//doesn't see any differences between strings and array of strings in highlighting
|
4447
|
+
regex: /%[qwx]([(\[<{^|%])/, onMatch: function (val, state, stack) {
|
4448
|
+
if (stack.length)
|
4449
|
+
stack = [];
|
4450
|
+
var paren = val[val.length - 1];
|
4451
|
+
stack.unshift(paren, state);
|
4452
|
+
this.next = "qStateWithoutInterpolation";
|
4453
|
+
return this.token;
|
4454
|
+
}
|
4455
|
+
}, {
|
4456
|
+
token: "string.start", //doesn't see any differences between strings and array of strings in highlighting
|
4457
|
+
regex: /%[QWX]?([(\[<{^|%])/, onMatch: function (val, state, stack) {
|
4458
|
+
if (stack.length)
|
4459
|
+
stack = [];
|
4460
|
+
var paren = val[val.length - 1];
|
4461
|
+
stack.unshift(paren, state);
|
4462
|
+
this.next = "qStateWithInterpolation";
|
4463
|
+
return this.token;
|
4464
|
+
}
|
4465
|
+
}, {
|
4466
|
+
token: "constant.other.symbol.ruby", //doesn't see any differences between symbols and array of symbols in highlighting
|
4467
|
+
regex: /%[si]([(\[<{^|%])/, onMatch: function (val, state, stack) {
|
4468
|
+
if (stack.length)
|
4469
|
+
stack = [];
|
4470
|
+
var paren = val[val.length - 1];
|
4471
|
+
stack.unshift(paren, state);
|
4472
|
+
this.next = "sStateWithoutInterpolation";
|
4473
|
+
return this.token;
|
4474
|
+
}
|
4475
|
+
}, {
|
4476
|
+
token: "constant.other.symbol.ruby", //doesn't see any differences between symbols and array of symbols in highlighting
|
4477
|
+
regex: /%[SI]([(\[<{^|%])/, onMatch: function (val, state, stack) {
|
4478
|
+
if (stack.length)
|
4479
|
+
stack = [];
|
4480
|
+
var paren = val[val.length - 1];
|
4481
|
+
stack.unshift(paren, state);
|
4482
|
+
this.next = "sStateWithInterpolation";
|
4483
|
+
return this.token;
|
4484
|
+
}
|
4485
|
+
}, {
|
4486
|
+
token: "string.regexp",
|
4487
|
+
regex: /%[r]([(\[<{^|%])/, onMatch: function (val, state, stack) {
|
4488
|
+
if (stack.length)
|
4489
|
+
stack = [];
|
4490
|
+
var paren = val[val.length - 1];
|
4491
|
+
stack.unshift(paren, state);
|
4492
|
+
this.next = "rState";
|
4493
|
+
return this.token;
|
4494
|
+
}
|
4415
4495
|
}],
|
4416
4496
|
|
4417
4497
|
{
|
4418
|
-
token
|
4419
|
-
regex
|
4498
|
+
token: "punctuation", // namespaces aren't symbols
|
4499
|
+
regex: "::"
|
4500
|
+
},
|
4501
|
+
instanceVariable,
|
4502
|
+
{
|
4503
|
+
token: "variable.global", // global variable
|
4504
|
+
regex: "[$][a-zA-Z_\\d]+"
|
4420
4505
|
}, {
|
4421
|
-
token
|
4422
|
-
regex
|
4506
|
+
token: "support.class", // class name
|
4507
|
+
regex: "[A-Z][a-zA-Z_\\d]*"
|
4423
4508
|
}, {
|
4424
|
-
token
|
4425
|
-
regex
|
4509
|
+
token: ["punctuation.operator", "support.function"],
|
4510
|
+
regex: /(\.)([a-zA-Z_\d]+)(?=\()/
|
4511
|
+
}, {
|
4512
|
+
token: ["punctuation.operator", "identifier"],
|
4513
|
+
regex: /(\.)([a-zA-Z_][a-zA-Z_\d]*)/
|
4514
|
+
}, {
|
4515
|
+
token: "string.character",
|
4516
|
+
regex: "\\B\\?(?:" + escapedChars + "|\\S)"
|
4517
|
+
}, {
|
4518
|
+
token: "punctuation.operator",
|
4519
|
+
regex: /\?(?=.+:)/
|
4426
4520
|
},
|
4427
4521
|
|
4522
|
+
constantNumericRational,
|
4523
|
+
constantNumericComplex,
|
4428
4524
|
constantOtherSymbol,
|
4429
4525
|
constantNumericHex,
|
4430
4526
|
constantNumericFloat,
|
4431
|
-
|
4527
|
+
constantNumericBinary,
|
4528
|
+
constantNumericDecimal,
|
4529
|
+
constantNumericOctal,
|
4432
4530
|
{
|
4433
|
-
token
|
4434
|
-
regex
|
4531
|
+
token: "constant.language.boolean",
|
4532
|
+
regex: "(?:true|false)\\b"
|
4435
4533
|
}, {
|
4436
|
-
token
|
4437
|
-
regex
|
4534
|
+
token: keywordMapper,
|
4535
|
+
regex: "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
|
4438
4536
|
}, {
|
4439
|
-
token
|
4440
|
-
regex
|
4537
|
+
token: "punctuation.separator.key-value",
|
4538
|
+
regex: "=>"
|
4441
4539
|
}, {
|
4442
4540
|
stateName: "heredoc",
|
4443
|
-
onMatch
|
4444
|
-
var next = value[2] == '-' ? "indentedHeredoc" : "heredoc";
|
4541
|
+
onMatch: function (value, currentState, stack) {
|
4542
|
+
var next = (value[2] == '-' || value[2] == '~') ? "indentedHeredoc" : "heredoc";
|
4445
4543
|
var tokens = value.split(this.splitRegex);
|
4446
4544
|
stack.push(next, tokens[3]);
|
4447
4545
|
return [
|
4448
|
-
{type:"constant", value: tokens[1]},
|
4449
|
-
{type:"string", value: tokens[2]},
|
4450
|
-
{type:"support.class", value: tokens[3]},
|
4451
|
-
{type:"string", value: tokens[4]}
|
4546
|
+
{type: "constant", value: tokens[1]},
|
4547
|
+
{type: "string", value: tokens[2]},
|
4548
|
+
{type: "support.class", value: tokens[3]},
|
4549
|
+
{type: "string", value: tokens[4]}
|
4452
4550
|
];
|
4453
4551
|
},
|
4454
|
-
regex
|
4552
|
+
regex: "(<<[-~]?)(['\"`]?)([\\w]+)(['\"`]?)",
|
4455
4553
|
rules: {
|
4456
4554
|
heredoc: [{
|
4457
|
-
onMatch:
|
4555
|
+
onMatch: function(value, currentState, stack) {
|
4458
4556
|
if (value === stack[1]) {
|
4459
4557
|
stack.shift();
|
4460
4558
|
stack.shift();
|
@@ -4471,7 +4569,7 @@ var RubyHighlightRules = function() {
|
|
4471
4569
|
token: "string",
|
4472
4570
|
regex: "^ +"
|
4473
4571
|
}, {
|
4474
|
-
onMatch:
|
4572
|
+
onMatch: function(value, currentState, stack) {
|
4475
4573
|
if (value === stack[1]) {
|
4476
4574
|
stack.shift();
|
4477
4575
|
stack.shift();
|
@@ -4486,38 +4584,261 @@ var RubyHighlightRules = function() {
|
|
4486
4584
|
}]
|
4487
4585
|
}
|
4488
4586
|
}, {
|
4489
|
-
regex
|
4490
|
-
token
|
4491
|
-
next
|
4587
|
+
regex: "$",
|
4588
|
+
token: "empty",
|
4589
|
+
next: function(currentState, stack) {
|
4492
4590
|
if (stack[0] === "heredoc" || stack[0] === "indentedHeredoc")
|
4493
4591
|
return stack[0];
|
4494
4592
|
return currentState;
|
4495
4593
|
}
|
4594
|
+
}, {
|
4595
|
+
token: "keyword.operator",
|
4596
|
+
regex: "!|\\$|%|&|\\*|/|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\||\\b(?:in|instanceof|new|delete|typeof|void)"
|
4597
|
+
}, {
|
4598
|
+
token: "paren.lparen",
|
4599
|
+
regex: "[[({]"
|
4600
|
+
}, {
|
4601
|
+
token: "paren.rparen",
|
4602
|
+
regex: "[\\])}]",
|
4603
|
+
onMatch: function(value, currentState, stack) {
|
4604
|
+
this.next = '';
|
4605
|
+
if (value == "}" && stack.length > 1 && stack[1] != "start") {
|
4606
|
+
stack.shift();
|
4607
|
+
this.next = stack.shift();
|
4608
|
+
}
|
4609
|
+
return this.token;
|
4610
|
+
}
|
4496
4611
|
}, {
|
4497
|
-
|
4498
|
-
|
4612
|
+
token: "text",
|
4613
|
+
regex: "\\s+"
|
4499
4614
|
}, {
|
4500
|
-
token
|
4501
|
-
regex
|
4615
|
+
token: "punctuation.operator",
|
4616
|
+
regex: /[?:,;.]/
|
4617
|
+
}
|
4618
|
+
],
|
4619
|
+
"comment": [
|
4620
|
+
{
|
4621
|
+
token: "comment.multiline", // closing comment
|
4622
|
+
regex: "^=end(?=$|\\s.*$)",
|
4623
|
+
next: "start"
|
4502
4624
|
}, {
|
4503
|
-
token
|
4504
|
-
regex
|
4625
|
+
token: "comment", // comment spanning whole line
|
4626
|
+
regex: ".+"
|
4627
|
+
}
|
4628
|
+
],
|
4629
|
+
"qStateWithInterpolation": [{
|
4630
|
+
token: "string.start",// excluded nested |^% due to difficulty in realization
|
4631
|
+
regex: /[(\[<{]/, onMatch: function (val, state, stack) {
|
4632
|
+
if (stack.length && val === stack[0]) {
|
4633
|
+
stack.unshift(val, state);
|
4634
|
+
return this.token;
|
4635
|
+
}
|
4636
|
+
return "string";
|
4637
|
+
}
|
4638
|
+
}, {
|
4639
|
+
token: "constant.language.escape",
|
4640
|
+
regex: escapedChars
|
4641
|
+
}, {
|
4642
|
+
token: "constant.language.escape",
|
4643
|
+
regex: /\\./
|
4644
|
+
}, {
|
4645
|
+
token: "paren.start",
|
4646
|
+
regex: /#{/,
|
4647
|
+
push: "start"
|
4648
|
+
}, {
|
4649
|
+
token: "string.end",
|
4650
|
+
regex: /[)\]>}^|%]/, onMatch: function (val, state, stack) {
|
4651
|
+
if (stack.length && val === closeParen[stack[0]]) {
|
4652
|
+
stack.shift();
|
4653
|
+
this.next = stack.shift();
|
4654
|
+
return this.token;
|
4655
|
+
}
|
4656
|
+
this.next = '';
|
4657
|
+
return "string";
|
4658
|
+
}
|
4659
|
+
}, {
|
4660
|
+
defaultToken: "string"
|
4661
|
+
}],
|
4662
|
+
"qStateWithoutInterpolation": [{
|
4663
|
+
token: "string.start",// excluded nested |^% due to difficulty in realization
|
4664
|
+
regex: /[(\[<{]/, onMatch: function (val, state, stack) {
|
4665
|
+
if (stack.length && val === stack[0]) {
|
4666
|
+
stack.unshift(val, state);
|
4667
|
+
return this.token;
|
4668
|
+
}
|
4669
|
+
return "string";
|
4670
|
+
}
|
4671
|
+
}, {
|
4672
|
+
token: "constant.language.escape",
|
4673
|
+
regex: /\\['\\]/
|
4674
|
+
}, {
|
4675
|
+
token: "constant.language.escape",
|
4676
|
+
regex: /\\./
|
4677
|
+
}, {
|
4678
|
+
token: "string.end",
|
4679
|
+
regex: /[)\]>}^|%]/, onMatch: function (val, state, stack) {
|
4680
|
+
if (stack.length && val === closeParen[stack[0]]) {
|
4681
|
+
stack.shift();
|
4682
|
+
this.next = stack.shift();
|
4683
|
+
return this.token;
|
4684
|
+
}
|
4685
|
+
this.next = '';
|
4686
|
+
return "string";
|
4687
|
+
}
|
4688
|
+
}, {
|
4689
|
+
defaultToken: "string"
|
4690
|
+
}],
|
4691
|
+
"sStateWithoutInterpolation": [{
|
4692
|
+
token: "constant.other.symbol.ruby",// excluded nested |^% due to difficulty in realization
|
4693
|
+
regex: /[(\[<{]/, onMatch: function (val, state, stack) {
|
4694
|
+
if (stack.length && val === stack[0]) {
|
4695
|
+
stack.unshift(val, state);
|
4696
|
+
return this.token;
|
4697
|
+
}
|
4698
|
+
return "constant.other.symbol.ruby";
|
4699
|
+
}
|
4700
|
+
}, {
|
4701
|
+
token: "constant.other.symbol.ruby",
|
4702
|
+
regex: /[)\]>}^|%]/, onMatch: function (val, state, stack) {
|
4703
|
+
if (stack.length && val === closeParen[stack[0]]) {
|
4704
|
+
stack.shift();
|
4705
|
+
this.next = stack.shift();
|
4706
|
+
return this.token;
|
4707
|
+
}
|
4708
|
+
this.next = '';
|
4709
|
+
return "constant.other.symbol.ruby";
|
4710
|
+
}
|
4711
|
+
}, {
|
4712
|
+
defaultToken: "constant.other.symbol.ruby"
|
4713
|
+
}],
|
4714
|
+
"sStateWithInterpolation": [{
|
4715
|
+
token: "constant.other.symbol.ruby",// excluded nested |^% due to difficulty in realization
|
4716
|
+
regex: /[(\[<{]/, onMatch: function (val, state, stack) {
|
4717
|
+
if (stack.length && val === stack[0]) {
|
4718
|
+
stack.unshift(val, state);
|
4719
|
+
return this.token;
|
4720
|
+
}
|
4721
|
+
return "constant.other.symbol.ruby";
|
4722
|
+
}
|
4723
|
+
}, {
|
4724
|
+
token: "constant.language.escape",
|
4725
|
+
regex: escapedChars
|
4726
|
+
}, {
|
4727
|
+
token: "constant.language.escape",
|
4728
|
+
regex: /\\./
|
4729
|
+
}, {
|
4730
|
+
token: "paren.start",
|
4731
|
+
regex: /#{/,
|
4732
|
+
push: "start"
|
4733
|
+
}, {
|
4734
|
+
token: "constant.other.symbol.ruby",
|
4735
|
+
regex: /[)\]>}^|%]/, onMatch: function (val, state, stack) {
|
4736
|
+
if (stack.length && val === closeParen[stack[0]]) {
|
4737
|
+
stack.shift();
|
4738
|
+
this.next = stack.shift();
|
4739
|
+
return this.token;
|
4740
|
+
}
|
4741
|
+
this.next = '';
|
4742
|
+
return "constant.other.symbol.ruby";
|
4743
|
+
}
|
4744
|
+
}, {
|
4745
|
+
defaultToken: "constant.other.symbol.ruby"
|
4746
|
+
}],
|
4747
|
+
"rState": [{
|
4748
|
+
token: "string.regexp",// excluded nested |^% due to difficulty in realization
|
4749
|
+
regex: /[(\[<{]/, onMatch: function (val, state, stack) {
|
4750
|
+
if (stack.length && val === stack[0]) {
|
4751
|
+
stack.unshift(val, state);
|
4752
|
+
return this.token;
|
4753
|
+
}
|
4754
|
+
return "constant.language.escape";
|
4755
|
+
}
|
4756
|
+
}, {
|
4757
|
+
token: "paren.start",
|
4758
|
+
regex: /#{/,
|
4759
|
+
push: "start"
|
4760
|
+
}, {
|
4761
|
+
token: "string.regexp",
|
4762
|
+
regex: /\//
|
4763
|
+
}, {
|
4764
|
+
token: "string.regexp",
|
4765
|
+
regex: /[)\]>}^|%][imxouesn]*/, onMatch: function (val, state, stack) {
|
4766
|
+
if (stack.length && val[0] === closeParen[stack[0]]) {
|
4767
|
+
stack.shift();
|
4768
|
+
this.next = stack.shift();
|
4769
|
+
return this.token;
|
4770
|
+
}
|
4771
|
+
this.next = '';
|
4772
|
+
return "constant.language.escape";
|
4773
|
+
}
|
4774
|
+
},
|
4775
|
+
{include: "regex"},
|
4776
|
+
{
|
4777
|
+
defaultToken: "string.regexp"
|
4778
|
+
}],
|
4779
|
+
"regex": [
|
4780
|
+
{// character classes
|
4781
|
+
token: "regexp.keyword",
|
4782
|
+
regex: /\\[wWdDhHsS]/
|
4505
4783
|
}, {
|
4506
|
-
token
|
4507
|
-
regex
|
4784
|
+
token: "constant.language.escape",
|
4785
|
+
regex: /\\[AGbBzZ]/
|
4508
4786
|
}, {
|
4509
|
-
token
|
4510
|
-
regex
|
4787
|
+
token: "constant.language.escape",
|
4788
|
+
regex: /\\g<[a-zA-Z0-9]*>/
|
4789
|
+
}, {
|
4790
|
+
token: ["constant.language.escape", "regexp.keyword", "constant.language.escape"],
|
4791
|
+
regex: /(\\p{\^?)(Alnum|Alpha|Blank|Cntrl|Digit|Graph|Lower|Print|Punct|Space|Upper|XDigit|Word|ASCII|Any|Assigned|Arabic|Armenian|Balinese|Bengali|Bopomofo|Braille|Buginese|Buhid|Canadian_Aboriginal|Carian|Cham|Cherokee|Common|Coptic|Cuneiform|Cypriot|Cyrillic|Deseret|Devanagari|Ethiopic|Georgian|Glagolitic|Gothic|Greek|Gujarati|Gurmukhi|Han|Hangul|Hanunoo|Hebrew|Hiragana|Inherited|Kannada|Katakana|Kayah_Li|Kharoshthi|Khmer|Lao|Latin|Lepcha|Limbu|Linear_B|Lycian|Lydian|Malayalam|Mongolian|Myanmar|New_Tai_Lue|Nko|Ogham|Ol_Chiki|Old_Italic|Old_Persian|Oriya|Osmanya|Phags_Pa|Phoenician|Rejang|Runic|Saurashtra|Shavian|Sinhala|Sundanese|Syloti_Nagri|Syriac|Tagalog|Tagbanwa|Tai_Le|Tamil|Telugu|Thaana|Thai|Tibetan|Tifinagh|Ugaritic|Vai|Yi|Ll|Lm|Lt|Lu|Lo|Mn|Mc|Me|Nd|Nl|Pc|Pd|Ps|Pe|Pi|Pf|Po|No|Sm|Sc|Sk|So|Zs|Zl|Zp|Cc|Cf|Cn|Co|Cs|N|L|M|P|S|Z|C)(})/
|
4792
|
+
}, {
|
4793
|
+
token: ["constant.language.escape", "invalid", "constant.language.escape"],
|
4794
|
+
regex: /(\\p{\^?)([^/]*)(})/
|
4795
|
+
}, {// escapes
|
4796
|
+
token: "regexp.keyword.operator",
|
4797
|
+
regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"
|
4798
|
+
}, {// flag
|
4799
|
+
token: "string.regexp",
|
4800
|
+
regex: /[/][imxouesn]*/,
|
4801
|
+
next: "start"
|
4802
|
+
}, {// invalid operators
|
4803
|
+
token: "invalid",
|
4804
|
+
regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/
|
4805
|
+
}, {// operators
|
4806
|
+
token: "constant.language.escape",
|
4807
|
+
regex: /\(\?(?:[:=!>]|<'?[a-zA-Z]*'?>|<[=!])|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/
|
4808
|
+
}, {
|
4809
|
+
token: "constant.language.delimiter",
|
4810
|
+
regex: /\|/
|
4811
|
+
}, {
|
4812
|
+
token: "regexp.keyword",
|
4813
|
+
regex: /\[\[:(?:alnum|alpha|blank|cntrl|digit|graph|lower|print|punct|space|upper|xdigit|word|ascii):\]\]/
|
4814
|
+
}, {
|
4815
|
+
token: "constant.language.escape",
|
4816
|
+
regex: /\[\^?/,
|
4817
|
+
push: "regex_character_class"
|
4818
|
+
}, {
|
4819
|
+
defaultToken: "string.regexp"
|
4511
4820
|
}
|
4512
4821
|
],
|
4513
|
-
"
|
4822
|
+
"regex_character_class": [
|
4514
4823
|
{
|
4515
|
-
token
|
4516
|
-
regex
|
4517
|
-
|
4824
|
+
token: "regexp.keyword",
|
4825
|
+
regex: /\\[wWdDhHsS]/
|
4826
|
+
}, {
|
4827
|
+
token: "regexp.charclass.keyword.operator",
|
4828
|
+
regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"
|
4518
4829
|
}, {
|
4519
|
-
token
|
4520
|
-
regex
|
4830
|
+
token: "constant.language.escape",
|
4831
|
+
regex: /&?&?\[\^?/,
|
4832
|
+
push: "regex_character_class"
|
4833
|
+
}, {
|
4834
|
+
token: "constant.language.escape",
|
4835
|
+
regex: "]",
|
4836
|
+
next: "pop"
|
4837
|
+
}, {
|
4838
|
+
token: "constant.language.escape",
|
4839
|
+
regex: "-"
|
4840
|
+
}, {
|
4841
|
+
defaultToken: "string.regexp.characterclass"
|
4521
4842
|
}
|
4522
4843
|
]
|
4523
4844
|
};
|
@@ -4530,7 +4851,271 @@ oop.inherits(RubyHighlightRules, TextHighlightRules);
|
|
4530
4851
|
exports.RubyHighlightRules = RubyHighlightRules;
|
4531
4852
|
});
|
4532
4853
|
|
4533
|
-
define("ace/mode/ruby",["require","exports","module","ace/lib/oop","ace/mode/
|
4854
|
+
define("ace/mode/folding/ruby",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range","ace/token_iterator"], function (require, exports, module) {
|
4855
|
+
"use strict";
|
4856
|
+
|
4857
|
+
var oop = require("../../lib/oop");
|
4858
|
+
var BaseFoldMode = require("./fold_mode").FoldMode;
|
4859
|
+
var Range = require("../../range").Range;
|
4860
|
+
var TokenIterator = require("../../token_iterator").TokenIterator;
|
4861
|
+
|
4862
|
+
|
4863
|
+
var FoldMode = exports.FoldMode = function () {
|
4864
|
+
};
|
4865
|
+
|
4866
|
+
oop.inherits(FoldMode, BaseFoldMode);
|
4867
|
+
|
4868
|
+
(function () {
|
4869
|
+
this.indentKeywords = {
|
4870
|
+
"class": 1,
|
4871
|
+
"def": 1,
|
4872
|
+
"module": 1,
|
4873
|
+
"do": 1,
|
4874
|
+
"unless": 1,
|
4875
|
+
"if": 1,
|
4876
|
+
"while": 1,
|
4877
|
+
"for": 1,
|
4878
|
+
"until": 1,
|
4879
|
+
"begin": 1,
|
4880
|
+
"else": 0,
|
4881
|
+
"elsif": 0,
|
4882
|
+
"rescue": 0,
|
4883
|
+
"ensure": 0,
|
4884
|
+
"when": 0,
|
4885
|
+
"end": -1,
|
4886
|
+
"case": 1,
|
4887
|
+
"=begin": 1,
|
4888
|
+
"=end": -1
|
4889
|
+
};
|
4890
|
+
|
4891
|
+
this.foldingStartMarker = /(?:\s|^)(def|do|while|class|unless|module|if|for|until|begin|else|elsif|case|rescue|ensure|when)\b|({\s*$)|(=begin)/;
|
4892
|
+
this.foldingStopMarker = /(=end(?=$|\s.*$))|(^\s*})|\b(end)\b/;
|
4893
|
+
|
4894
|
+
this.getFoldWidget = function (session, foldStyle, row) {
|
4895
|
+
var line = session.getLine(row);
|
4896
|
+
var isStart = this.foldingStartMarker.test(line);
|
4897
|
+
var isEnd = this.foldingStopMarker.test(line);
|
4898
|
+
|
4899
|
+
if (isStart && !isEnd) {
|
4900
|
+
var match = line.match(this.foldingStartMarker);
|
4901
|
+
if (match[1]) {
|
4902
|
+
if (match[1] == "if" || match[1] == "else" || match[1] == "while" || match[1] == "until" || match[1] == "unless") {
|
4903
|
+
if (match[1] == "else" && /^\s*else\s*$/.test(line) === false) {
|
4904
|
+
return;
|
4905
|
+
}
|
4906
|
+
if (/^\s*(?:if|else|while|until|unless)\s*/.test(line) === false) {
|
4907
|
+
return;
|
4908
|
+
}
|
4909
|
+
}
|
4910
|
+
|
4911
|
+
if (match[1] == "when") {
|
4912
|
+
if (/\sthen\s/.test(line) === true) {
|
4913
|
+
return;
|
4914
|
+
}
|
4915
|
+
}
|
4916
|
+
if (session.getTokenAt(row, match.index + 2).type === "keyword")
|
4917
|
+
return "start";
|
4918
|
+
} else if (match[3]) {
|
4919
|
+
if (session.getTokenAt(row, match.index + 1).type === "comment.multiline")
|
4920
|
+
return "start";
|
4921
|
+
} else {
|
4922
|
+
return "start";
|
4923
|
+
}
|
4924
|
+
}
|
4925
|
+
if (foldStyle != "markbeginend" || !isEnd || isStart && isEnd)
|
4926
|
+
return "";
|
4927
|
+
|
4928
|
+
var match = line.match(this.foldingStopMarker);
|
4929
|
+
if (match[3] === "end") {
|
4930
|
+
if (session.getTokenAt(row, match.index + 1).type === "keyword")
|
4931
|
+
return "end";
|
4932
|
+
} else if (match[1]) {
|
4933
|
+
if (session.getTokenAt(row, match.index + 1).type === "comment.multiline")
|
4934
|
+
return "end";
|
4935
|
+
} else
|
4936
|
+
return "end";
|
4937
|
+
};
|
4938
|
+
|
4939
|
+
this.getFoldWidgetRange = function (session, foldStyle, row) {
|
4940
|
+
var line = session.doc.getLine(row);
|
4941
|
+
var match = this.foldingStartMarker.exec(line);
|
4942
|
+
if (match) {
|
4943
|
+
if (match[1] || match[3])
|
4944
|
+
return this.rubyBlock(session, row, match.index + 2);
|
4945
|
+
|
4946
|
+
return this.openingBracketBlock(session, "{", row, match.index);
|
4947
|
+
}
|
4948
|
+
|
4949
|
+
var match = this.foldingStopMarker.exec(line);
|
4950
|
+
if (match) {
|
4951
|
+
if (match[3] === "end") {
|
4952
|
+
if (session.getTokenAt(row, match.index + 1).type === "keyword")
|
4953
|
+
return this.rubyBlock(session, row, match.index + 1);
|
4954
|
+
}
|
4955
|
+
|
4956
|
+
if (match[1] === "=end") {
|
4957
|
+
if (session.getTokenAt(row, match.index + 1).type === "comment.multiline")
|
4958
|
+
return this.rubyBlock(session, row, match.index + 1);
|
4959
|
+
}
|
4960
|
+
|
4961
|
+
return this.closingBracketBlock(session, "}", row, match.index + match[0].length);
|
4962
|
+
}
|
4963
|
+
};
|
4964
|
+
|
4965
|
+
this.rubyBlock = function (session, row, column, tokenRange) {
|
4966
|
+
var stream = new TokenIterator(session, row, column);
|
4967
|
+
|
4968
|
+
var token = stream.getCurrentToken();
|
4969
|
+
if (!token || (token.type != "keyword" && token.type != "comment.multiline"))
|
4970
|
+
return;
|
4971
|
+
|
4972
|
+
var val = token.value;
|
4973
|
+
var line = session.getLine(row);
|
4974
|
+
switch (token.value) {
|
4975
|
+
case "if":
|
4976
|
+
case "unless":
|
4977
|
+
case "while":
|
4978
|
+
case "until":
|
4979
|
+
var checkToken = new RegExp("^\\s*" + token.value);
|
4980
|
+
if (!checkToken.test(line)) {
|
4981
|
+
return;
|
4982
|
+
}
|
4983
|
+
var dir = this.indentKeywords[val];
|
4984
|
+
break;
|
4985
|
+
case "when":
|
4986
|
+
if (/\sthen\s/.test(line)) {
|
4987
|
+
return;
|
4988
|
+
}
|
4989
|
+
case "elsif":
|
4990
|
+
case "rescue":
|
4991
|
+
case "ensure":
|
4992
|
+
var dir = 1;
|
4993
|
+
break;
|
4994
|
+
case "else":
|
4995
|
+
var checkToken = new RegExp("^\\s*" + token.value + "\\s*$");
|
4996
|
+
if (!checkToken.test(line)) {
|
4997
|
+
return;
|
4998
|
+
}
|
4999
|
+
var dir = 1;
|
5000
|
+
break;
|
5001
|
+
default:
|
5002
|
+
var dir = this.indentKeywords[val];
|
5003
|
+
break;
|
5004
|
+
}
|
5005
|
+
|
5006
|
+
var stack = [val];
|
5007
|
+
if (!dir)
|
5008
|
+
return;
|
5009
|
+
|
5010
|
+
var startColumn = dir === -1 ? session.getLine(row - 1).length : session.getLine(row).length;
|
5011
|
+
var startRow = row;
|
5012
|
+
var ranges = [];
|
5013
|
+
ranges.push(stream.getCurrentTokenRange());
|
5014
|
+
|
5015
|
+
stream.step = dir === -1 ? stream.stepBackward : stream.stepForward;
|
5016
|
+
if (token.type == "comment.multiline") {
|
5017
|
+
while (token = stream.step()) {
|
5018
|
+
if (token.type !== "comment.multiline")
|
5019
|
+
continue;
|
5020
|
+
if (dir == 1) {
|
5021
|
+
startColumn = 6;
|
5022
|
+
if (token.value == "=end") {
|
5023
|
+
break;
|
5024
|
+
}
|
5025
|
+
} else {
|
5026
|
+
if (token.value == "=begin") {
|
5027
|
+
break;
|
5028
|
+
}
|
5029
|
+
}
|
5030
|
+
}
|
5031
|
+
} else {
|
5032
|
+
while (token = stream.step()) {
|
5033
|
+
var ignore = false;
|
5034
|
+
if (token.type !== "keyword")
|
5035
|
+
continue;
|
5036
|
+
var level = dir * this.indentKeywords[token.value];
|
5037
|
+
line = session.getLine(stream.getCurrentTokenRow());
|
5038
|
+
switch (token.value) {
|
5039
|
+
case "do":
|
5040
|
+
for (var i = stream.$tokenIndex - 1; i >= 0; i--) {
|
5041
|
+
var prevToken = stream.$rowTokens[i];
|
5042
|
+
if (prevToken && (prevToken.value == "while" || prevToken.value == "until" || prevToken.value == "for")) {
|
5043
|
+
level = 0;
|
5044
|
+
break;
|
5045
|
+
}
|
5046
|
+
}
|
5047
|
+
break;
|
5048
|
+
case "else":
|
5049
|
+
var checkToken = new RegExp("^\\s*" + token.value + "\\s*$");
|
5050
|
+
if (!checkToken.test(line) || val == "case") {
|
5051
|
+
level = 0;
|
5052
|
+
ignore = true;
|
5053
|
+
}
|
5054
|
+
break;
|
5055
|
+
case "if":
|
5056
|
+
case "unless":
|
5057
|
+
case "while":
|
5058
|
+
case "until":
|
5059
|
+
var checkToken = new RegExp("^\\s*" + token.value);
|
5060
|
+
if (!checkToken.test(line)) {
|
5061
|
+
level = 0;
|
5062
|
+
ignore = true;
|
5063
|
+
}
|
5064
|
+
break;
|
5065
|
+
case "when":
|
5066
|
+
if (/\sthen\s/.test(line) || val == "case") {
|
5067
|
+
level = 0;
|
5068
|
+
ignore = true;
|
5069
|
+
}
|
5070
|
+
break;
|
5071
|
+
}
|
5072
|
+
|
5073
|
+
if (level > 0) {
|
5074
|
+
stack.unshift(token.value);
|
5075
|
+
} else if (level <= 0 && ignore === false) {
|
5076
|
+
stack.shift();
|
5077
|
+
if (!stack.length) {
|
5078
|
+
if ((val == "while" || val == "until" || val == "for") && token.value != "do") {
|
5079
|
+
break;
|
5080
|
+
}
|
5081
|
+
if (token.value == "do" && dir == -1 && level != 0)
|
5082
|
+
break;
|
5083
|
+
if (token.value != "do")
|
5084
|
+
break;
|
5085
|
+
}
|
5086
|
+
|
5087
|
+
if (level === 0) {
|
5088
|
+
stack.unshift(token.value);
|
5089
|
+
}
|
5090
|
+
}
|
5091
|
+
}
|
5092
|
+
}
|
5093
|
+
|
5094
|
+
if (!token)
|
5095
|
+
return null;
|
5096
|
+
|
5097
|
+
if (tokenRange) {
|
5098
|
+
ranges.push(stream.getCurrentTokenRange());
|
5099
|
+
return ranges;
|
5100
|
+
}
|
5101
|
+
|
5102
|
+
var row = stream.getCurrentTokenRow();
|
5103
|
+
if (dir === -1) {
|
5104
|
+
if (token.type === "comment.multiline") {
|
5105
|
+
var endColumn = 6;
|
5106
|
+
} else {
|
5107
|
+
var endColumn = session.getLine(row).length;
|
5108
|
+
}
|
5109
|
+
return new Range(row, endColumn, startRow - 1, startColumn);
|
5110
|
+
} else
|
5111
|
+
return new Range(startRow, startColumn, row - 1, session.getLine(row - 1).length);
|
5112
|
+
};
|
5113
|
+
|
5114
|
+
}).call(FoldMode.prototype);
|
5115
|
+
|
5116
|
+
});
|
5117
|
+
|
5118
|
+
define("ace/mode/ruby",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/ruby_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle","ace/mode/folding/ruby"], function(require, exports, module) {
|
4534
5119
|
"use strict";
|
4535
5120
|
|
4536
5121
|
var oop = require("../lib/oop");
|
@@ -4539,13 +5124,14 @@ var RubyHighlightRules = require("./ruby_highlight_rules").RubyHighlightRules;
|
|
4539
5124
|
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
|
4540
5125
|
var Range = require("../range").Range;
|
4541
5126
|
var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
|
4542
|
-
var FoldMode = require("./folding/
|
5127
|
+
var FoldMode = require("./folding/ruby").FoldMode;
|
4543
5128
|
|
4544
5129
|
var Mode = function() {
|
4545
5130
|
this.HighlightRules = RubyHighlightRules;
|
4546
5131
|
this.$outdent = new MatchingBraceOutdent();
|
4547
5132
|
this.$behaviour = new CstyleBehaviour();
|
4548
5133
|
this.foldingRules = new FoldMode();
|
5134
|
+
this.indentKeywords = this.foldingRules.indentKeywords;
|
4549
5135
|
};
|
4550
5136
|
oop.inherits(Mode, TextMode);
|
4551
5137
|
|
@@ -4560,7 +5146,7 @@ oop.inherits(Mode, TextMode);
|
|
4560
5146
|
var tokenizedLine = this.getTokenizer().getLineTokens(line, state);
|
4561
5147
|
var tokens = tokenizedLine.tokens;
|
4562
5148
|
|
4563
|
-
if (tokens.length && tokens[tokens.length-1].type == "comment") {
|
5149
|
+
if (tokens.length && tokens[tokens.length - 1].type == "comment") {
|
4564
5150
|
return indent;
|
4565
5151
|
}
|
4566
5152
|
|
@@ -4568,7 +5154,7 @@ oop.inherits(Mode, TextMode);
|
|
4568
5154
|
var match = line.match(/^.*[\{\(\[]\s*$/);
|
4569
5155
|
var startingClassOrMethod = line.match(/^\s*(class|def|module)\s.*$/);
|
4570
5156
|
var startingDoBlock = line.match(/.*do(\s*|\s+\|.*\|\s*)$/);
|
4571
|
-
var startingConditional = line.match(/^\s*(if|else|when)\s*/);
|
5157
|
+
var startingConditional = line.match(/^\s*(if|else|when|elsif|unless|while|for|begin|rescue|ensure)\s*/);
|
4572
5158
|
if (match || startingClassOrMethod || startingDoBlock || startingConditional) {
|
4573
5159
|
indent += tab;
|
4574
5160
|
}
|
@@ -4578,7 +5164,7 @@ oop.inherits(Mode, TextMode);
|
|
4578
5164
|
};
|
4579
5165
|
|
4580
5166
|
this.checkOutdent = function(state, line, input) {
|
4581
|
-
return /^\s+(end|else)$/.test(line + input) || this.$outdent.checkOutdent(line, input);
|
5167
|
+
return /^\s+(end|else|rescue|ensure)$/.test(line + input) || this.$outdent.checkOutdent(line, input);
|
4582
5168
|
};
|
4583
5169
|
|
4584
5170
|
this.autoOutdent = function(state, session, row) {
|
@@ -4591,11 +5177,24 @@ oop.inherits(Mode, TextMode);
|
|
4591
5177
|
var tab = session.getTabString();
|
4592
5178
|
if (prevIndent.length <= indent.length) {
|
4593
5179
|
if (indent.slice(-tab.length) == tab)
|
4594
|
-
session.remove(new Range(row, indent.length-tab.length, row, indent.length));
|
5180
|
+
session.remove(new Range(row, indent.length - tab.length, row, indent.length));
|
4595
5181
|
}
|
4596
5182
|
};
|
4597
5183
|
|
5184
|
+
this.getMatching = function(session, row, column) {
|
5185
|
+
if (row == undefined) {
|
5186
|
+
var pos = session.selection.lead;
|
5187
|
+
column = pos.column;
|
5188
|
+
row = pos.row;
|
5189
|
+
}
|
5190
|
+
|
5191
|
+
var startToken = session.getTokenAt(row, column);
|
5192
|
+
if (startToken && startToken.value in this.indentKeywords)
|
5193
|
+
return this.foldingRules.rubyBlock(session, row, column, true);
|
5194
|
+
};
|
5195
|
+
|
4598
5196
|
this.$id = "ace/mode/ruby";
|
5197
|
+
this.snippetFileId = "ace/snippets/ruby";
|
4599
5198
|
}).call(Mode.prototype);
|
4600
5199
|
|
4601
5200
|
exports.Mode = Mode;
|