ace-rails-ap 2.0.1 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +5 -4
- data/lib/ace/rails/version.rb +1 -1
- data/vendor/assets/javascripts/ace/ace.js +14194 -13349
- data/vendor/assets/javascripts/ace/ext-beautify.js +335 -0
- data/vendor/assets/javascripts/ace/ext-chromevox.js +6 -1
- data/vendor/assets/javascripts/ace/ext-elastic_tabstops_lite.js +8 -33
- data/vendor/assets/javascripts/ace/ext-emmet.js +487 -424
- data/vendor/assets/javascripts/ace/ext-error_marker.js +6 -0
- data/vendor/assets/javascripts/ace/ext-keybinding_menu.js +45 -72
- data/vendor/assets/javascripts/ace/ext-language_tools.js +734 -578
- data/vendor/assets/javascripts/ace/ext-linking.js +53 -0
- data/vendor/assets/javascripts/ace/ext-modelist.js +25 -10
- data/vendor/assets/javascripts/ace/ext-old_ie.js +93 -120
- data/vendor/assets/javascripts/ace/ext-searchbox.js +8 -41
- data/vendor/assets/javascripts/ace/ext-settings_menu.js +229 -234
- data/vendor/assets/javascripts/ace/ext-spellcheck.js +7 -3
- data/vendor/assets/javascripts/ace/ext-split.js +13 -37
- data/vendor/assets/javascripts/ace/ext-static_highlight.js +16 -39
- data/vendor/assets/javascripts/ace/ext-statusbar.js +8 -2
- data/vendor/assets/javascripts/ace/ext-textarea.js +254 -99
- data/vendor/assets/javascripts/ace/ext-themelist.js +13 -40
- data/vendor/assets/javascripts/ace/ext-whitespace.js +17 -41
- data/vendor/assets/javascripts/ace/keybinding-emacs.js +803 -788
- data/vendor/assets/javascripts/ace/keybinding-vim.js +1559 -1560
- data/vendor/assets/javascripts/ace/mode-abap.js +52 -83
- data/vendor/assets/javascripts/ace/mode-actionscript.js +27 -63
- data/vendor/assets/javascripts/ace/mode-ada.js +27 -58
- data/vendor/assets/javascripts/ace/mode-apache_conf.js +310 -0
- data/vendor/assets/javascripts/ace/mode-applescript.js +226 -0
- data/vendor/assets/javascripts/ace/mode-asciidoc.js +39 -70
- data/vendor/assets/javascripts/ace/mode-assembly_x86.js +26 -58
- data/vendor/assets/javascripts/ace/mode-autohotkey.js +27 -63
- data/vendor/assets/javascripts/ace/mode-batchfile.js +27 -63
- data/vendor/assets/javascripts/ace/mode-c9search.js +92 -112
- data/vendor/assets/javascripts/ace/mode-c_cpp.js +224 -223
- data/vendor/assets/javascripts/ace/mode-cirru.js +202 -0
- data/vendor/assets/javascripts/ace/mode-clojure.js +98 -92
- data/vendor/assets/javascripts/ace/mode-cobol.js +27 -58
- data/vendor/assets/javascripts/ace/mode-coffee.js +90 -122
- data/vendor/assets/javascripts/ace/mode-coldfusion.js +1908 -1464
- data/vendor/assets/javascripts/ace/mode-csharp.js +291 -264
- data/vendor/assets/javascripts/ace/mode-css.js +266 -267
- data/vendor/assets/javascripts/ace/mode-curly.js +796 -815
- data/vendor/assets/javascripts/ace/mode-d.js +64 -95
- data/vendor/assets/javascripts/ace/mode-dart.js +254 -256
- data/vendor/assets/javascripts/ace/mode-diff.js +27 -58
- data/vendor/assets/javascripts/ace/mode-django.js +856 -866
- data/vendor/assets/javascripts/ace/mode-dockerfile.js +759 -0
- data/vendor/assets/javascripts/ace/mode-dot.js +106 -106
- data/vendor/assets/javascripts/ace/mode-eiffel.js +135 -0
- data/vendor/assets/javascripts/ace/mode-ejs.js +931 -938
- data/vendor/assets/javascripts/ace/mode-erlang.js +27 -58
- data/vendor/assets/javascripts/ace/mode-forth.js +27 -63
- data/vendor/assets/javascripts/ace/mode-ftl.js +457 -508
- data/vendor/assets/javascripts/ace/mode-gcode.js +85 -0
- data/vendor/assets/javascripts/ace/mode-gherkin.js +129 -0
- data/vendor/assets/javascripts/ace/mode-gitignore.js +50 -0
- data/vendor/assets/javascripts/ace/mode-glsl.js +252 -248
- data/vendor/assets/javascripts/ace/mode-golang.js +206 -179
- data/vendor/assets/javascripts/ace/mode-groovy.js +310 -242
- data/vendor/assets/javascripts/ace/mode-haml.js +156 -190
- data/vendor/assets/javascripts/ace/mode-handlebars.js +815 -784
- data/vendor/assets/javascripts/ace/mode-haskell.js +27 -63
- data/vendor/assets/javascripts/ace/mode-haxe.js +206 -176
- data/vendor/assets/javascripts/ace/mode-html.js +779 -792
- data/vendor/assets/javascripts/ace/mode-html_ruby.js +916 -923
- data/vendor/assets/javascripts/ace/mode-ini.js +27 -58
- data/vendor/assets/javascripts/ace/mode-io.js +201 -0
- data/vendor/assets/javascripts/ace/mode-jack.js +169 -170
- data/vendor/assets/javascripts/ace/mode-jade.js +722 -774
- data/vendor/assets/javascripts/ace/mode-java.js +310 -245
- data/vendor/assets/javascripts/ace/mode-javascript.js +285 -247
- data/vendor/assets/javascripts/ace/mode-json.js +183 -184
- data/vendor/assets/javascripts/ace/mode-jsoniq.js +3211 -1274
- data/vendor/assets/javascripts/ace/mode-jsp.js +481 -504
- data/vendor/assets/javascripts/ace/mode-jsx.js +206 -176
- data/vendor/assets/javascripts/ace/mode-julia.js +33 -69
- data/vendor/assets/javascripts/ace/mode-latex.js +74 -41
- data/vendor/assets/javascripts/ace/mode-less.js +250 -251
- data/vendor/assets/javascripts/ace/mode-liquid.js +424 -475
- data/vendor/assets/javascripts/ace/mode-lisp.js +24 -57
- data/vendor/assets/javascripts/ace/mode-livescript.js +42 -41
- data/vendor/assets/javascripts/ace/mode-logiql.js +229 -230
- data/vendor/assets/javascripts/ace/mode-lsl.js +200 -441
- data/vendor/assets/javascripts/ace/mode-lua.js +136 -167
- data/vendor/assets/javascripts/ace/mode-luapage.js +904 -884
- data/vendor/assets/javascripts/ace/mode-lucene.js +22 -17
- data/vendor/assets/javascripts/ace/mode-makefile.js +162 -137
- data/vendor/assets/javascripts/ace/mode-markdown.js +846 -854
- data/vendor/assets/javascripts/ace/mode-matlab.js +98 -72
- data/vendor/assets/javascripts/ace/mode-mel.js +569 -0
- data/vendor/assets/javascripts/ace/mode-mushcode.js +84 -115
- data/vendor/assets/javascripts/ace/mode-mysql.js +49 -80
- data/vendor/assets/javascripts/ace/mode-nix.js +252 -256
- data/vendor/assets/javascripts/ace/mode-objectivec.js +242 -274
- data/vendor/assets/javascripts/ace/mode-ocaml.js +71 -102
- data/vendor/assets/javascripts/ace/mode-pascal.js +32 -68
- data/vendor/assets/javascripts/ace/mode-perl.js +67 -98
- data/vendor/assets/javascripts/ace/mode-pgsql.js +990 -982
- data/vendor/assets/javascripts/ace/mode-php.js +1878 -1900
- data/vendor/assets/javascripts/ace/mode-plain_text.js +3 -34
- data/vendor/assets/javascripts/ace/mode-powershell.js +181 -151
- data/vendor/assets/javascripts/ace/mode-praat.js +418 -0
- data/vendor/assets/javascripts/ace/mode-prolog.js +27 -63
- data/vendor/assets/javascripts/ace/mode-properties.js +20 -48
- data/vendor/assets/javascripts/ace/mode-protobuf.js +252 -259
- data/vendor/assets/javascripts/ace/mode-python.js +84 -115
- data/vendor/assets/javascripts/ace/mode-r.js +105 -140
- data/vendor/assets/javascripts/ace/mode-rdoc.js +84 -89
- data/vendor/assets/javascripts/ace/mode-rhtml.js +892 -908
- data/vendor/assets/javascripts/ace/mode-ruby.js +434 -98
- data/vendor/assets/javascripts/ace/mode-rust.js +27 -63
- data/vendor/assets/javascripts/ace/mode-sass.js +75 -106
- data/vendor/assets/javascripts/ace/mode-scad.js +219 -220
- data/vendor/assets/javascripts/ace/mode-scala.js +311 -243
- data/vendor/assets/javascripts/ace/mode-scheme.js +24 -60
- data/vendor/assets/javascripts/ace/mode-scss.js +250 -251
- data/vendor/assets/javascripts/ace/mode-sh.js +506 -118
- data/vendor/assets/javascripts/ace/mode-sjs.js +314 -280
- data/vendor/assets/javascripts/ace/mode-smarty.js +2474 -0
- data/vendor/assets/javascripts/ace/mode-snippets.js +89 -89
- data/vendor/assets/javascripts/ace/mode-soy_template.js +792 -811
- data/vendor/assets/javascripts/ace/mode-space.js +22 -23
- data/vendor/assets/javascripts/ace/mode-sql.js +31 -58
- data/vendor/assets/javascripts/ace/mode-stylus.js +161 -197
- data/vendor/assets/javascripts/ace/mode-svg.js +906 -836
- data/vendor/assets/javascripts/ace/mode-tcl.js +61 -92
- data/vendor/assets/javascripts/ace/mode-tex.js +36 -73
- data/vendor/assets/javascripts/ace/mode-text.js +1 -0
- data/vendor/assets/javascripts/ace/mode-textile.js +41 -72
- data/vendor/assets/javascripts/ace/mode-toml.js +26 -62
- data/vendor/assets/javascripts/ace/mode-twig.js +1196 -892
- data/vendor/assets/javascripts/ace/mode-typescript.js +313 -277
- data/vendor/assets/javascripts/ace/mode-vala.js +982 -0
- data/vendor/assets/javascripts/ace/mode-vbscript.js +25 -62
- data/vendor/assets/javascripts/ace/mode-velocity.js +2251 -1242
- data/vendor/assets/javascripts/ace/mode-verilog.js +27 -59
- data/vendor/assets/javascripts/ace/mode-vhdl.js +26 -55
- data/vendor/assets/javascripts/ace/mode-xml.js +319 -644
- data/vendor/assets/javascripts/ace/mode-xquery.js +2503 -588
- data/vendor/assets/javascripts/ace/mode-yaml.js +56 -90
- data/vendor/assets/javascripts/ace/snippets/abap.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/actionscript.js +159 -0
- data/vendor/assets/javascripts/ace/snippets/ada.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/apache_conf.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/applescript.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/asciidoc.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/assembly_x86.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/autohotkey.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/batchfile.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/c9search.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/c_cpp.js +138 -0
- data/vendor/assets/javascripts/ace/snippets/cirru.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/clojure.js +97 -0
- data/vendor/assets/javascripts/ace/snippets/cobol.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/coffee.js +102 -0
- data/vendor/assets/javascripts/ace/snippets/coldfusion.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/csharp.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/css.js +974 -0
- data/vendor/assets/javascripts/ace/snippets/curly.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/d.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/dart.js +90 -0
- data/vendor/assets/javascripts/ace/snippets/diff.js +18 -0
- data/vendor/assets/javascripts/ace/snippets/django.js +115 -0
- data/vendor/assets/javascripts/ace/snippets/dockerfile.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/dot.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/eiffel.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/ejs.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/erlang.js +167 -0
- data/vendor/assets/javascripts/ace/snippets/forth.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/ftl.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/gcode.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/gherkin.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/gitignore.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/glsl.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/golang.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/groovy.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/haml.js +27 -0
- data/vendor/assets/javascripts/ace/snippets/handlebars.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/haskell.js +89 -0
- data/vendor/assets/javascripts/ace/snippets/haxe.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/html.js +835 -0
- data/vendor/assets/javascripts/ace/snippets/html_ruby.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/ini.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/io.js +69 -0
- data/vendor/assets/javascripts/ace/snippets/jack.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/jade.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/java.js +241 -0
- data/vendor/assets/javascripts/ace/snippets/javascript.js +189 -0
- data/vendor/assets/javascripts/ace/snippets/json.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/jsoniq.js +68 -0
- data/vendor/assets/javascripts/ace/snippets/jsp.js +106 -0
- data/vendor/assets/javascripts/ace/snippets/jsx.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/julia.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/latex.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/less.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/liquid.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/lisp.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/livescript.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/logiql.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/lsl.js +1073 -0
- data/vendor/assets/javascripts/ace/snippets/lua.js +28 -0
- data/vendor/assets/javascripts/ace/snippets/luapage.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/lucene.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/makefile.js +11 -0
- data/vendor/assets/javascripts/ace/snippets/markdown.js +95 -0
- data/vendor/assets/javascripts/ace/snippets/matlab.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/mel.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/mushcode.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/mysql.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/nix.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/objectivec.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/ocaml.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/pascal.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/perl.js +354 -0
- data/vendor/assets/javascripts/ace/snippets/pgsql.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/php.js +283 -0
- data/vendor/assets/javascripts/ace/snippets/plain_text.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/powershell.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/praat.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/prolog.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/properties.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/protobuf.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/python.js +165 -0
- data/vendor/assets/javascripts/ace/snippets/r.js +128 -0
- data/vendor/assets/javascripts/ace/snippets/rdoc.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/rhtml.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/ruby.js +935 -0
- data/vendor/assets/javascripts/ace/snippets/rust.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/sass.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/scad.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/scala.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/scheme.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/scss.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/sh.js +90 -0
- data/vendor/assets/javascripts/ace/snippets/sjs.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/smarty.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/snippets.js +16 -0
- data/vendor/assets/javascripts/ace/snippets/soy_template.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/space.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/sql.js +33 -0
- data/vendor/assets/javascripts/ace/snippets/stylus.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/svg.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/tcl.js +99 -0
- data/vendor/assets/javascripts/ace/snippets/tex.js +197 -0
- data/vendor/assets/javascripts/ace/snippets/text.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/textile.js +37 -0
- data/vendor/assets/javascripts/ace/snippets/toml.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/twig.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/typescript.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/vala.js +193 -0
- data/vendor/assets/javascripts/ace/snippets/vbscript.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/velocity.js +36 -0
- data/vendor/assets/javascripts/ace/snippets/verilog.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/vhdl.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/xml.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/xquery.js +68 -0
- data/vendor/assets/javascripts/ace/snippets/yaml.js +7 -0
- data/vendor/assets/javascripts/ace/theme-ambiance.js +4 -24
- data/vendor/assets/javascripts/ace/theme-chaos.js +2 -25
- data/vendor/assets/javascripts/ace/theme-chrome.js +2 -31
- data/vendor/assets/javascripts/ace/theme-clouds.js +1 -31
- data/vendor/assets/javascripts/ace/theme-clouds_midnight.js +1 -31
- data/vendor/assets/javascripts/ace/theme-cobalt.js +1 -31
- data/vendor/assets/javascripts/ace/theme-crimson_editor.js +1 -31
- data/vendor/assets/javascripts/ace/theme-dawn.js +1 -31
- data/vendor/assets/javascripts/ace/theme-dreamweaver.js +5 -31
- data/vendor/assets/javascripts/ace/theme-eclipse.js +7 -33
- data/vendor/assets/javascripts/ace/theme-github.js +2 -35
- data/vendor/assets/javascripts/ace/theme-idle_fingers.js +1 -31
- data/vendor/assets/javascripts/ace/theme-katzenmilch.js +119 -0
- data/vendor/assets/javascripts/ace/theme-kr.js +1 -31
- data/vendor/assets/javascripts/ace/theme-kr_theme.js +57 -141
- data/vendor/assets/javascripts/ace/theme-kuroir.js +59 -0
- data/vendor/assets/javascripts/ace/theme-merbivore.js +1 -31
- data/vendor/assets/javascripts/ace/theme-merbivore_soft.js +1 -31
- data/vendor/assets/javascripts/ace/theme-mono_industrial.js +1 -31
- data/vendor/assets/javascripts/ace/theme-monokai.js +1 -31
- data/vendor/assets/javascripts/ace/theme-pastel_on_dark.js +1 -31
- data/vendor/assets/javascripts/ace/theme-solarized_dark.js +1 -31
- data/vendor/assets/javascripts/ace/theme-solarized_light.js +1 -31
- data/vendor/assets/javascripts/ace/theme-terminal.js +1 -31
- data/vendor/assets/javascripts/ace/theme-textmate.js +3 -32
- data/vendor/assets/javascripts/ace/theme-tomorrow.js +1 -31
- data/vendor/assets/javascripts/ace/theme-tomorrow_night.js +1 -31
- data/vendor/assets/javascripts/ace/theme-tomorrow_night_blue.js +1 -31
- data/vendor/assets/javascripts/ace/theme-tomorrow_night_bright.js +1 -31
- data/vendor/assets/javascripts/ace/theme-tomorrow_night_eighties.js +1 -31
- data/vendor/assets/javascripts/ace/theme-twilight.js +1 -31
- data/vendor/assets/javascripts/ace/theme-vibrant_ink.js +1 -31
- data/vendor/assets/javascripts/ace/theme-xcode.js +2 -33
- data/vendor/assets/javascripts/ace/worker-coffee.js +5026 -5008
- data/vendor/assets/javascripts/ace/worker-css.js +5489 -5134
- data/vendor/assets/javascripts/ace/worker-html.js +11517 -0
- data/vendor/assets/javascripts/ace/worker-javascript.js +9810 -9501
- data/vendor/assets/javascripts/ace/worker-json.js +1583 -1564
- data/vendor/assets/javascripts/ace/worker-lua.js +2631 -2612
- data/vendor/assets/javascripts/ace/worker-php.js +2385 -2341
- data/vendor/assets/javascripts/ace/worker-xquery.js +31643 -3993
- metadata +147 -11
|
@@ -1,167 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
*
|
|
4
|
-
* Copyright (c) 2010, Ajax.org B.V.
|
|
5
|
-
* All rights reserved.
|
|
6
|
-
*
|
|
7
|
-
* Redistribution and use in source and binary forms, with or without
|
|
8
|
-
* modification, are permitted provided that the following conditions are met:
|
|
9
|
-
* * Redistributions of source code must retain the above copyright
|
|
10
|
-
* notice, this list of conditions and the following disclaimer.
|
|
11
|
-
* * Redistributions in binary form must reproduce the above copyright
|
|
12
|
-
* notice, this list of conditions and the following disclaimer in the
|
|
13
|
-
* documentation and/or other materials provided with the distribution.
|
|
14
|
-
* * Neither the name of Ajax.org B.V. nor the
|
|
15
|
-
* names of its contributors may be used to endorse or promote products
|
|
16
|
-
* derived from this software without specific prior written permission.
|
|
17
|
-
*
|
|
18
|
-
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
19
|
-
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
20
|
-
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
21
|
-
* DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY
|
|
22
|
-
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
23
|
-
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
24
|
-
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
25
|
-
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
26
|
-
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
27
|
-
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
28
|
-
*
|
|
29
|
-
* ***** END LICENSE BLOCK ***** */
|
|
30
|
-
|
|
31
|
-
define('ace/mode/lua', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/lua_highlight_rules', 'ace/mode/folding/lua', 'ace/range', 'ace/worker/worker_client'], function(require, exports, module) {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
var oop = require("../lib/oop");
|
|
35
|
-
var TextMode = require("./text").Mode;
|
|
36
|
-
var Tokenizer = require("../tokenizer").Tokenizer;
|
|
37
|
-
var LuaHighlightRules = require("./lua_highlight_rules").LuaHighlightRules;
|
|
38
|
-
var LuaFoldMode = require("./folding/lua").FoldMode;
|
|
39
|
-
var Range = require("../range").Range;
|
|
40
|
-
var WorkerClient = require("../worker/worker_client").WorkerClient;
|
|
41
|
-
|
|
42
|
-
var Mode = function() {
|
|
43
|
-
this.HighlightRules = LuaHighlightRules;
|
|
44
|
-
|
|
45
|
-
this.foldingRules = new LuaFoldMode();
|
|
46
|
-
};
|
|
47
|
-
oop.inherits(Mode, TextMode);
|
|
48
|
-
|
|
49
|
-
(function() {
|
|
50
|
-
|
|
51
|
-
this.lineCommentStart = "--";
|
|
52
|
-
this.blockComment = {start: "--[", end: "]--"};
|
|
53
|
-
|
|
54
|
-
var indentKeywords = {
|
|
55
|
-
"function": 1,
|
|
56
|
-
"then": 1,
|
|
57
|
-
"do": 1,
|
|
58
|
-
"else": 1,
|
|
59
|
-
"elseif": 1,
|
|
60
|
-
"repeat": 1,
|
|
61
|
-
"end": -1,
|
|
62
|
-
"until": -1
|
|
63
|
-
};
|
|
64
|
-
var outdentKeywords = [
|
|
65
|
-
"else",
|
|
66
|
-
"elseif",
|
|
67
|
-
"end",
|
|
68
|
-
"until"
|
|
69
|
-
];
|
|
70
|
-
|
|
71
|
-
function getNetIndentLevel(tokens) {
|
|
72
|
-
var level = 0;
|
|
73
|
-
for (var i = 0; i < tokens.length; i++) {
|
|
74
|
-
var token = tokens[i];
|
|
75
|
-
if (token.type == "keyword") {
|
|
76
|
-
if (token.value in indentKeywords) {
|
|
77
|
-
level += indentKeywords[token.value];
|
|
78
|
-
}
|
|
79
|
-
} else if (token.type == "paren.lparen") {
|
|
80
|
-
level ++;
|
|
81
|
-
} else if (token.type == "paren.rparen") {
|
|
82
|
-
level --;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
if (level < 0) {
|
|
86
|
-
return -1;
|
|
87
|
-
} else if (level > 0) {
|
|
88
|
-
return 1;
|
|
89
|
-
} else {
|
|
90
|
-
return 0;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
this.getNextLineIndent = function(state, line, tab) {
|
|
95
|
-
var indent = this.$getIndent(line);
|
|
96
|
-
var level = 0;
|
|
97
|
-
|
|
98
|
-
var tokenizedLine = this.getTokenizer().getLineTokens(line, state);
|
|
99
|
-
var tokens = tokenizedLine.tokens;
|
|
100
|
-
|
|
101
|
-
if (state == "start") {
|
|
102
|
-
level = getNetIndentLevel(tokens);
|
|
103
|
-
}
|
|
104
|
-
if (level > 0) {
|
|
105
|
-
return indent + tab;
|
|
106
|
-
} else if (level < 0 && indent.substr(indent.length - tab.length) == tab) {
|
|
107
|
-
if (!this.checkOutdent(state, line, "\n")) {
|
|
108
|
-
return indent.substr(0, indent.length - tab.length);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
return indent;
|
|
112
|
-
};
|
|
113
|
-
|
|
114
|
-
this.checkOutdent = function(state, line, input) {
|
|
115
|
-
if (input != "\n" && input != "\r" && input != "\r\n")
|
|
116
|
-
return false;
|
|
117
|
-
|
|
118
|
-
if (line.match(/^\s*[\)\}\]]$/))
|
|
119
|
-
return true;
|
|
120
|
-
|
|
121
|
-
var tokens = this.getTokenizer().getLineTokens(line.trim(), state).tokens;
|
|
122
|
-
|
|
123
|
-
if (!tokens || !tokens.length)
|
|
124
|
-
return false;
|
|
125
|
-
|
|
126
|
-
return (tokens[0].type == "keyword" && outdentKeywords.indexOf(tokens[0].value) != -1);
|
|
127
|
-
};
|
|
128
|
-
|
|
129
|
-
this.autoOutdent = function(state, session, row) {
|
|
130
|
-
var prevLine = session.getLine(row - 1);
|
|
131
|
-
var prevIndent = this.$getIndent(prevLine).length;
|
|
132
|
-
var prevTokens = this.getTokenizer().getLineTokens(prevLine, "start").tokens;
|
|
133
|
-
var tabLength = session.getTabString().length;
|
|
134
|
-
var expectedIndent = prevIndent + tabLength * getNetIndentLevel(prevTokens);
|
|
135
|
-
var curIndent = this.$getIndent(session.getLine(row)).length;
|
|
136
|
-
if (curIndent < expectedIndent) {
|
|
137
|
-
return;
|
|
138
|
-
}
|
|
139
|
-
session.outdentRows(new Range(row, 0, row + 2, 0));
|
|
140
|
-
};
|
|
141
|
-
|
|
142
|
-
this.createWorker = function(session) {
|
|
143
|
-
var worker = new WorkerClient(["ace"], "ace/mode/lua_worker", "Worker");
|
|
144
|
-
worker.attachToDocument(session.getDocument());
|
|
145
|
-
|
|
146
|
-
worker.on("error", function(e) {
|
|
147
|
-
session.setAnnotations([e.data]);
|
|
148
|
-
});
|
|
149
|
-
|
|
150
|
-
worker.on("ok", function(e) {
|
|
151
|
-
session.clearAnnotations();
|
|
152
|
-
});
|
|
153
|
-
|
|
154
|
-
return worker;
|
|
155
|
-
};
|
|
156
|
-
|
|
157
|
-
this.$id = "ace/mode/lua";
|
|
158
|
-
}).call(Mode.prototype);
|
|
159
|
-
|
|
160
|
-
exports.Mode = Mode;
|
|
161
|
-
});
|
|
162
|
-
|
|
163
|
-
define('ace/mode/lua_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) {
|
|
164
|
-
|
|
1
|
+
define("ace/mode/lua_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) {
|
|
2
|
+
"use strict";
|
|
165
3
|
|
|
166
4
|
var oop = require("../lib/oop");
|
|
167
5
|
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
|
|
@@ -213,7 +51,7 @@ var LuaHighlightRules = function() {
|
|
|
213
51
|
"constant.library": stdLibaries,
|
|
214
52
|
"constant.language": builtinConstants,
|
|
215
53
|
"invalid.illegal": futureReserved,
|
|
216
|
-
"variable.language": "
|
|
54
|
+
"variable.language": "self"
|
|
217
55
|
}, "identifier");
|
|
218
56
|
|
|
219
57
|
var decimalInteger = "(?:(?:[1-9]\\d*)|(?:0))";
|
|
@@ -322,8 +160,8 @@ oop.inherits(LuaHighlightRules, TextHighlightRules);
|
|
|
322
160
|
exports.LuaHighlightRules = LuaHighlightRules;
|
|
323
161
|
});
|
|
324
162
|
|
|
325
|
-
define(
|
|
326
|
-
|
|
163
|
+
define("ace/mode/folding/lua",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range","ace/token_iterator"], function(require, exports, module) {
|
|
164
|
+
"use strict";
|
|
327
165
|
|
|
328
166
|
var oop = require("../../lib/oop");
|
|
329
167
|
var BaseFoldMode = require("./fold_mode").FoldMode;
|
|
@@ -455,3 +293,134 @@ oop.inherits(FoldMode, BaseFoldMode);
|
|
|
455
293
|
}).call(FoldMode.prototype);
|
|
456
294
|
|
|
457
295
|
});
|
|
296
|
+
|
|
297
|
+
define("ace/mode/lua",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/lua_highlight_rules","ace/mode/folding/lua","ace/range","ace/worker/worker_client"], function(require, exports, module) {
|
|
298
|
+
"use strict";
|
|
299
|
+
|
|
300
|
+
var oop = require("../lib/oop");
|
|
301
|
+
var TextMode = require("./text").Mode;
|
|
302
|
+
var LuaHighlightRules = require("./lua_highlight_rules").LuaHighlightRules;
|
|
303
|
+
var LuaFoldMode = require("./folding/lua").FoldMode;
|
|
304
|
+
var Range = require("../range").Range;
|
|
305
|
+
var WorkerClient = require("../worker/worker_client").WorkerClient;
|
|
306
|
+
|
|
307
|
+
var Mode = function() {
|
|
308
|
+
this.HighlightRules = LuaHighlightRules;
|
|
309
|
+
|
|
310
|
+
this.foldingRules = new LuaFoldMode();
|
|
311
|
+
};
|
|
312
|
+
oop.inherits(Mode, TextMode);
|
|
313
|
+
|
|
314
|
+
(function() {
|
|
315
|
+
|
|
316
|
+
this.lineCommentStart = "--";
|
|
317
|
+
this.blockComment = {start: "--[", end: "]--"};
|
|
318
|
+
|
|
319
|
+
var indentKeywords = {
|
|
320
|
+
"function": 1,
|
|
321
|
+
"then": 1,
|
|
322
|
+
"do": 1,
|
|
323
|
+
"else": 1,
|
|
324
|
+
"elseif": 1,
|
|
325
|
+
"repeat": 1,
|
|
326
|
+
"end": -1,
|
|
327
|
+
"until": -1
|
|
328
|
+
};
|
|
329
|
+
var outdentKeywords = [
|
|
330
|
+
"else",
|
|
331
|
+
"elseif",
|
|
332
|
+
"end",
|
|
333
|
+
"until"
|
|
334
|
+
];
|
|
335
|
+
|
|
336
|
+
function getNetIndentLevel(tokens) {
|
|
337
|
+
var level = 0;
|
|
338
|
+
for (var i = 0; i < tokens.length; i++) {
|
|
339
|
+
var token = tokens[i];
|
|
340
|
+
if (token.type == "keyword") {
|
|
341
|
+
if (token.value in indentKeywords) {
|
|
342
|
+
level += indentKeywords[token.value];
|
|
343
|
+
}
|
|
344
|
+
} else if (token.type == "paren.lparen") {
|
|
345
|
+
level ++;
|
|
346
|
+
} else if (token.type == "paren.rparen") {
|
|
347
|
+
level --;
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
if (level < 0) {
|
|
351
|
+
return -1;
|
|
352
|
+
} else if (level > 0) {
|
|
353
|
+
return 1;
|
|
354
|
+
} else {
|
|
355
|
+
return 0;
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
this.getNextLineIndent = function(state, line, tab) {
|
|
360
|
+
var indent = this.$getIndent(line);
|
|
361
|
+
var level = 0;
|
|
362
|
+
|
|
363
|
+
var tokenizedLine = this.getTokenizer().getLineTokens(line, state);
|
|
364
|
+
var tokens = tokenizedLine.tokens;
|
|
365
|
+
|
|
366
|
+
if (state == "start") {
|
|
367
|
+
level = getNetIndentLevel(tokens);
|
|
368
|
+
}
|
|
369
|
+
if (level > 0) {
|
|
370
|
+
return indent + tab;
|
|
371
|
+
} else if (level < 0 && indent.substr(indent.length - tab.length) == tab) {
|
|
372
|
+
if (!this.checkOutdent(state, line, "\n")) {
|
|
373
|
+
return indent.substr(0, indent.length - tab.length);
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
return indent;
|
|
377
|
+
};
|
|
378
|
+
|
|
379
|
+
this.checkOutdent = function(state, line, input) {
|
|
380
|
+
if (input != "\n" && input != "\r" && input != "\r\n")
|
|
381
|
+
return false;
|
|
382
|
+
|
|
383
|
+
if (line.match(/^\s*[\)\}\]]$/))
|
|
384
|
+
return true;
|
|
385
|
+
|
|
386
|
+
var tokens = this.getTokenizer().getLineTokens(line.trim(), state).tokens;
|
|
387
|
+
|
|
388
|
+
if (!tokens || !tokens.length)
|
|
389
|
+
return false;
|
|
390
|
+
|
|
391
|
+
return (tokens[0].type == "keyword" && outdentKeywords.indexOf(tokens[0].value) != -1);
|
|
392
|
+
};
|
|
393
|
+
|
|
394
|
+
this.autoOutdent = function(state, session, row) {
|
|
395
|
+
var prevLine = session.getLine(row - 1);
|
|
396
|
+
var prevIndent = this.$getIndent(prevLine).length;
|
|
397
|
+
var prevTokens = this.getTokenizer().getLineTokens(prevLine, "start").tokens;
|
|
398
|
+
var tabLength = session.getTabString().length;
|
|
399
|
+
var expectedIndent = prevIndent + tabLength * getNetIndentLevel(prevTokens);
|
|
400
|
+
var curIndent = this.$getIndent(session.getLine(row)).length;
|
|
401
|
+
if (curIndent < expectedIndent) {
|
|
402
|
+
return;
|
|
403
|
+
}
|
|
404
|
+
session.outdentRows(new Range(row, 0, row + 2, 0));
|
|
405
|
+
};
|
|
406
|
+
|
|
407
|
+
this.createWorker = function(session) {
|
|
408
|
+
var worker = new WorkerClient(["ace"], "ace/mode/lua_worker", "Worker");
|
|
409
|
+
worker.attachToDocument(session.getDocument());
|
|
410
|
+
|
|
411
|
+
worker.on("error", function(e) {
|
|
412
|
+
session.setAnnotations([e.data]);
|
|
413
|
+
});
|
|
414
|
+
|
|
415
|
+
worker.on("ok", function(e) {
|
|
416
|
+
session.clearAnnotations();
|
|
417
|
+
});
|
|
418
|
+
|
|
419
|
+
return worker;
|
|
420
|
+
};
|
|
421
|
+
|
|
422
|
+
this.$id = "ace/mode/lua";
|
|
423
|
+
}).call(Mode.prototype);
|
|
424
|
+
|
|
425
|
+
exports.Mode = Mode;
|
|
426
|
+
});
|
|
@@ -1,170 +1,55 @@
|
|
|
1
|
-
define(
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var oop = require("../lib/oop");
|
|
5
|
-
var HtmlMode = require("./html").Mode;
|
|
6
|
-
var LuaMode = require("./lua").Mode;
|
|
7
|
-
var Tokenizer = require("../tokenizer").Tokenizer;
|
|
8
|
-
var LuaPageHighlightRules = require("./luapage_highlight_rules").LuaPageHighlightRules;
|
|
9
|
-
|
|
10
|
-
var Mode = function() {
|
|
11
|
-
this.HighlightRules = LuaPageHighlightRules;
|
|
12
|
-
|
|
13
|
-
this.HighlightRules = LuaPageHighlightRules;
|
|
14
|
-
this.createModeDelegates({
|
|
15
|
-
"lua-": LuaMode
|
|
16
|
-
});
|
|
17
|
-
};
|
|
18
|
-
oop.inherits(Mode, HtmlMode);
|
|
19
|
-
|
|
20
|
-
exports.Mode = Mode;
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
define('ace/mode/html', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/mode/javascript', 'ace/mode/css', 'ace/tokenizer', 'ace/mode/html_highlight_rules', 'ace/mode/behaviour/html', 'ace/mode/folding/html', 'ace/mode/html_completions'], function(require, exports, module) {
|
|
24
|
-
|
|
1
|
+
define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) {
|
|
2
|
+
"use strict";
|
|
25
3
|
|
|
26
4
|
var oop = require("../lib/oop");
|
|
27
|
-
var
|
|
28
|
-
var JavaScriptMode = require("./javascript").Mode;
|
|
29
|
-
var CssMode = require("./css").Mode;
|
|
30
|
-
var Tokenizer = require("../tokenizer").Tokenizer;
|
|
31
|
-
var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules;
|
|
32
|
-
var HtmlBehaviour = require("./behaviour/html").HtmlBehaviour;
|
|
33
|
-
var HtmlFoldMode = require("./folding/html").FoldMode;
|
|
34
|
-
var HtmlCompletions = require("./html_completions").HtmlCompletions;
|
|
35
|
-
|
|
36
|
-
var Mode = function() {
|
|
37
|
-
this.HighlightRules = HtmlHighlightRules;
|
|
38
|
-
this.$behaviour = new HtmlBehaviour();
|
|
39
|
-
this.$completer = new HtmlCompletions();
|
|
40
|
-
|
|
41
|
-
this.createModeDelegates({
|
|
42
|
-
"js-": JavaScriptMode,
|
|
43
|
-
"css-": CssMode
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
this.foldingRules = new HtmlFoldMode();
|
|
47
|
-
};
|
|
48
|
-
oop.inherits(Mode, TextMode);
|
|
49
|
-
|
|
50
|
-
(function() {
|
|
51
|
-
|
|
52
|
-
this.blockComment = {start: "<!--", end: "-->"};
|
|
53
|
-
|
|
54
|
-
this.getNextLineIndent = function(state, line, tab) {
|
|
55
|
-
return this.$getIndent(line);
|
|
56
|
-
};
|
|
5
|
+
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
|
|
57
6
|
|
|
58
|
-
|
|
59
|
-
return false;
|
|
60
|
-
};
|
|
7
|
+
var DocCommentHighlightRules = function() {
|
|
61
8
|
|
|
62
|
-
this
|
|
63
|
-
|
|
9
|
+
this.$rules = {
|
|
10
|
+
"start" : [ {
|
|
11
|
+
token : "comment.doc.tag",
|
|
12
|
+
regex : "@[\\w\\d_]+" // TODO: fix email addresses
|
|
13
|
+
}, {
|
|
14
|
+
token : "comment.doc.tag",
|
|
15
|
+
regex : "\\bTODO\\b"
|
|
16
|
+
}, {
|
|
17
|
+
defaultToken : "comment.doc"
|
|
18
|
+
}]
|
|
64
19
|
};
|
|
65
|
-
|
|
66
|
-
this.$id = "ace/mode/html";
|
|
67
|
-
}).call(Mode.prototype);
|
|
68
|
-
|
|
69
|
-
exports.Mode = Mode;
|
|
70
|
-
});
|
|
71
|
-
|
|
72
|
-
define('ace/mode/javascript', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/javascript_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/range', 'ace/worker/worker_client', 'ace/mode/behaviour/cstyle', 'ace/mode/folding/cstyle'], function(require, exports, module) {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
var oop = require("../lib/oop");
|
|
76
|
-
var TextMode = require("./text").Mode;
|
|
77
|
-
var Tokenizer = require("../tokenizer").Tokenizer;
|
|
78
|
-
var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
|
|
79
|
-
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
|
|
80
|
-
var Range = require("../range").Range;
|
|
81
|
-
var WorkerClient = require("../worker/worker_client").WorkerClient;
|
|
82
|
-
var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
|
|
83
|
-
var CStyleFoldMode = require("./folding/cstyle").FoldMode;
|
|
84
|
-
|
|
85
|
-
var Mode = function() {
|
|
86
|
-
this.HighlightRules = JavaScriptHighlightRules;
|
|
87
|
-
|
|
88
|
-
this.$outdent = new MatchingBraceOutdent();
|
|
89
|
-
this.$behaviour = new CstyleBehaviour();
|
|
90
|
-
this.foldingRules = new CStyleFoldMode();
|
|
91
20
|
};
|
|
92
|
-
oop.inherits(Mode, TextMode);
|
|
93
|
-
|
|
94
|
-
(function() {
|
|
95
|
-
|
|
96
|
-
this.lineCommentStart = "//";
|
|
97
|
-
this.blockComment = {start: "/*", end: "*/"};
|
|
98
|
-
|
|
99
|
-
this.getNextLineIndent = function(state, line, tab) {
|
|
100
|
-
var indent = this.$getIndent(line);
|
|
101
|
-
|
|
102
|
-
var tokenizedLine = this.getTokenizer().getLineTokens(line, state);
|
|
103
|
-
var tokens = tokenizedLine.tokens;
|
|
104
|
-
var endState = tokenizedLine.state;
|
|
105
|
-
|
|
106
|
-
if (tokens.length && tokens[tokens.length-1].type == "comment") {
|
|
107
|
-
return indent;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
if (state == "start" || state == "no_regex") {
|
|
111
|
-
var match = line.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);
|
|
112
|
-
if (match) {
|
|
113
|
-
indent += tab;
|
|
114
|
-
}
|
|
115
|
-
} else if (state == "doc-start") {
|
|
116
|
-
if (endState == "start" || endState == "no_regex") {
|
|
117
|
-
return "";
|
|
118
|
-
}
|
|
119
|
-
var match = line.match(/^\s*(\/?)\*/);
|
|
120
|
-
if (match) {
|
|
121
|
-
if (match[1]) {
|
|
122
|
-
indent += " ";
|
|
123
|
-
}
|
|
124
|
-
indent += "* ";
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
21
|
|
|
128
|
-
|
|
129
|
-
};
|
|
22
|
+
oop.inherits(DocCommentHighlightRules, TextHighlightRules);
|
|
130
23
|
|
|
131
|
-
|
|
132
|
-
|
|
24
|
+
DocCommentHighlightRules.getStartRule = function(start) {
|
|
25
|
+
return {
|
|
26
|
+
token : "comment.doc", // doc comment
|
|
27
|
+
regex : "\\/\\*(?=\\*)",
|
|
28
|
+
next : start
|
|
133
29
|
};
|
|
30
|
+
};
|
|
134
31
|
|
|
135
|
-
|
|
136
|
-
|
|
32
|
+
DocCommentHighlightRules.getEndRule = function (start) {
|
|
33
|
+
return {
|
|
34
|
+
token : "comment.doc", // closing comment
|
|
35
|
+
regex : "\\*\\/",
|
|
36
|
+
next : start
|
|
137
37
|
};
|
|
38
|
+
};
|
|
138
39
|
|
|
139
|
-
this.createWorker = function(session) {
|
|
140
|
-
var worker = new WorkerClient(["ace"], "ace/mode/javascript_worker", "JavaScriptWorker");
|
|
141
|
-
worker.attachToDocument(session.getDocument());
|
|
142
|
-
|
|
143
|
-
worker.on("jslint", function(results) {
|
|
144
|
-
session.setAnnotations(results.data);
|
|
145
|
-
});
|
|
146
|
-
|
|
147
|
-
worker.on("terminate", function() {
|
|
148
|
-
session.clearAnnotations();
|
|
149
|
-
});
|
|
150
|
-
|
|
151
|
-
return worker;
|
|
152
|
-
};
|
|
153
40
|
|
|
154
|
-
|
|
155
|
-
}).call(Mode.prototype);
|
|
41
|
+
exports.DocCommentHighlightRules = DocCommentHighlightRules;
|
|
156
42
|
|
|
157
|
-
exports.Mode = Mode;
|
|
158
43
|
});
|
|
159
44
|
|
|
160
|
-
define(
|
|
161
|
-
|
|
45
|
+
define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) {
|
|
46
|
+
"use strict";
|
|
162
47
|
|
|
163
48
|
var oop = require("../lib/oop");
|
|
164
49
|
var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules;
|
|
165
50
|
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
|
|
166
51
|
|
|
167
|
-
var JavaScriptHighlightRules = function() {
|
|
52
|
+
var JavaScriptHighlightRules = function(options) {
|
|
168
53
|
var keywordMapper = this.createKeywordMapper({
|
|
169
54
|
"variable.language":
|
|
170
55
|
"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" + // Constructors
|
|
@@ -289,19 +174,22 @@ var JavaScriptHighlightRules = function() {
|
|
|
289
174
|
}, {
|
|
290
175
|
token : ["punctuation.operator", "support.constant"],
|
|
291
176
|
regex : /(\.)(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/
|
|
177
|
+
}, {
|
|
178
|
+
token : ["support.constant"],
|
|
179
|
+
regex : /that\b/
|
|
292
180
|
}, {
|
|
293
181
|
token : ["storage.type", "punctuation.operator", "support.function.firebug"],
|
|
294
|
-
regex : /(console)(\.)(warn|info|log|error|time|timeEnd|assert)\b/
|
|
182
|
+
regex : /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/
|
|
295
183
|
}, {
|
|
296
184
|
token : keywordMapper,
|
|
297
185
|
regex : identifierRe
|
|
298
186
|
}, {
|
|
299
187
|
token : "keyword.operator",
|
|
300
|
-
regex :
|
|
188
|
+
regex : /--|\+\+|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|[!$%&*+\-~\/^]=?/,
|
|
301
189
|
next : "start"
|
|
302
190
|
}, {
|
|
303
191
|
token : "punctuation.operator",
|
|
304
|
-
regex :
|
|
192
|
+
regex : /[?:,;.]/,
|
|
305
193
|
next : "start"
|
|
306
194
|
}, {
|
|
307
195
|
token : "paren.lparen",
|
|
@@ -310,10 +198,6 @@ var JavaScriptHighlightRules = function() {
|
|
|
310
198
|
}, {
|
|
311
199
|
token : "paren.rparen",
|
|
312
200
|
regex : /[\])}]/
|
|
313
|
-
}, {
|
|
314
|
-
token : "keyword.operator",
|
|
315
|
-
regex : /\/=?/,
|
|
316
|
-
next : "start"
|
|
317
201
|
}, {
|
|
318
202
|
token: "comment",
|
|
319
203
|
regex: /^#!.*$/
|
|
@@ -374,7 +258,7 @@ var JavaScriptHighlightRules = function() {
|
|
|
374
258
|
],
|
|
375
259
|
"regex_character_class": [
|
|
376
260
|
{
|
|
377
|
-
token: "regexp.keyword.operator",
|
|
261
|
+
token: "regexp.charclass.keyword.operator",
|
|
378
262
|
regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"
|
|
379
263
|
}, {
|
|
380
264
|
token: "constant.language.escape",
|
|
@@ -456,9 +340,49 @@ var JavaScriptHighlightRules = function() {
|
|
|
456
340
|
}
|
|
457
341
|
]
|
|
458
342
|
};
|
|
459
|
-
|
|
343
|
+
|
|
344
|
+
|
|
345
|
+
if (!options || !options.noES6) {
|
|
346
|
+
this.$rules.no_regex.unshift({
|
|
347
|
+
regex: "[{}]", onMatch: function(val, state, stack) {
|
|
348
|
+
this.next = val == "{" ? this.nextState : "";
|
|
349
|
+
if (val == "{" && stack.length) {
|
|
350
|
+
stack.unshift("start", state);
|
|
351
|
+
return "paren";
|
|
352
|
+
}
|
|
353
|
+
if (val == "}" && stack.length) {
|
|
354
|
+
stack.shift();
|
|
355
|
+
this.next = stack.shift();
|
|
356
|
+
if (this.next.indexOf("string") != -1)
|
|
357
|
+
return "paren.quasi.end";
|
|
358
|
+
}
|
|
359
|
+
return val == "{" ? "paren.lparen" : "paren.rparen";
|
|
360
|
+
},
|
|
361
|
+
nextState: "start"
|
|
362
|
+
}, {
|
|
363
|
+
token : "string.quasi.start",
|
|
364
|
+
regex : /`/,
|
|
365
|
+
push : [{
|
|
366
|
+
token : "constant.language.escape",
|
|
367
|
+
regex : escapedRe
|
|
368
|
+
}, {
|
|
369
|
+
token : "paren.quasi.start",
|
|
370
|
+
regex : /\${/,
|
|
371
|
+
push : "start"
|
|
372
|
+
}, {
|
|
373
|
+
token : "string.quasi.end",
|
|
374
|
+
regex : /`/,
|
|
375
|
+
next : "pop"
|
|
376
|
+
}, {
|
|
377
|
+
defaultToken: "string.quasi"
|
|
378
|
+
}]
|
|
379
|
+
});
|
|
380
|
+
}
|
|
381
|
+
|
|
460
382
|
this.embedRules(DocCommentHighlightRules, "doc-",
|
|
461
383
|
[ DocCommentHighlightRules.getEndRule("no_regex") ]);
|
|
384
|
+
|
|
385
|
+
this.normalizeRules();
|
|
462
386
|
};
|
|
463
387
|
|
|
464
388
|
oop.inherits(JavaScriptHighlightRules, TextHighlightRules);
|
|
@@ -466,52 +390,8 @@ oop.inherits(JavaScriptHighlightRules, TextHighlightRules);
|
|
|
466
390
|
exports.JavaScriptHighlightRules = JavaScriptHighlightRules;
|
|
467
391
|
});
|
|
468
392
|
|
|
469
|
-
define(
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
var oop = require("../lib/oop");
|
|
473
|
-
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
|
|
474
|
-
|
|
475
|
-
var DocCommentHighlightRules = function() {
|
|
476
|
-
|
|
477
|
-
this.$rules = {
|
|
478
|
-
"start" : [ {
|
|
479
|
-
token : "comment.doc.tag",
|
|
480
|
-
regex : "@[\\w\\d_]+" // TODO: fix email addresses
|
|
481
|
-
}, {
|
|
482
|
-
token : "comment.doc.tag",
|
|
483
|
-
regex : "\\bTODO\\b"
|
|
484
|
-
}, {
|
|
485
|
-
defaultToken : "comment.doc"
|
|
486
|
-
}]
|
|
487
|
-
};
|
|
488
|
-
};
|
|
489
|
-
|
|
490
|
-
oop.inherits(DocCommentHighlightRules, TextHighlightRules);
|
|
491
|
-
|
|
492
|
-
DocCommentHighlightRules.getStartRule = function(start) {
|
|
493
|
-
return {
|
|
494
|
-
token : "comment.doc", // doc comment
|
|
495
|
-
regex : "\\/\\*(?=\\*)",
|
|
496
|
-
next : start
|
|
497
|
-
};
|
|
498
|
-
};
|
|
499
|
-
|
|
500
|
-
DocCommentHighlightRules.getEndRule = function (start) {
|
|
501
|
-
return {
|
|
502
|
-
token : "comment.doc", // closing comment
|
|
503
|
-
regex : "\\*\\/",
|
|
504
|
-
next : start
|
|
505
|
-
};
|
|
506
|
-
};
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
exports.DocCommentHighlightRules = DocCommentHighlightRules;
|
|
510
|
-
|
|
511
|
-
});
|
|
512
|
-
|
|
513
|
-
define('ace/mode/matching_brace_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) {
|
|
514
|
-
|
|
393
|
+
define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) {
|
|
394
|
+
"use strict";
|
|
515
395
|
|
|
516
396
|
var Range = require("../range").Range;
|
|
517
397
|
|
|
@@ -550,8 +430,8 @@ var MatchingBraceOutdent = function() {};
|
|
|
550
430
|
exports.MatchingBraceOutdent = MatchingBraceOutdent;
|
|
551
431
|
});
|
|
552
432
|
|
|
553
|
-
define(
|
|
554
|
-
|
|
433
|
+
define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"], function(require, exports, module) {
|
|
434
|
+
"use strict";
|
|
555
435
|
|
|
556
436
|
var oop = require("../../lib/oop");
|
|
557
437
|
var Behaviour = require("../behaviour").Behaviour;
|
|
@@ -563,83 +443,34 @@ var SAFE_INSERT_IN_TOKENS =
|
|
|
563
443
|
var SAFE_INSERT_BEFORE_TOKENS =
|
|
564
444
|
["text", "paren.rparen", "punctuation.operator", "comment"];
|
|
565
445
|
|
|
566
|
-
|
|
567
|
-
var
|
|
568
|
-
var
|
|
569
|
-
var
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
iterator.stepForward();
|
|
586
|
-
return iterator.getCurrentTokenRow() !== cursor.row ||
|
|
587
|
-
this.$matchTokenType(iterator.getCurrentToken() || "text", SAFE_INSERT_BEFORE_TOKENS);
|
|
588
|
-
};
|
|
589
|
-
|
|
590
|
-
CstyleBehaviour.$matchTokenType = function(token, types) {
|
|
591
|
-
return types.indexOf(token.type || token) > -1;
|
|
592
|
-
};
|
|
593
|
-
|
|
594
|
-
CstyleBehaviour.recordAutoInsert = function(editor, session, bracket) {
|
|
595
|
-
var cursor = editor.getCursorPosition();
|
|
596
|
-
var line = session.doc.getLine(cursor.row);
|
|
597
|
-
if (!this.isAutoInsertedClosing(cursor, line, autoInsertedLineEnd[0]))
|
|
598
|
-
autoInsertedBrackets = 0;
|
|
599
|
-
autoInsertedRow = cursor.row;
|
|
600
|
-
autoInsertedLineEnd = bracket + line.substr(cursor.column);
|
|
601
|
-
autoInsertedBrackets++;
|
|
602
|
-
};
|
|
603
|
-
|
|
604
|
-
CstyleBehaviour.recordMaybeInsert = function(editor, session, bracket) {
|
|
605
|
-
var cursor = editor.getCursorPosition();
|
|
606
|
-
var line = session.doc.getLine(cursor.row);
|
|
607
|
-
if (!this.isMaybeInsertedClosing(cursor, line))
|
|
608
|
-
maybeInsertedBrackets = 0;
|
|
609
|
-
maybeInsertedRow = cursor.row;
|
|
610
|
-
maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;
|
|
611
|
-
maybeInsertedLineEnd = line.substr(cursor.column);
|
|
612
|
-
maybeInsertedBrackets++;
|
|
613
|
-
};
|
|
614
|
-
|
|
615
|
-
CstyleBehaviour.isAutoInsertedClosing = function(cursor, line, bracket) {
|
|
616
|
-
return autoInsertedBrackets > 0 &&
|
|
617
|
-
cursor.row === autoInsertedRow &&
|
|
618
|
-
bracket === autoInsertedLineEnd[0] &&
|
|
619
|
-
line.substr(cursor.column) === autoInsertedLineEnd;
|
|
620
|
-
};
|
|
621
|
-
|
|
622
|
-
CstyleBehaviour.isMaybeInsertedClosing = function(cursor, line) {
|
|
623
|
-
return maybeInsertedBrackets > 0 &&
|
|
624
|
-
cursor.row === maybeInsertedRow &&
|
|
625
|
-
line.substr(cursor.column) === maybeInsertedLineEnd &&
|
|
626
|
-
line.substr(0, cursor.column) == maybeInsertedLineStart;
|
|
627
|
-
};
|
|
628
|
-
|
|
629
|
-
CstyleBehaviour.popAutoInsertedClosing = function() {
|
|
630
|
-
autoInsertedLineEnd = autoInsertedLineEnd.substr(1);
|
|
631
|
-
autoInsertedBrackets--;
|
|
632
|
-
};
|
|
633
|
-
|
|
634
|
-
CstyleBehaviour.clearMaybeInsertedClosing = function() {
|
|
635
|
-
maybeInsertedBrackets = 0;
|
|
636
|
-
maybeInsertedRow = -1;
|
|
446
|
+
var context;
|
|
447
|
+
var contextCache = {}
|
|
448
|
+
var initContext = function(editor) {
|
|
449
|
+
var id = -1;
|
|
450
|
+
if (editor.multiSelect) {
|
|
451
|
+
id = editor.selection.id;
|
|
452
|
+
if (contextCache.rangeCount != editor.multiSelect.rangeCount)
|
|
453
|
+
contextCache = {rangeCount: editor.multiSelect.rangeCount};
|
|
454
|
+
}
|
|
455
|
+
if (contextCache[id])
|
|
456
|
+
return context = contextCache[id];
|
|
457
|
+
context = contextCache[id] = {
|
|
458
|
+
autoInsertedBrackets: 0,
|
|
459
|
+
autoInsertedRow: -1,
|
|
460
|
+
autoInsertedLineEnd: "",
|
|
461
|
+
maybeInsertedBrackets: 0,
|
|
462
|
+
maybeInsertedRow: -1,
|
|
463
|
+
maybeInsertedLineStart: "",
|
|
464
|
+
maybeInsertedLineEnd: ""
|
|
637
465
|
};
|
|
466
|
+
};
|
|
638
467
|
|
|
639
|
-
|
|
468
|
+
var CstyleBehaviour = function() {
|
|
469
|
+
this.add("braces", "insertion", function(state, action, editor, session, text) {
|
|
640
470
|
var cursor = editor.getCursorPosition();
|
|
641
471
|
var line = session.doc.getLine(cursor.row);
|
|
642
472
|
if (text == '{') {
|
|
473
|
+
initContext(editor);
|
|
643
474
|
var selection = editor.getSelectionRange();
|
|
644
475
|
var selected = session.doc.getTextRange(selection);
|
|
645
476
|
if (selected !== "" && selected !== "{" && editor.getWrapBehavioursEnabled()) {
|
|
@@ -663,6 +494,7 @@ var CstyleBehaviour = function () {
|
|
|
663
494
|
}
|
|
664
495
|
}
|
|
665
496
|
} else if (text == '}') {
|
|
497
|
+
initContext(editor);
|
|
666
498
|
var rightChar = line.substring(cursor.column, cursor.column + 1);
|
|
667
499
|
if (rightChar == '}') {
|
|
668
500
|
var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row});
|
|
@@ -675,9 +507,10 @@ var CstyleBehaviour = function () {
|
|
|
675
507
|
}
|
|
676
508
|
}
|
|
677
509
|
} else if (text == "\n" || text == "\r\n") {
|
|
510
|
+
initContext(editor);
|
|
678
511
|
var closing = "";
|
|
679
512
|
if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) {
|
|
680
|
-
closing = lang.stringRepeat("}", maybeInsertedBrackets);
|
|
513
|
+
closing = lang.stringRepeat("}", context.maybeInsertedBrackets);
|
|
681
514
|
CstyleBehaviour.clearMaybeInsertedClosing();
|
|
682
515
|
}
|
|
683
516
|
var rightChar = line.substring(cursor.column, cursor.column + 1);
|
|
@@ -689,6 +522,7 @@ var CstyleBehaviour = function () {
|
|
|
689
522
|
} else if (closing) {
|
|
690
523
|
var next_indent = this.$getIndent(line);
|
|
691
524
|
} else {
|
|
525
|
+
CstyleBehaviour.clearMaybeInsertedClosing();
|
|
692
526
|
return;
|
|
693
527
|
}
|
|
694
528
|
var indent = next_indent + session.getTabString();
|
|
@@ -702,22 +536,24 @@ var CstyleBehaviour = function () {
|
|
|
702
536
|
}
|
|
703
537
|
});
|
|
704
538
|
|
|
705
|
-
this.add("braces", "deletion", function
|
|
539
|
+
this.add("braces", "deletion", function(state, action, editor, session, range) {
|
|
706
540
|
var selected = session.doc.getTextRange(range);
|
|
707
541
|
if (!range.isMultiLine() && selected == '{') {
|
|
542
|
+
initContext(editor);
|
|
708
543
|
var line = session.doc.getLine(range.start.row);
|
|
709
544
|
var rightChar = line.substring(range.end.column, range.end.column + 1);
|
|
710
545
|
if (rightChar == '}') {
|
|
711
546
|
range.end.column++;
|
|
712
547
|
return range;
|
|
713
548
|
} else {
|
|
714
|
-
maybeInsertedBrackets--;
|
|
549
|
+
context.maybeInsertedBrackets--;
|
|
715
550
|
}
|
|
716
551
|
}
|
|
717
552
|
});
|
|
718
553
|
|
|
719
|
-
this.add("parens", "insertion", function
|
|
554
|
+
this.add("parens", "insertion", function(state, action, editor, session, text) {
|
|
720
555
|
if (text == '(') {
|
|
556
|
+
initContext(editor);
|
|
721
557
|
var selection = editor.getSelectionRange();
|
|
722
558
|
var selected = session.doc.getTextRange(selection);
|
|
723
559
|
if (selected !== "" && editor.getWrapBehavioursEnabled()) {
|
|
@@ -733,6 +569,7 @@ var CstyleBehaviour = function () {
|
|
|
733
569
|
};
|
|
734
570
|
}
|
|
735
571
|
} else if (text == ')') {
|
|
572
|
+
initContext(editor);
|
|
736
573
|
var cursor = editor.getCursorPosition();
|
|
737
574
|
var line = session.doc.getLine(cursor.row);
|
|
738
575
|
var rightChar = line.substring(cursor.column, cursor.column + 1);
|
|
@@ -749,9 +586,10 @@ var CstyleBehaviour = function () {
|
|
|
749
586
|
}
|
|
750
587
|
});
|
|
751
588
|
|
|
752
|
-
this.add("parens", "deletion", function
|
|
589
|
+
this.add("parens", "deletion", function(state, action, editor, session, range) {
|
|
753
590
|
var selected = session.doc.getTextRange(range);
|
|
754
591
|
if (!range.isMultiLine() && selected == '(') {
|
|
592
|
+
initContext(editor);
|
|
755
593
|
var line = session.doc.getLine(range.start.row);
|
|
756
594
|
var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
|
|
757
595
|
if (rightChar == ')') {
|
|
@@ -761,8 +599,9 @@ var CstyleBehaviour = function () {
|
|
|
761
599
|
}
|
|
762
600
|
});
|
|
763
601
|
|
|
764
|
-
this.add("brackets", "insertion", function
|
|
602
|
+
this.add("brackets", "insertion", function(state, action, editor, session, text) {
|
|
765
603
|
if (text == '[') {
|
|
604
|
+
initContext(editor);
|
|
766
605
|
var selection = editor.getSelectionRange();
|
|
767
606
|
var selected = session.doc.getTextRange(selection);
|
|
768
607
|
if (selected !== "" && editor.getWrapBehavioursEnabled()) {
|
|
@@ -778,6 +617,7 @@ var CstyleBehaviour = function () {
|
|
|
778
617
|
};
|
|
779
618
|
}
|
|
780
619
|
} else if (text == ']') {
|
|
620
|
+
initContext(editor);
|
|
781
621
|
var cursor = editor.getCursorPosition();
|
|
782
622
|
var line = session.doc.getLine(cursor.row);
|
|
783
623
|
var rightChar = line.substring(cursor.column, cursor.column + 1);
|
|
@@ -794,9 +634,10 @@ var CstyleBehaviour = function () {
|
|
|
794
634
|
}
|
|
795
635
|
});
|
|
796
636
|
|
|
797
|
-
this.add("brackets", "deletion", function
|
|
637
|
+
this.add("brackets", "deletion", function(state, action, editor, session, range) {
|
|
798
638
|
var selected = session.doc.getTextRange(range);
|
|
799
639
|
if (!range.isMultiLine() && selected == '[') {
|
|
640
|
+
initContext(editor);
|
|
800
641
|
var line = session.doc.getLine(range.start.row);
|
|
801
642
|
var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
|
|
802
643
|
if (rightChar == ']') {
|
|
@@ -806,8 +647,9 @@ var CstyleBehaviour = function () {
|
|
|
806
647
|
}
|
|
807
648
|
});
|
|
808
649
|
|
|
809
|
-
this.add("string_dquotes", "insertion", function
|
|
650
|
+
this.add("string_dquotes", "insertion", function(state, action, editor, session, text) {
|
|
810
651
|
if (text == '"' || text == "'") {
|
|
652
|
+
initContext(editor);
|
|
811
653
|
var quote = text;
|
|
812
654
|
var selection = editor.getSelectionRange();
|
|
813
655
|
var selected = session.doc.getTextRange(selection);
|
|
@@ -859,9 +701,10 @@ var CstyleBehaviour = function () {
|
|
|
859
701
|
}
|
|
860
702
|
});
|
|
861
703
|
|
|
862
|
-
this.add("string_dquotes", "deletion", function
|
|
704
|
+
this.add("string_dquotes", "deletion", function(state, action, editor, session, range) {
|
|
863
705
|
var selected = session.doc.getTextRange(range);
|
|
864
706
|
if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
|
|
707
|
+
initContext(editor);
|
|
865
708
|
var line = session.doc.getLine(range.start.row);
|
|
866
709
|
var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
|
|
867
710
|
if (rightChar == selected) {
|
|
@@ -873,13 +716,80 @@ var CstyleBehaviour = function () {
|
|
|
873
716
|
|
|
874
717
|
};
|
|
875
718
|
|
|
719
|
+
|
|
720
|
+
CstyleBehaviour.isSaneInsertion = function(editor, session) {
|
|
721
|
+
var cursor = editor.getCursorPosition();
|
|
722
|
+
var iterator = new TokenIterator(session, cursor.row, cursor.column);
|
|
723
|
+
if (!this.$matchTokenType(iterator.getCurrentToken() || "text", SAFE_INSERT_IN_TOKENS)) {
|
|
724
|
+
var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);
|
|
725
|
+
if (!this.$matchTokenType(iterator2.getCurrentToken() || "text", SAFE_INSERT_IN_TOKENS))
|
|
726
|
+
return false;
|
|
727
|
+
}
|
|
728
|
+
iterator.stepForward();
|
|
729
|
+
return iterator.getCurrentTokenRow() !== cursor.row ||
|
|
730
|
+
this.$matchTokenType(iterator.getCurrentToken() || "text", SAFE_INSERT_BEFORE_TOKENS);
|
|
731
|
+
};
|
|
732
|
+
|
|
733
|
+
CstyleBehaviour.$matchTokenType = function(token, types) {
|
|
734
|
+
return types.indexOf(token.type || token) > -1;
|
|
735
|
+
};
|
|
736
|
+
|
|
737
|
+
CstyleBehaviour.recordAutoInsert = function(editor, session, bracket) {
|
|
738
|
+
var cursor = editor.getCursorPosition();
|
|
739
|
+
var line = session.doc.getLine(cursor.row);
|
|
740
|
+
if (!this.isAutoInsertedClosing(cursor, line, context.autoInsertedLineEnd[0]))
|
|
741
|
+
context.autoInsertedBrackets = 0;
|
|
742
|
+
context.autoInsertedRow = cursor.row;
|
|
743
|
+
context.autoInsertedLineEnd = bracket + line.substr(cursor.column);
|
|
744
|
+
context.autoInsertedBrackets++;
|
|
745
|
+
};
|
|
746
|
+
|
|
747
|
+
CstyleBehaviour.recordMaybeInsert = function(editor, session, bracket) {
|
|
748
|
+
var cursor = editor.getCursorPosition();
|
|
749
|
+
var line = session.doc.getLine(cursor.row);
|
|
750
|
+
if (!this.isMaybeInsertedClosing(cursor, line))
|
|
751
|
+
context.maybeInsertedBrackets = 0;
|
|
752
|
+
context.maybeInsertedRow = cursor.row;
|
|
753
|
+
context.maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;
|
|
754
|
+
context.maybeInsertedLineEnd = line.substr(cursor.column);
|
|
755
|
+
context.maybeInsertedBrackets++;
|
|
756
|
+
};
|
|
757
|
+
|
|
758
|
+
CstyleBehaviour.isAutoInsertedClosing = function(cursor, line, bracket) {
|
|
759
|
+
return context.autoInsertedBrackets > 0 &&
|
|
760
|
+
cursor.row === context.autoInsertedRow &&
|
|
761
|
+
bracket === context.autoInsertedLineEnd[0] &&
|
|
762
|
+
line.substr(cursor.column) === context.autoInsertedLineEnd;
|
|
763
|
+
};
|
|
764
|
+
|
|
765
|
+
CstyleBehaviour.isMaybeInsertedClosing = function(cursor, line) {
|
|
766
|
+
return context.maybeInsertedBrackets > 0 &&
|
|
767
|
+
cursor.row === context.maybeInsertedRow &&
|
|
768
|
+
line.substr(cursor.column) === context.maybeInsertedLineEnd &&
|
|
769
|
+
line.substr(0, cursor.column) == context.maybeInsertedLineStart;
|
|
770
|
+
};
|
|
771
|
+
|
|
772
|
+
CstyleBehaviour.popAutoInsertedClosing = function() {
|
|
773
|
+
context.autoInsertedLineEnd = context.autoInsertedLineEnd.substr(1);
|
|
774
|
+
context.autoInsertedBrackets--;
|
|
775
|
+
};
|
|
776
|
+
|
|
777
|
+
CstyleBehaviour.clearMaybeInsertedClosing = function() {
|
|
778
|
+
if (context) {
|
|
779
|
+
context.maybeInsertedBrackets = 0;
|
|
780
|
+
context.maybeInsertedRow = -1;
|
|
781
|
+
}
|
|
782
|
+
};
|
|
783
|
+
|
|
784
|
+
|
|
785
|
+
|
|
876
786
|
oop.inherits(CstyleBehaviour, Behaviour);
|
|
877
787
|
|
|
878
788
|
exports.CstyleBehaviour = CstyleBehaviour;
|
|
879
789
|
});
|
|
880
790
|
|
|
881
|
-
define(
|
|
882
|
-
|
|
791
|
+
define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) {
|
|
792
|
+
"use strict";
|
|
883
793
|
|
|
884
794
|
var oop = require("../../lib/oop");
|
|
885
795
|
var Range = require("../../range").Range;
|
|
@@ -973,41 +883,59 @@ oop.inherits(FoldMode, BaseFoldMode);
|
|
|
973
883
|
|
|
974
884
|
});
|
|
975
885
|
|
|
976
|
-
define(
|
|
977
|
-
|
|
886
|
+
define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
|
|
887
|
+
"use strict";
|
|
978
888
|
|
|
979
889
|
var oop = require("../lib/oop");
|
|
980
890
|
var TextMode = require("./text").Mode;
|
|
981
|
-
var
|
|
982
|
-
var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules;
|
|
891
|
+
var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
|
|
983
892
|
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
|
|
893
|
+
var Range = require("../range").Range;
|
|
984
894
|
var WorkerClient = require("../worker/worker_client").WorkerClient;
|
|
985
|
-
var
|
|
895
|
+
var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
|
|
986
896
|
var CStyleFoldMode = require("./folding/cstyle").FoldMode;
|
|
987
897
|
|
|
988
898
|
var Mode = function() {
|
|
989
|
-
this.HighlightRules =
|
|
899
|
+
this.HighlightRules = JavaScriptHighlightRules;
|
|
900
|
+
|
|
990
901
|
this.$outdent = new MatchingBraceOutdent();
|
|
991
|
-
this.$behaviour = new
|
|
902
|
+
this.$behaviour = new CstyleBehaviour();
|
|
992
903
|
this.foldingRules = new CStyleFoldMode();
|
|
993
904
|
};
|
|
994
905
|
oop.inherits(Mode, TextMode);
|
|
995
906
|
|
|
996
907
|
(function() {
|
|
997
908
|
|
|
998
|
-
this.
|
|
909
|
+
this.lineCommentStart = "//";
|
|
999
910
|
this.blockComment = {start: "/*", end: "*/"};
|
|
1000
911
|
|
|
1001
912
|
this.getNextLineIndent = function(state, line, tab) {
|
|
1002
913
|
var indent = this.$getIndent(line);
|
|
1003
|
-
|
|
914
|
+
|
|
915
|
+
var tokenizedLine = this.getTokenizer().getLineTokens(line, state);
|
|
916
|
+
var tokens = tokenizedLine.tokens;
|
|
917
|
+
var endState = tokenizedLine.state;
|
|
918
|
+
|
|
1004
919
|
if (tokens.length && tokens[tokens.length-1].type == "comment") {
|
|
1005
920
|
return indent;
|
|
1006
921
|
}
|
|
1007
922
|
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
923
|
+
if (state == "start" || state == "no_regex") {
|
|
924
|
+
var match = line.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);
|
|
925
|
+
if (match) {
|
|
926
|
+
indent += tab;
|
|
927
|
+
}
|
|
928
|
+
} else if (state == "doc-start") {
|
|
929
|
+
if (endState == "start" || endState == "no_regex") {
|
|
930
|
+
return "";
|
|
931
|
+
}
|
|
932
|
+
var match = line.match(/^\s*(\/?)\*/);
|
|
933
|
+
if (match) {
|
|
934
|
+
if (match[1]) {
|
|
935
|
+
indent += " ";
|
|
936
|
+
}
|
|
937
|
+
indent += "* ";
|
|
938
|
+
}
|
|
1011
939
|
}
|
|
1012
940
|
|
|
1013
941
|
return indent;
|
|
@@ -1022,11 +950,11 @@ oop.inherits(Mode, TextMode);
|
|
|
1022
950
|
};
|
|
1023
951
|
|
|
1024
952
|
this.createWorker = function(session) {
|
|
1025
|
-
var worker = new WorkerClient(["ace"], "ace/mode/
|
|
953
|
+
var worker = new WorkerClient(["ace"], "ace/mode/javascript_worker", "JavaScriptWorker");
|
|
1026
954
|
worker.attachToDocument(session.getDocument());
|
|
1027
955
|
|
|
1028
|
-
worker.on("
|
|
1029
|
-
session.setAnnotations(
|
|
956
|
+
worker.on("jslint", function(results) {
|
|
957
|
+
session.setAnnotations(results.data);
|
|
1030
958
|
});
|
|
1031
959
|
|
|
1032
960
|
worker.on("terminate", function() {
|
|
@@ -1036,15 +964,14 @@ oop.inherits(Mode, TextMode);
|
|
|
1036
964
|
return worker;
|
|
1037
965
|
};
|
|
1038
966
|
|
|
1039
|
-
this.$id = "ace/mode/
|
|
967
|
+
this.$id = "ace/mode/javascript";
|
|
1040
968
|
}).call(Mode.prototype);
|
|
1041
969
|
|
|
1042
970
|
exports.Mode = Mode;
|
|
1043
|
-
|
|
1044
971
|
});
|
|
1045
972
|
|
|
1046
|
-
define(
|
|
1047
|
-
|
|
973
|
+
define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) {
|
|
974
|
+
"use strict";
|
|
1048
975
|
|
|
1049
976
|
var oop = require("../lib/oop");
|
|
1050
977
|
var lang = require("../lib/lang");
|
|
@@ -1187,8 +1114,8 @@ exports.CssHighlightRules = CssHighlightRules;
|
|
|
1187
1114
|
|
|
1188
1115
|
});
|
|
1189
1116
|
|
|
1190
|
-
define(
|
|
1191
|
-
|
|
1117
|
+
define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"], function(require, exports, module) {
|
|
1118
|
+
"use strict";
|
|
1192
1119
|
|
|
1193
1120
|
var oop = require("../../lib/oop");
|
|
1194
1121
|
var Behaviour = require("../behaviour").Behaviour;
|
|
@@ -1266,161 +1193,150 @@ oop.inherits(CssBehaviour, CstyleBehaviour);
|
|
|
1266
1193
|
exports.CssBehaviour = CssBehaviour;
|
|
1267
1194
|
});
|
|
1268
1195
|
|
|
1269
|
-
define(
|
|
1270
|
-
|
|
1196
|
+
define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/css","ace/mode/folding/cstyle"], function(require, exports, module) {
|
|
1197
|
+
"use strict";
|
|
1271
1198
|
|
|
1272
1199
|
var oop = require("../lib/oop");
|
|
1273
|
-
var
|
|
1200
|
+
var TextMode = require("./text").Mode;
|
|
1274
1201
|
var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules;
|
|
1275
|
-
var
|
|
1276
|
-
var
|
|
1202
|
+
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
|
|
1203
|
+
var WorkerClient = require("../worker/worker_client").WorkerClient;
|
|
1204
|
+
var CssBehaviour = require("./behaviour/css").CssBehaviour;
|
|
1205
|
+
var CStyleFoldMode = require("./folding/cstyle").FoldMode;
|
|
1277
1206
|
|
|
1278
|
-
var
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
option : 'form',
|
|
1286
|
-
script : 'script',
|
|
1287
|
-
select : 'form',
|
|
1288
|
-
textarea : 'form',
|
|
1289
|
-
style : 'style',
|
|
1290
|
-
table : 'table',
|
|
1291
|
-
tbody : 'table',
|
|
1292
|
-
td : 'table',
|
|
1293
|
-
tfoot : 'table',
|
|
1294
|
-
th : 'table',
|
|
1295
|
-
tr : 'table'
|
|
1296
|
-
});
|
|
1207
|
+
var Mode = function() {
|
|
1208
|
+
this.HighlightRules = CssHighlightRules;
|
|
1209
|
+
this.$outdent = new MatchingBraceOutdent();
|
|
1210
|
+
this.$behaviour = new CssBehaviour();
|
|
1211
|
+
this.foldingRules = new CStyleFoldMode();
|
|
1212
|
+
};
|
|
1213
|
+
oop.inherits(Mode, TextMode);
|
|
1297
1214
|
|
|
1298
|
-
|
|
1299
|
-
XmlHighlightRules.call(this);
|
|
1215
|
+
(function() {
|
|
1300
1216
|
|
|
1301
|
-
this.
|
|
1302
|
-
|
|
1303
|
-
include : "space"
|
|
1304
|
-
}, {
|
|
1305
|
-
token : "entity.other.attribute-name",
|
|
1306
|
-
regex : "[-_a-zA-Z0-9:]+"
|
|
1307
|
-
}, {
|
|
1308
|
-
token : "keyword.operator.separator",
|
|
1309
|
-
regex : "=",
|
|
1310
|
-
push : [{
|
|
1311
|
-
include: "space"
|
|
1312
|
-
}, {
|
|
1313
|
-
token : "string",
|
|
1314
|
-
regex : "[^<>='\"`\\s]+",
|
|
1315
|
-
next : "pop"
|
|
1316
|
-
}, {
|
|
1317
|
-
token : "empty",
|
|
1318
|
-
regex : "",
|
|
1319
|
-
next : "pop"
|
|
1320
|
-
}]
|
|
1321
|
-
}, {
|
|
1322
|
-
include : "string"
|
|
1323
|
-
}],
|
|
1324
|
-
tag: [{
|
|
1325
|
-
token : function(start, tag) {
|
|
1326
|
-
var group = tagMap[tag];
|
|
1327
|
-
return ["meta.tag.punctuation.begin",
|
|
1328
|
-
"meta.tag.name" + (group ? "." + group : "")];
|
|
1329
|
-
},
|
|
1330
|
-
regex : "(<)([-_a-zA-Z0-9:]+)",
|
|
1331
|
-
next: "start_tag_stuff"
|
|
1332
|
-
}, {
|
|
1333
|
-
token : function(start, tag) {
|
|
1334
|
-
var group = tagMap[tag];
|
|
1335
|
-
return ["meta.tag.punctuation.begin",
|
|
1336
|
-
"meta.tag.name" + (group ? "." + group : "")];
|
|
1337
|
-
},
|
|
1338
|
-
regex : "(</)([-_a-zA-Z0-9:]+)",
|
|
1339
|
-
next: "end_tag_stuff"
|
|
1340
|
-
}],
|
|
1341
|
-
start_tag_stuff: [
|
|
1342
|
-
{include : "attributes"},
|
|
1343
|
-
{token : "meta.tag.punctuation.end", regex : "/?>", next : "start"}
|
|
1344
|
-
],
|
|
1345
|
-
end_tag_stuff: [
|
|
1346
|
-
{include : "space"},
|
|
1347
|
-
{token : "meta.tag.punctuation.end", regex : ">", next : "start"}
|
|
1348
|
-
]
|
|
1349
|
-
});
|
|
1217
|
+
this.foldingRules = "cStyle";
|
|
1218
|
+
this.blockComment = {start: "/*", end: "*/"};
|
|
1350
1219
|
|
|
1351
|
-
this.
|
|
1352
|
-
|
|
1220
|
+
this.getNextLineIndent = function(state, line, tab) {
|
|
1221
|
+
var indent = this.$getIndent(line);
|
|
1222
|
+
var tokens = this.getTokenizer().getLineTokens(line, state).tokens;
|
|
1223
|
+
if (tokens.length && tokens[tokens.length-1].type == "comment") {
|
|
1224
|
+
return indent;
|
|
1225
|
+
}
|
|
1353
1226
|
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1227
|
+
var match = line.match(/^.*\{\s*$/);
|
|
1228
|
+
if (match) {
|
|
1229
|
+
indent += tab;
|
|
1230
|
+
}
|
|
1357
1231
|
|
|
1358
|
-
|
|
1232
|
+
return indent;
|
|
1233
|
+
};
|
|
1359
1234
|
|
|
1360
|
-
|
|
1361
|
-
|
|
1235
|
+
this.checkOutdent = function(state, line, input) {
|
|
1236
|
+
return this.$outdent.checkOutdent(line, input);
|
|
1237
|
+
};
|
|
1238
|
+
|
|
1239
|
+
this.autoOutdent = function(state, doc, row) {
|
|
1240
|
+
this.$outdent.autoOutdent(doc, row);
|
|
1241
|
+
};
|
|
1242
|
+
|
|
1243
|
+
this.createWorker = function(session) {
|
|
1244
|
+
var worker = new WorkerClient(["ace"], "ace/mode/css_worker", "Worker");
|
|
1245
|
+
worker.attachToDocument(session.getDocument());
|
|
1246
|
+
|
|
1247
|
+
worker.on("csslint", function(e) {
|
|
1248
|
+
session.setAnnotations(e.data);
|
|
1249
|
+
});
|
|
1250
|
+
|
|
1251
|
+
worker.on("terminate", function() {
|
|
1252
|
+
session.clearAnnotations();
|
|
1253
|
+
});
|
|
1254
|
+
|
|
1255
|
+
return worker;
|
|
1256
|
+
};
|
|
1257
|
+
|
|
1258
|
+
this.$id = "ace/mode/css";
|
|
1259
|
+
}).call(Mode.prototype);
|
|
1362
1260
|
|
|
1363
|
-
|
|
1261
|
+
exports.Mode = Mode;
|
|
1262
|
+
|
|
1263
|
+
});
|
|
1364
1264
|
|
|
1265
|
+
define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) {
|
|
1266
|
+
"use strict";
|
|
1365
1267
|
|
|
1366
1268
|
var oop = require("../lib/oop");
|
|
1367
|
-
var xmlUtil = require("./xml_util");
|
|
1368
1269
|
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
|
|
1369
1270
|
|
|
1370
1271
|
var XmlHighlightRules = function(normalize) {
|
|
1371
1272
|
this.$rules = {
|
|
1372
1273
|
start : [
|
|
1373
|
-
{token : "
|
|
1274
|
+
{token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"},
|
|
1374
1275
|
{
|
|
1375
|
-
token : ["punctuation.
|
|
1376
|
-
regex : "(<\\?)(xml)(?=[\\s])", next : "
|
|
1276
|
+
token : ["punctuation.xml-decl.xml", "keyword.xml-decl.xml"],
|
|
1277
|
+
regex : "(<\\?)(xml)(?=[\\s])", next : "xml_decl", caseInsensitive: true
|
|
1377
1278
|
},
|
|
1378
1279
|
{
|
|
1379
|
-
token : ["punctuation.instruction.
|
|
1380
|
-
regex : "(<\\?)([-_a-zA-Z0-9]+)", next : "
|
|
1280
|
+
token : ["punctuation.instruction.xml", "keyword.instruction.xml"],
|
|
1281
|
+
regex : "(<\\?)([-_a-zA-Z0-9]+)", next : "processing_instruction",
|
|
1381
1282
|
},
|
|
1382
|
-
{token : "comment", regex : "<\\!--", next : "comment"},
|
|
1283
|
+
{token : "comment.xml", regex : "<\\!--", next : "comment"},
|
|
1383
1284
|
{
|
|
1384
|
-
token : ["
|
|
1385
|
-
regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype"
|
|
1285
|
+
token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"],
|
|
1286
|
+
regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true
|
|
1386
1287
|
},
|
|
1387
1288
|
{include : "tag"},
|
|
1388
|
-
{
|
|
1289
|
+
{token : "text.end-tag-open.xml", regex: "</"},
|
|
1290
|
+
{token : "text.tag-open.xml", regex: "<"},
|
|
1291
|
+
{include : "reference"},
|
|
1292
|
+
{defaultToken : "text.xml"}
|
|
1389
1293
|
],
|
|
1390
1294
|
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1295
|
+
xml_decl : [{
|
|
1296
|
+
token : "entity.other.attribute-name.decl-attribute-name.xml",
|
|
1297
|
+
regex : "(?:[-_a-zA-Z0-9]+:)?[-_a-zA-Z0-9]+"
|
|
1298
|
+
}, {
|
|
1299
|
+
token : "keyword.operator.decl-attribute-equals.xml",
|
|
1300
|
+
regex : "="
|
|
1301
|
+
}, {
|
|
1302
|
+
include: "whitespace"
|
|
1303
|
+
}, {
|
|
1304
|
+
include: "string"
|
|
1305
|
+
}, {
|
|
1306
|
+
token : "punctuation.xml-decl.xml",
|
|
1307
|
+
regex : "\\?>",
|
|
1308
|
+
next : "start"
|
|
1309
|
+
}],
|
|
1395
1310
|
|
|
1396
|
-
|
|
1397
|
-
{token : "punctuation.instruction.
|
|
1311
|
+
processing_instruction : [
|
|
1312
|
+
{token : "punctuation.instruction.xml", regex : "\\?>", next : "start"},
|
|
1313
|
+
{defaultToken : "instruction.xml"}
|
|
1398
1314
|
],
|
|
1399
1315
|
|
|
1400
1316
|
doctype : [
|
|
1401
|
-
{include : "
|
|
1317
|
+
{include : "whitespace"},
|
|
1402
1318
|
{include : "string"},
|
|
1403
|
-
{token : "
|
|
1404
|
-
{token : "xml-pe", regex : "[-_a-zA-Z0-9:]+"},
|
|
1405
|
-
{token : "punctuation.
|
|
1319
|
+
{token : "xml-pe.doctype.xml", regex : ">", next : "start"},
|
|
1320
|
+
{token : "xml-pe.xml", regex : "[-_a-zA-Z0-9:]+"},
|
|
1321
|
+
{token : "punctuation.int-subset", regex : "\\[", push : "int_subset"}
|
|
1406
1322
|
],
|
|
1407
1323
|
|
|
1408
|
-
|
|
1409
|
-
token : "text",
|
|
1324
|
+
int_subset : [{
|
|
1325
|
+
token : "text.xml",
|
|
1410
1326
|
regex : "\\s+"
|
|
1411
1327
|
}, {
|
|
1412
|
-
token: "punctuation.
|
|
1328
|
+
token: "punctuation.int-subset.xml",
|
|
1413
1329
|
regex: "]",
|
|
1414
1330
|
next: "pop"
|
|
1415
1331
|
}, {
|
|
1416
|
-
token : ["punctuation.
|
|
1332
|
+
token : ["punctuation.markup-decl.xml", "keyword.markup-decl.xml"],
|
|
1417
1333
|
regex : "(<\\!)([-_a-zA-Z0-9]+)",
|
|
1418
1334
|
push : [{
|
|
1419
1335
|
token : "text",
|
|
1420
1336
|
regex : "\\s+"
|
|
1421
1337
|
},
|
|
1422
1338
|
{
|
|
1423
|
-
token : "punctuation.
|
|
1339
|
+
token : "punctuation.markup-decl.xml",
|
|
1424
1340
|
regex : ">",
|
|
1425
1341
|
next : "pop"
|
|
1426
1342
|
},
|
|
@@ -1428,75 +1344,85 @@ var XmlHighlightRules = function(normalize) {
|
|
|
1428
1344
|
}],
|
|
1429
1345
|
|
|
1430
1346
|
cdata : [
|
|
1431
|
-
{token : "string.
|
|
1432
|
-
{token : "text", regex : "\\s+"},
|
|
1433
|
-
{token : "text", regex : "(?:[^\\]]|\\](?!\\]>))+"}
|
|
1347
|
+
{token : "string.cdata.xml", regex : "\\]\\]>", next : "start"},
|
|
1348
|
+
{token : "text.xml", regex : "\\s+"},
|
|
1349
|
+
{token : "text.xml", regex : "(?:[^\\]]|\\](?!\\]>))+"}
|
|
1434
1350
|
],
|
|
1435
1351
|
|
|
1436
1352
|
comment : [
|
|
1437
|
-
{token : "comment", regex : "-->", next : "start"},
|
|
1438
|
-
{defaultToken : "comment"}
|
|
1353
|
+
{token : "comment.xml", regex : "-->", next : "start"},
|
|
1354
|
+
{defaultToken : "comment.xml"}
|
|
1439
1355
|
],
|
|
1440
1356
|
|
|
1357
|
+
reference : [{
|
|
1358
|
+
token : "constant.language.escape.reference.xml",
|
|
1359
|
+
regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"
|
|
1360
|
+
}],
|
|
1361
|
+
|
|
1362
|
+
attr_reference : [{
|
|
1363
|
+
token : "constant.language.escape.reference.attribute-value.xml",
|
|
1364
|
+
regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"
|
|
1365
|
+
}],
|
|
1366
|
+
|
|
1441
1367
|
tag : [{
|
|
1442
|
-
token : ["meta.tag.punctuation.
|
|
1443
|
-
regex : "(<)((?:[-_a-zA-Z0-9]+:)?[-_a-zA-Z0-9]+)",
|
|
1368
|
+
token : ["meta.tag.punctuation.tag-open.xml", "meta.tag.punctuation.end-tag-open.xml", "meta.tag.tag-name.xml"],
|
|
1369
|
+
regex : "(?:(<)|(</))((?:[-_a-zA-Z0-9]+:)?[-_a-zA-Z0-9]+)",
|
|
1444
1370
|
next: [
|
|
1445
1371
|
{include : "attributes"},
|
|
1446
|
-
{token : "meta.tag.punctuation.
|
|
1447
|
-
]
|
|
1448
|
-
}, {
|
|
1449
|
-
token : ["meta.tag.punctuation.begin", "meta.tag.name"],
|
|
1450
|
-
regex : "(</)((?:[-_a-zA-Z0-9]+:)?[-_a-zA-Z0-9]+)",
|
|
1451
|
-
next: [
|
|
1452
|
-
{include : "space"},
|
|
1453
|
-
{token : "meta.tag.punctuation.end", regex : ">", next : "start"}
|
|
1372
|
+
{token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : "start"}
|
|
1454
1373
|
]
|
|
1455
1374
|
}],
|
|
1456
1375
|
|
|
1457
|
-
|
|
1458
|
-
{token : "text", regex : "\\s+"}
|
|
1376
|
+
tag_whitespace : [
|
|
1377
|
+
{token : "text.tag-whitespace.xml", regex : "\\s+"}
|
|
1378
|
+
],
|
|
1379
|
+
whitespace : [
|
|
1380
|
+
{token : "text.whitespace.xml", regex : "\\s+"}
|
|
1459
1381
|
],
|
|
1460
|
-
|
|
1461
|
-
reference : [{
|
|
1462
|
-
token : "constant.language.escape",
|
|
1463
|
-
regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"
|
|
1464
|
-
}, {
|
|
1465
|
-
token : "text", regex : "&"
|
|
1466
|
-
}],
|
|
1467
|
-
|
|
1468
1382
|
string: [{
|
|
1469
|
-
token : "string",
|
|
1383
|
+
token : "string.xml",
|
|
1470
1384
|
regex : "'",
|
|
1471
|
-
push :
|
|
1385
|
+
push : [
|
|
1386
|
+
{token : "string.xml", regex: "'", next: "pop"},
|
|
1387
|
+
{defaultToken : "string.xml"}
|
|
1388
|
+
]
|
|
1472
1389
|
}, {
|
|
1473
|
-
token : "string",
|
|
1390
|
+
token : "string.xml",
|
|
1474
1391
|
regex : '"',
|
|
1475
|
-
push :
|
|
1392
|
+
push : [
|
|
1393
|
+
{token : "string.xml", regex: '"', next: "pop"},
|
|
1394
|
+
{defaultToken : "string.xml"}
|
|
1395
|
+
]
|
|
1476
1396
|
}],
|
|
1477
1397
|
|
|
1478
|
-
qstring_inner: [
|
|
1479
|
-
{token : "string", regex: "'", next: "pop"},
|
|
1480
|
-
{include : "reference"},
|
|
1481
|
-
{defaultToken : "string"}
|
|
1482
|
-
],
|
|
1483
|
-
|
|
1484
|
-
qqstring_inner: [
|
|
1485
|
-
{token : "string", regex: '"', next: "pop"},
|
|
1486
|
-
{include : "reference"},
|
|
1487
|
-
{defaultToken : "string"}
|
|
1488
|
-
],
|
|
1489
|
-
|
|
1490
1398
|
attributes: [{
|
|
1491
|
-
token : "entity.other.attribute-name",
|
|
1399
|
+
token : "entity.other.attribute-name.xml",
|
|
1492
1400
|
regex : "(?:[-_a-zA-Z0-9]+:)?[-_a-zA-Z0-9]+"
|
|
1493
1401
|
}, {
|
|
1494
|
-
token : "keyword.operator.
|
|
1402
|
+
token : "keyword.operator.attribute-equals.xml",
|
|
1495
1403
|
regex : "="
|
|
1496
1404
|
}, {
|
|
1497
|
-
include
|
|
1405
|
+
include: "tag_whitespace"
|
|
1406
|
+
}, {
|
|
1407
|
+
include: "attribute_value"
|
|
1408
|
+
}],
|
|
1409
|
+
|
|
1410
|
+
attribute_value: [{
|
|
1411
|
+
token : "string.attribute-value.xml",
|
|
1412
|
+
regex : "'",
|
|
1413
|
+
push : [
|
|
1414
|
+
{token : "string.attribute-value.xml", regex: "'", next: "pop"},
|
|
1415
|
+
{include : "attr_reference"},
|
|
1416
|
+
{defaultToken : "string.attribute-value.xml"}
|
|
1417
|
+
]
|
|
1498
1418
|
}, {
|
|
1499
|
-
|
|
1419
|
+
token : "string.attribute-value.xml",
|
|
1420
|
+
regex : '"',
|
|
1421
|
+
push : [
|
|
1422
|
+
{token : "string.attribute-value.xml", regex: '"', next: "pop"},
|
|
1423
|
+
{include : "attr_reference"},
|
|
1424
|
+
{defaultToken : "string.attribute-value.xml"}
|
|
1425
|
+
]
|
|
1500
1426
|
}]
|
|
1501
1427
|
};
|
|
1502
1428
|
|
|
@@ -1509,18 +1435,17 @@ var XmlHighlightRules = function(normalize) {
|
|
|
1509
1435
|
|
|
1510
1436
|
this.embedTagRules = function(HighlightRules, prefix, tag){
|
|
1511
1437
|
this.$rules.tag.unshift({
|
|
1512
|
-
token : ["meta.tag.punctuation.
|
|
1513
|
-
regex : "(<)(" + tag + ")",
|
|
1438
|
+
token : ["meta.tag.punctuation.tag-open.xml", "meta.tag." + tag + ".tag-name.xml"],
|
|
1439
|
+
regex : "(<)(" + tag + "(?=\\s|>|$))",
|
|
1514
1440
|
next: [
|
|
1515
|
-
{include : "space"},
|
|
1516
1441
|
{include : "attributes"},
|
|
1517
|
-
{token : "meta.tag.punctuation.
|
|
1442
|
+
{token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : prefix + "start"}
|
|
1518
1443
|
]
|
|
1519
1444
|
});
|
|
1520
1445
|
|
|
1521
1446
|
this.$rules[tag + "-end"] = [
|
|
1522
|
-
{include : "
|
|
1523
|
-
{token : "meta.tag.punctuation.
|
|
1447
|
+
{include : "attributes"},
|
|
1448
|
+
{token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next: "start",
|
|
1524
1449
|
onMatch : function(value, currentState, stack) {
|
|
1525
1450
|
stack.splice(0);
|
|
1526
1451
|
return this.token;
|
|
@@ -1528,14 +1453,14 @@ var XmlHighlightRules = function(normalize) {
|
|
|
1528
1453
|
]
|
|
1529
1454
|
|
|
1530
1455
|
this.embedRules(HighlightRules, prefix, [{
|
|
1531
|
-
token: ["meta.tag.punctuation.
|
|
1532
|
-
regex : "(</)(" + tag + ")",
|
|
1456
|
+
token: ["meta.tag.punctuation.end-tag-open.xml", "meta.tag." + tag + ".tag-name.xml"],
|
|
1457
|
+
regex : "(</)(" + tag + "(?=\\s|>|$))",
|
|
1533
1458
|
next: tag + "-end"
|
|
1534
1459
|
}, {
|
|
1535
|
-
token: "string.
|
|
1460
|
+
token: "string.cdata.xml",
|
|
1536
1461
|
regex : "<\\!\\[CDATA\\["
|
|
1537
1462
|
}, {
|
|
1538
|
-
token: "string.
|
|
1463
|
+
token: "string.cdata.xml",
|
|
1539
1464
|
regex : "\\]\\]>"
|
|
1540
1465
|
}]);
|
|
1541
1466
|
};
|
|
@@ -1547,183 +1472,194 @@ oop.inherits(XmlHighlightRules, TextHighlightRules);
|
|
|
1547
1472
|
exports.XmlHighlightRules = XmlHighlightRules;
|
|
1548
1473
|
});
|
|
1549
1474
|
|
|
1550
|
-
define(
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
function string(state) {
|
|
1554
|
-
return [{
|
|
1555
|
-
token : "string",
|
|
1556
|
-
regex : '"',
|
|
1557
|
-
next : state + "_qqstring"
|
|
1558
|
-
}, {
|
|
1559
|
-
token : "string",
|
|
1560
|
-
regex : "'",
|
|
1561
|
-
next : state + "_qstring"
|
|
1562
|
-
}];
|
|
1563
|
-
}
|
|
1564
|
-
|
|
1565
|
-
function multiLineString(quote, state) {
|
|
1566
|
-
return [
|
|
1567
|
-
{token : "string", regex : quote, next : state},
|
|
1568
|
-
{
|
|
1569
|
-
token : "constant.language.escape",
|
|
1570
|
-
regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"
|
|
1571
|
-
},
|
|
1572
|
-
{defaultToken : "string"}
|
|
1573
|
-
];
|
|
1574
|
-
}
|
|
1575
|
-
|
|
1576
|
-
exports.tag = function(states, name, nextState, tagMap) {
|
|
1577
|
-
states[name] = [{
|
|
1578
|
-
token : "text",
|
|
1579
|
-
regex : "\\s+"
|
|
1580
|
-
}, {
|
|
1581
|
-
|
|
1582
|
-
token : !tagMap ? "meta.tag.tag-name" : function(value) {
|
|
1583
|
-
if (tagMap[value])
|
|
1584
|
-
return "meta.tag.tag-name." + tagMap[value];
|
|
1585
|
-
else
|
|
1586
|
-
return "meta.tag.tag-name";
|
|
1587
|
-
},
|
|
1588
|
-
regex : "[-_a-zA-Z0-9:]+",
|
|
1589
|
-
next : name + "_embed_attribute_list"
|
|
1590
|
-
}, {
|
|
1591
|
-
token: "empty",
|
|
1592
|
-
regex: "",
|
|
1593
|
-
next : name + "_embed_attribute_list"
|
|
1594
|
-
}];
|
|
1595
|
-
|
|
1596
|
-
states[name + "_qstring"] = multiLineString("'", name + "_embed_attribute_list");
|
|
1597
|
-
states[name + "_qqstring"] = multiLineString("\"", name + "_embed_attribute_list");
|
|
1598
|
-
|
|
1599
|
-
states[name + "_embed_attribute_list"] = [{
|
|
1600
|
-
token : "meta.tag.r",
|
|
1601
|
-
regex : "/?>",
|
|
1602
|
-
next : nextState
|
|
1603
|
-
}, {
|
|
1604
|
-
token : "keyword.operator",
|
|
1605
|
-
regex : "="
|
|
1606
|
-
}, {
|
|
1607
|
-
token : "entity.other.attribute-name",
|
|
1608
|
-
regex : "[-_a-zA-Z0-9:]+"
|
|
1609
|
-
}, {
|
|
1610
|
-
token : "constant.numeric", // float
|
|
1611
|
-
regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"
|
|
1612
|
-
}, {
|
|
1613
|
-
token : "text",
|
|
1614
|
-
regex : "\\s+"
|
|
1615
|
-
}].concat(string(name));
|
|
1616
|
-
};
|
|
1617
|
-
|
|
1618
|
-
});
|
|
1475
|
+
define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"], function(require, exports, module) {
|
|
1476
|
+
"use strict";
|
|
1619
1477
|
|
|
1620
|
-
|
|
1478
|
+
var oop = require("../lib/oop");
|
|
1479
|
+
var lang = require("../lib/lang");
|
|
1480
|
+
var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules;
|
|
1481
|
+
var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
|
|
1482
|
+
var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules;
|
|
1621
1483
|
|
|
1484
|
+
var tagMap = lang.createMap({
|
|
1485
|
+
a : 'anchor',
|
|
1486
|
+
button : 'form',
|
|
1487
|
+
form : 'form',
|
|
1488
|
+
img : 'image',
|
|
1489
|
+
input : 'form',
|
|
1490
|
+
label : 'form',
|
|
1491
|
+
option : 'form',
|
|
1492
|
+
script : 'script',
|
|
1493
|
+
select : 'form',
|
|
1494
|
+
textarea : 'form',
|
|
1495
|
+
style : 'style',
|
|
1496
|
+
table : 'table',
|
|
1497
|
+
tbody : 'table',
|
|
1498
|
+
td : 'table',
|
|
1499
|
+
tfoot : 'table',
|
|
1500
|
+
th : 'table',
|
|
1501
|
+
tr : 'table'
|
|
1502
|
+
});
|
|
1503
|
+
|
|
1504
|
+
var HtmlHighlightRules = function() {
|
|
1505
|
+
XmlHighlightRules.call(this);
|
|
1506
|
+
|
|
1507
|
+
this.addRules({
|
|
1508
|
+
attributes: [{
|
|
1509
|
+
include : "tag_whitespace"
|
|
1510
|
+
}, {
|
|
1511
|
+
token : "entity.other.attribute-name.xml",
|
|
1512
|
+
regex : "[-_a-zA-Z0-9:]+"
|
|
1513
|
+
}, {
|
|
1514
|
+
token : "keyword.operator.attribute-equals.xml",
|
|
1515
|
+
regex : "=",
|
|
1516
|
+
push : [{
|
|
1517
|
+
include: "tag_whitespace"
|
|
1518
|
+
}, {
|
|
1519
|
+
token : "string.unquoted.attribute-value.html",
|
|
1520
|
+
regex : "[^<>='\"`\\s]+",
|
|
1521
|
+
next : "pop"
|
|
1522
|
+
}, {
|
|
1523
|
+
token : "empty",
|
|
1524
|
+
regex : "",
|
|
1525
|
+
next : "pop"
|
|
1526
|
+
}]
|
|
1527
|
+
}, {
|
|
1528
|
+
include : "attribute_value"
|
|
1529
|
+
}],
|
|
1530
|
+
tag: [{
|
|
1531
|
+
token : function(start, tag) {
|
|
1532
|
+
var group = tagMap[tag];
|
|
1533
|
+
return ["meta.tag.punctuation." + (start == "<" ? "" : "end-") + "tag-open.xml",
|
|
1534
|
+
"meta.tag" + (group ? "." + group : "") + ".tag-name.xml"];
|
|
1535
|
+
},
|
|
1536
|
+
regex : "(</?)([-_a-zA-Z0-9:]+)",
|
|
1537
|
+
next: "tag_stuff"
|
|
1538
|
+
}],
|
|
1539
|
+
tag_stuff: [
|
|
1540
|
+
{include : "attributes"},
|
|
1541
|
+
{token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : "start"}
|
|
1542
|
+
],
|
|
1543
|
+
});
|
|
1544
|
+
|
|
1545
|
+
this.embedTagRules(CssHighlightRules, "css-", "style");
|
|
1546
|
+
this.embedTagRules(JavaScriptHighlightRules, "js-", "script");
|
|
1547
|
+
|
|
1548
|
+
if (this.constructor === HtmlHighlightRules)
|
|
1549
|
+
this.normalizeRules();
|
|
1550
|
+
};
|
|
1551
|
+
|
|
1552
|
+
oop.inherits(HtmlHighlightRules, XmlHighlightRules);
|
|
1553
|
+
|
|
1554
|
+
exports.HtmlHighlightRules = HtmlHighlightRules;
|
|
1555
|
+
});
|
|
1556
|
+
|
|
1557
|
+
define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator"], function(require, exports, module) {
|
|
1558
|
+
"use strict";
|
|
1622
1559
|
|
|
1623
1560
|
var oop = require("../../lib/oop");
|
|
1624
|
-
var
|
|
1625
|
-
var CstyleBehaviour = require("./cstyle").CstyleBehaviour;
|
|
1561
|
+
var Behaviour = require("../behaviour").Behaviour;
|
|
1626
1562
|
var TokenIterator = require("../../token_iterator").TokenIterator;
|
|
1627
|
-
var voidElements = ['area', 'base', 'br', 'col', 'command', 'embed', 'hr', 'img', 'input', 'keygen', 'link', 'meta', 'param', 'source', 'track', 'wbr'];
|
|
1628
1563
|
|
|
1629
|
-
function
|
|
1630
|
-
|
|
1631
|
-
return type.split('.').every(function(type){
|
|
1632
|
-
return (tokenTypes.indexOf(type) !== -1);
|
|
1633
|
-
});
|
|
1634
|
-
return hasType;
|
|
1564
|
+
function is(token, type) {
|
|
1565
|
+
return token.type.lastIndexOf(type + ".xml") > -1;
|
|
1635
1566
|
}
|
|
1636
1567
|
|
|
1637
|
-
var
|
|
1568
|
+
var XmlBehaviour = function () {
|
|
1638
1569
|
|
|
1639
|
-
this.
|
|
1640
|
-
|
|
1641
|
-
|
|
1642
|
-
|
|
1643
|
-
|
|
1644
|
-
|
|
1570
|
+
this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
|
|
1571
|
+
if (text == '"' || text == "'") {
|
|
1572
|
+
var quote = text;
|
|
1573
|
+
var selected = session.doc.getTextRange(editor.getSelectionRange());
|
|
1574
|
+
if (selected !== "" && selected !== "'" && selected != '"' && editor.getWrapBehavioursEnabled()) {
|
|
1575
|
+
return {
|
|
1576
|
+
text: quote + selected + quote,
|
|
1577
|
+
selection: false
|
|
1578
|
+
};
|
|
1579
|
+
}
|
|
1580
|
+
|
|
1581
|
+
var cursor = editor.getCursorPosition();
|
|
1582
|
+
var line = session.doc.getLine(cursor.row);
|
|
1583
|
+
var rightChar = line.substring(cursor.column, cursor.column + 1);
|
|
1584
|
+
var iterator = new TokenIterator(session, cursor.row, cursor.column);
|
|
1645
1585
|
var token = iterator.getCurrentToken();
|
|
1646
1586
|
|
|
1647
|
-
if (
|
|
1648
|
-
return
|
|
1649
|
-
|
|
1650
|
-
|
|
1651
|
-
|
|
1652
|
-
token = iterator.stepBackward();
|
|
1653
|
-
} while (token && (hasType(token, 'string') || hasType(token, 'keyword.operator') || hasType(token, 'entity.attribute-name') || hasType(token, 'text')));
|
|
1654
|
-
} else {
|
|
1655
|
-
atCursor = true;
|
|
1656
|
-
}
|
|
1657
|
-
if (!token || !hasType(token, 'meta.tag.name') || iterator.stepBackward().value.match('/')) {
|
|
1658
|
-
return;
|
|
1659
|
-
}
|
|
1660
|
-
var element = token.value;
|
|
1661
|
-
if (atCursor){
|
|
1662
|
-
var element = element.substring(0, position.column - token.start);
|
|
1587
|
+
if (rightChar == quote && (is(token, "attribute-value") || is(token, "string"))) {
|
|
1588
|
+
return {
|
|
1589
|
+
text: "",
|
|
1590
|
+
selection: [1, 1]
|
|
1591
|
+
};
|
|
1663
1592
|
}
|
|
1664
|
-
|
|
1593
|
+
|
|
1594
|
+
if (!token)
|
|
1595
|
+
token = iterator.stepBackward();
|
|
1596
|
+
|
|
1597
|
+
if (!token)
|
|
1665
1598
|
return;
|
|
1599
|
+
|
|
1600
|
+
while (is(token, "tag-whitespace") || is(token, "whitespace")) {
|
|
1601
|
+
token = iterator.stepBackward();
|
|
1666
1602
|
}
|
|
1667
|
-
|
|
1668
|
-
|
|
1669
|
-
|
|
1603
|
+
var rightSpace = !rightChar || rightChar.match(/\s/);
|
|
1604
|
+
if (is(token, "attribute-equals") && (rightSpace || rightChar == '>') || (is(token, "decl-attribute-equals") && (rightSpace || rightChar == '?'))) {
|
|
1605
|
+
return {
|
|
1606
|
+
text: quote + quote,
|
|
1607
|
+
selection: [1, 1]
|
|
1608
|
+
};
|
|
1670
1609
|
}
|
|
1671
1610
|
}
|
|
1672
1611
|
});
|
|
1673
|
-
}
|
|
1674
|
-
oop.inherits(HtmlBehaviour, XmlBehaviour);
|
|
1675
|
-
|
|
1676
|
-
exports.HtmlBehaviour = HtmlBehaviour;
|
|
1677
|
-
});
|
|
1678
1612
|
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
var
|
|
1683
|
-
var
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
return type.split('.').every(function(type){
|
|
1690
|
-
return (tokenTypes.indexOf(type) !== -1);
|
|
1613
|
+
this.add("string_dquotes", "deletion", function(state, action, editor, session, range) {
|
|
1614
|
+
var selected = session.doc.getTextRange(range);
|
|
1615
|
+
if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
|
|
1616
|
+
var line = session.doc.getLine(range.start.row);
|
|
1617
|
+
var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
|
|
1618
|
+
if (rightChar == selected) {
|
|
1619
|
+
range.end.column++;
|
|
1620
|
+
return range;
|
|
1621
|
+
}
|
|
1622
|
+
}
|
|
1691
1623
|
});
|
|
1692
|
-
return hasType;
|
|
1693
|
-
}
|
|
1694
1624
|
|
|
1695
|
-
var XmlBehaviour = function () {
|
|
1696
|
-
|
|
1697
|
-
this.inherit(CstyleBehaviour, ["string_dquotes"]); // Get string behaviour
|
|
1698
|
-
|
|
1699
1625
|
this.add("autoclosing", "insertion", function (state, action, editor, session, text) {
|
|
1700
1626
|
if (text == '>') {
|
|
1701
1627
|
var position = editor.getCursorPosition();
|
|
1702
1628
|
var iterator = new TokenIterator(session, position.row, position.column);
|
|
1703
|
-
var token = iterator.getCurrentToken();
|
|
1704
|
-
|
|
1705
|
-
if (token && hasType(token, 'string') && iterator.getCurrentTokenColumn() + token.value.length > position.column)
|
|
1629
|
+
var token = iterator.getCurrentToken() || iterator.stepBackward();
|
|
1630
|
+
if (!token || !(is(token, "tag-name") || is(token, "tag-whitespace") || is(token, "attribute-name") || is(token, "attribute-equals") || is(token, "attribute-value")))
|
|
1706
1631
|
return;
|
|
1707
|
-
|
|
1708
|
-
if (!token || !hasType(token, 'meta.tag') && !(hasType(token, 'text') && token.value.match('/'))){
|
|
1709
|
-
do {
|
|
1710
|
-
token = iterator.stepBackward();
|
|
1711
|
-
} while (token && (hasType(token, 'string') || hasType(token, 'keyword.operator') || hasType(token, 'entity.attribute-name') || hasType(token, 'text')));
|
|
1712
|
-
} else {
|
|
1713
|
-
atCursor = true;
|
|
1714
|
-
}
|
|
1715
|
-
if (!token || !hasType(token, 'meta.tag.name') || iterator.stepBackward().value.match('/')) {
|
|
1632
|
+
if (is(token, "reference.attribute-value"))
|
|
1716
1633
|
return;
|
|
1634
|
+
if (is(token, "attribute-value")) {
|
|
1635
|
+
var firstChar = token.value.charAt(0);
|
|
1636
|
+
if (firstChar == '"' || firstChar == "'") {
|
|
1637
|
+
var lastChar = token.value.charAt(token.value.length - 1);
|
|
1638
|
+
var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length;
|
|
1639
|
+
if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar)
|
|
1640
|
+
return;
|
|
1641
|
+
}
|
|
1717
1642
|
}
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
var tag = tag.substring(0, position.column - token.start);
|
|
1643
|
+
while (!is(token, "tag-name")) {
|
|
1644
|
+
token = iterator.stepBackward();
|
|
1721
1645
|
}
|
|
1722
1646
|
|
|
1647
|
+
var tokenRow = iterator.getCurrentTokenRow();
|
|
1648
|
+
var tokenColumn = iterator.getCurrentTokenColumn();
|
|
1649
|
+
if (is(iterator.stepBackward(), "end-tag-open"))
|
|
1650
|
+
return;
|
|
1651
|
+
|
|
1652
|
+
var element = token.value;
|
|
1653
|
+
if (tokenRow == position.row)
|
|
1654
|
+
element = element.substring(0, position.column - tokenColumn);
|
|
1655
|
+
|
|
1656
|
+
if (this.voidElements.hasOwnProperty(element.toLowerCase()))
|
|
1657
|
+
return;
|
|
1658
|
+
|
|
1723
1659
|
return {
|
|
1724
|
-
text: '>' + '</' +
|
|
1660
|
+
text: '>' + '</' + element + '>',
|
|
1725
1661
|
selection: [1, 1]
|
|
1726
|
-
}
|
|
1662
|
+
};
|
|
1727
1663
|
}
|
|
1728
1664
|
});
|
|
1729
1665
|
|
|
@@ -1739,66 +1675,20 @@ var XmlBehaviour = function () {
|
|
|
1739
1675
|
return {
|
|
1740
1676
|
text: '\n' + indent + '\n' + next_indent,
|
|
1741
1677
|
selection: [1, indent.length, 1, indent.length]
|
|
1742
|
-
}
|
|
1678
|
+
};
|
|
1743
1679
|
}
|
|
1744
1680
|
}
|
|
1745
1681
|
});
|
|
1746
1682
|
|
|
1747
|
-
}
|
|
1748
|
-
oop.inherits(XmlBehaviour, Behaviour);
|
|
1749
|
-
|
|
1750
|
-
exports.XmlBehaviour = XmlBehaviour;
|
|
1751
|
-
});
|
|
1752
|
-
|
|
1753
|
-
define('ace/mode/folding/html', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/folding/mixed', 'ace/mode/folding/xml', 'ace/mode/folding/cstyle'], function(require, exports, module) {
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
var oop = require("../../lib/oop");
|
|
1757
|
-
var MixedFoldMode = require("./mixed").FoldMode;
|
|
1758
|
-
var XmlFoldMode = require("./xml").FoldMode;
|
|
1759
|
-
var CStyleFoldMode = require("./cstyle").FoldMode;
|
|
1760
|
-
|
|
1761
|
-
var FoldMode = exports.FoldMode = function() {
|
|
1762
|
-
MixedFoldMode.call(this, new XmlFoldMode({
|
|
1763
|
-
"area": 1,
|
|
1764
|
-
"base": 1,
|
|
1765
|
-
"br": 1,
|
|
1766
|
-
"col": 1,
|
|
1767
|
-
"command": 1,
|
|
1768
|
-
"embed": 1,
|
|
1769
|
-
"hr": 1,
|
|
1770
|
-
"img": 1,
|
|
1771
|
-
"input": 1,
|
|
1772
|
-
"keygen": 1,
|
|
1773
|
-
"link": 1,
|
|
1774
|
-
"meta": 1,
|
|
1775
|
-
"param": 1,
|
|
1776
|
-
"source": 1,
|
|
1777
|
-
"track": 1,
|
|
1778
|
-
"wbr": 1,
|
|
1779
|
-
"li": 1,
|
|
1780
|
-
"dt": 1,
|
|
1781
|
-
"dd": 1,
|
|
1782
|
-
"p": 1,
|
|
1783
|
-
"rt": 1,
|
|
1784
|
-
"rp": 1,
|
|
1785
|
-
"optgroup": 1,
|
|
1786
|
-
"option": 1,
|
|
1787
|
-
"colgroup": 1,
|
|
1788
|
-
"td": 1,
|
|
1789
|
-
"th": 1
|
|
1790
|
-
}), {
|
|
1791
|
-
"js-": new CStyleFoldMode(),
|
|
1792
|
-
"css-": new CStyleFoldMode()
|
|
1793
|
-
});
|
|
1794
1683
|
};
|
|
1795
1684
|
|
|
1796
|
-
oop.inherits(
|
|
1685
|
+
oop.inherits(XmlBehaviour, Behaviour);
|
|
1797
1686
|
|
|
1687
|
+
exports.XmlBehaviour = XmlBehaviour;
|
|
1798
1688
|
});
|
|
1799
1689
|
|
|
1800
|
-
define(
|
|
1801
|
-
|
|
1690
|
+
define("ace/mode/folding/mixed",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"], function(require, exports, module) {
|
|
1691
|
+
"use strict";
|
|
1802
1692
|
|
|
1803
1693
|
var oop = require("../../lib/oop");
|
|
1804
1694
|
var BaseFoldMode = require("./fold_mode").FoldMode;
|
|
@@ -1851,8 +1741,8 @@ oop.inherits(FoldMode, BaseFoldMode);
|
|
|
1851
1741
|
|
|
1852
1742
|
});
|
|
1853
1743
|
|
|
1854
|
-
define(
|
|
1855
|
-
|
|
1744
|
+
define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/range","ace/mode/folding/fold_mode","ace/token_iterator"], function(require, exports, module) {
|
|
1745
|
+
"use strict";
|
|
1856
1746
|
|
|
1857
1747
|
var oop = require("../../lib/oop");
|
|
1858
1748
|
var lang = require("../../lib/lang");
|
|
@@ -1860,91 +1750,118 @@ var Range = require("../../range").Range;
|
|
|
1860
1750
|
var BaseFoldMode = require("./fold_mode").FoldMode;
|
|
1861
1751
|
var TokenIterator = require("../../token_iterator").TokenIterator;
|
|
1862
1752
|
|
|
1863
|
-
var FoldMode = exports.FoldMode = function(voidElements) {
|
|
1753
|
+
var FoldMode = exports.FoldMode = function(voidElements, optionalEndTags) {
|
|
1864
1754
|
BaseFoldMode.call(this);
|
|
1865
1755
|
this.voidElements = voidElements || {};
|
|
1756
|
+
this.optionalEndTags = oop.mixin({}, this.voidElements);
|
|
1757
|
+
if (optionalEndTags)
|
|
1758
|
+
oop.mixin(this.optionalEndTags, optionalEndTags);
|
|
1759
|
+
|
|
1866
1760
|
};
|
|
1867
1761
|
oop.inherits(FoldMode, BaseFoldMode);
|
|
1868
1762
|
|
|
1763
|
+
var Tag = function() {
|
|
1764
|
+
this.tagName = "";
|
|
1765
|
+
this.closing = false;
|
|
1766
|
+
this.selfClosing = false;
|
|
1767
|
+
this.start = {row: 0, column: 0};
|
|
1768
|
+
this.end = {row: 0, column: 0};
|
|
1769
|
+
};
|
|
1770
|
+
|
|
1771
|
+
function is(token, type) {
|
|
1772
|
+
return token.type.lastIndexOf(type + ".xml") > -1;
|
|
1773
|
+
}
|
|
1774
|
+
|
|
1869
1775
|
(function() {
|
|
1870
1776
|
|
|
1871
1777
|
this.getFoldWidget = function(session, foldStyle, row) {
|
|
1872
1778
|
var tag = this._getFirstTagInLine(session, row);
|
|
1873
1779
|
|
|
1874
|
-
if (tag
|
|
1875
|
-
return foldStyle == "markbeginend" ? "end" : "";
|
|
1876
|
-
|
|
1877
|
-
if (!tag.tagName || this.voidElements[tag.tagName.toLowerCase()])
|
|
1780
|
+
if (!tag)
|
|
1878
1781
|
return "";
|
|
1879
1782
|
|
|
1880
|
-
if (tag.selfClosing)
|
|
1783
|
+
if (tag.closing || (!tag.tagName && tag.selfClosing))
|
|
1784
|
+
return foldStyle == "markbeginend" ? "end" : "";
|
|
1785
|
+
|
|
1786
|
+
if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase()))
|
|
1881
1787
|
return "";
|
|
1882
1788
|
|
|
1883
|
-
if (
|
|
1789
|
+
if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column))
|
|
1884
1790
|
return "";
|
|
1885
1791
|
|
|
1886
1792
|
return "start";
|
|
1887
1793
|
};
|
|
1888
|
-
|
|
1889
1794
|
this._getFirstTagInLine = function(session, row) {
|
|
1890
1795
|
var tokens = session.getTokens(row);
|
|
1891
|
-
var
|
|
1796
|
+
var tag = new Tag();
|
|
1797
|
+
|
|
1892
1798
|
for (var i = 0; i < tokens.length; i++) {
|
|
1893
1799
|
var token = tokens[i];
|
|
1894
|
-
if (token
|
|
1895
|
-
|
|
1896
|
-
|
|
1897
|
-
|
|
1800
|
+
if (is(token, "tag-open")) {
|
|
1801
|
+
tag.end.column = tag.start.column + token.value.length;
|
|
1802
|
+
tag.closing = is(token, "end-tag-open");
|
|
1803
|
+
token = tokens[++i];
|
|
1804
|
+
if (!token)
|
|
1805
|
+
return null;
|
|
1806
|
+
tag.tagName = token.value;
|
|
1807
|
+
tag.end.column += token.value.length;
|
|
1808
|
+
for (i++; i < tokens.length; i++) {
|
|
1809
|
+
token = tokens[i];
|
|
1810
|
+
tag.end.column += token.value.length;
|
|
1811
|
+
if (is(token, "tag-close")) {
|
|
1812
|
+
tag.selfClosing = token.value == '/>';
|
|
1813
|
+
break;
|
|
1814
|
+
}
|
|
1815
|
+
}
|
|
1816
|
+
return tag;
|
|
1817
|
+
} else if (is(token, "tag-close")) {
|
|
1818
|
+
tag.selfClosing = token.value == '/>';
|
|
1819
|
+
return tag;
|
|
1820
|
+
}
|
|
1821
|
+
tag.start.column += token.value.length;
|
|
1898
1822
|
}
|
|
1899
|
-
|
|
1900
|
-
return
|
|
1823
|
+
|
|
1824
|
+
return null;
|
|
1901
1825
|
};
|
|
1902
1826
|
|
|
1903
|
-
this.
|
|
1904
|
-
|
|
1905
|
-
|
|
1906
|
-
var match = tag.match(this.tagRe);
|
|
1827
|
+
this._findEndTagInLine = function(session, row, tagName, startColumn) {
|
|
1828
|
+
var tokens = session.getTokens(row);
|
|
1907
1829
|
var column = 0;
|
|
1908
|
-
|
|
1909
|
-
|
|
1910
|
-
value
|
|
1911
|
-
|
|
1912
|
-
|
|
1913
|
-
|
|
1914
|
-
|
|
1915
|
-
|
|
1916
|
-
|
|
1830
|
+
for (var i = 0; i < tokens.length; i++) {
|
|
1831
|
+
var token = tokens[i];
|
|
1832
|
+
column += token.value.length;
|
|
1833
|
+
if (column < startColumn)
|
|
1834
|
+
continue;
|
|
1835
|
+
if (is(token, "end-tag-open")) {
|
|
1836
|
+
token = tokens[i + 1];
|
|
1837
|
+
if (token && token.value == tagName)
|
|
1838
|
+
return true;
|
|
1839
|
+
}
|
|
1840
|
+
}
|
|
1841
|
+
return false;
|
|
1917
1842
|
};
|
|
1918
1843
|
this._readTagForward = function(iterator) {
|
|
1919
1844
|
var token = iterator.getCurrentToken();
|
|
1920
1845
|
if (!token)
|
|
1921
1846
|
return null;
|
|
1922
|
-
|
|
1923
|
-
var
|
|
1924
|
-
var start;
|
|
1925
|
-
|
|
1847
|
+
|
|
1848
|
+
var tag = new Tag();
|
|
1926
1849
|
do {
|
|
1927
|
-
if (token
|
|
1928
|
-
|
|
1929
|
-
|
|
1930
|
-
|
|
1931
|
-
|
|
1932
|
-
|
|
1933
|
-
|
|
1934
|
-
|
|
1935
|
-
|
|
1936
|
-
|
|
1937
|
-
|
|
1938
|
-
|
|
1939
|
-
row: iterator.getCurrentTokenRow(),
|
|
1940
|
-
column: iterator.getCurrentTokenColumn() + token.value.length
|
|
1941
|
-
};
|
|
1942
|
-
iterator.stepForward();
|
|
1943
|
-
return tag;
|
|
1944
|
-
}
|
|
1850
|
+
if (is(token, "tag-open")) {
|
|
1851
|
+
tag.closing = is(token, "end-tag-open");
|
|
1852
|
+
tag.start.row = iterator.getCurrentTokenRow();
|
|
1853
|
+
tag.start.column = iterator.getCurrentTokenColumn();
|
|
1854
|
+
} else if (is(token, "tag-name")) {
|
|
1855
|
+
tag.tagName = token.value;
|
|
1856
|
+
} else if (is(token, "tag-close")) {
|
|
1857
|
+
tag.selfClosing = token.value == "/>";
|
|
1858
|
+
tag.end.row = iterator.getCurrentTokenRow();
|
|
1859
|
+
tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;
|
|
1860
|
+
iterator.stepForward();
|
|
1861
|
+
return tag;
|
|
1945
1862
|
}
|
|
1946
1863
|
} while(token = iterator.stepForward());
|
|
1947
|
-
|
|
1864
|
+
|
|
1948
1865
|
return null;
|
|
1949
1866
|
};
|
|
1950
1867
|
|
|
@@ -1952,32 +1869,24 @@ oop.inherits(FoldMode, BaseFoldMode);
|
|
|
1952
1869
|
var token = iterator.getCurrentToken();
|
|
1953
1870
|
if (!token)
|
|
1954
1871
|
return null;
|
|
1955
|
-
|
|
1956
|
-
var value = "";
|
|
1957
|
-
var end;
|
|
1958
1872
|
|
|
1873
|
+
var tag = new Tag();
|
|
1959
1874
|
do {
|
|
1960
|
-
if (token
|
|
1961
|
-
|
|
1962
|
-
|
|
1963
|
-
|
|
1964
|
-
|
|
1965
|
-
|
|
1966
|
-
|
|
1967
|
-
|
|
1968
|
-
|
|
1969
|
-
|
|
1970
|
-
|
|
1971
|
-
|
|
1972
|
-
row: iterator.getCurrentTokenRow(),
|
|
1973
|
-
column: iterator.getCurrentTokenColumn()
|
|
1974
|
-
};
|
|
1975
|
-
iterator.stepBackward();
|
|
1976
|
-
return tag;
|
|
1977
|
-
}
|
|
1875
|
+
if (is(token, "tag-open")) {
|
|
1876
|
+
tag.closing = is(token, "end-tag-open");
|
|
1877
|
+
tag.start.row = iterator.getCurrentTokenRow();
|
|
1878
|
+
tag.start.column = iterator.getCurrentTokenColumn();
|
|
1879
|
+
iterator.stepBackward();
|
|
1880
|
+
return tag;
|
|
1881
|
+
} else if (is(token, "tag-name")) {
|
|
1882
|
+
tag.tagName = token.value;
|
|
1883
|
+
} else if (is(token, "tag-close")) {
|
|
1884
|
+
tag.selfClosing = token.value == "/>";
|
|
1885
|
+
tag.end.row = iterator.getCurrentTokenRow();
|
|
1886
|
+
tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;
|
|
1978
1887
|
}
|
|
1979
1888
|
} while(token = iterator.stepBackward());
|
|
1980
|
-
|
|
1889
|
+
|
|
1981
1890
|
return null;
|
|
1982
1891
|
};
|
|
1983
1892
|
|
|
@@ -1988,10 +1897,10 @@ oop.inherits(FoldMode, BaseFoldMode);
|
|
|
1988
1897
|
if (!tag || top.tagName == tag.tagName) {
|
|
1989
1898
|
return stack.pop();
|
|
1990
1899
|
}
|
|
1991
|
-
else if (this.
|
|
1900
|
+
else if (this.optionalEndTags.hasOwnProperty(tag.tagName)) {
|
|
1992
1901
|
return;
|
|
1993
1902
|
}
|
|
1994
|
-
else if (this.
|
|
1903
|
+
else if (this.optionalEndTags.hasOwnProperty(top.tagName)) {
|
|
1995
1904
|
stack.pop();
|
|
1996
1905
|
continue;
|
|
1997
1906
|
} else {
|
|
@@ -2003,7 +1912,7 @@ oop.inherits(FoldMode, BaseFoldMode);
|
|
|
2003
1912
|
this.getFoldWidgetRange = function(session, foldStyle, row) {
|
|
2004
1913
|
var firstTag = this._getFirstTagInLine(session, row);
|
|
2005
1914
|
|
|
2006
|
-
if (!firstTag
|
|
1915
|
+
if (!firstTag)
|
|
2007
1916
|
return null;
|
|
2008
1917
|
|
|
2009
1918
|
var isBackward = firstTag.closing || firstTag.selfClosing;
|
|
@@ -2011,10 +1920,10 @@ oop.inherits(FoldMode, BaseFoldMode);
|
|
|
2011
1920
|
var tag;
|
|
2012
1921
|
|
|
2013
1922
|
if (!isBackward) {
|
|
2014
|
-
var iterator = new TokenIterator(session, row, firstTag.column);
|
|
1923
|
+
var iterator = new TokenIterator(session, row, firstTag.start.column);
|
|
2015
1924
|
var start = {
|
|
2016
1925
|
row: row,
|
|
2017
|
-
column: firstTag.column + firstTag.tagName.length + 2
|
|
1926
|
+
column: firstTag.start.column + firstTag.tagName.length + 2
|
|
2018
1927
|
};
|
|
2019
1928
|
while (tag = this._readTagForward(iterator)) {
|
|
2020
1929
|
if (tag.selfClosing) {
|
|
@@ -2032,15 +1941,15 @@ oop.inherits(FoldMode, BaseFoldMode);
|
|
|
2032
1941
|
return Range.fromPoints(start, tag.start);
|
|
2033
1942
|
}
|
|
2034
1943
|
else {
|
|
2035
|
-
stack.push(tag)
|
|
1944
|
+
stack.push(tag);
|
|
2036
1945
|
}
|
|
2037
1946
|
}
|
|
2038
1947
|
}
|
|
2039
1948
|
else {
|
|
2040
|
-
var iterator = new TokenIterator(session, row, firstTag.column
|
|
1949
|
+
var iterator = new TokenIterator(session, row, firstTag.end.column);
|
|
2041
1950
|
var end = {
|
|
2042
1951
|
row: row,
|
|
2043
|
-
column: firstTag.column
|
|
1952
|
+
column: firstTag.start.column
|
|
2044
1953
|
};
|
|
2045
1954
|
|
|
2046
1955
|
while (tag = this._readTagBackward(iterator)) {
|
|
@@ -2061,7 +1970,7 @@ oop.inherits(FoldMode, BaseFoldMode);
|
|
|
2061
1970
|
}
|
|
2062
1971
|
}
|
|
2063
1972
|
else {
|
|
2064
|
-
stack.push(tag)
|
|
1973
|
+
stack.push(tag);
|
|
2065
1974
|
}
|
|
2066
1975
|
}
|
|
2067
1976
|
}
|
|
@@ -2072,8 +1981,27 @@ oop.inherits(FoldMode, BaseFoldMode);
|
|
|
2072
1981
|
|
|
2073
1982
|
});
|
|
2074
1983
|
|
|
2075
|
-
define(
|
|
1984
|
+
define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"], function(require, exports, module) {
|
|
1985
|
+
"use strict";
|
|
1986
|
+
|
|
1987
|
+
var oop = require("../../lib/oop");
|
|
1988
|
+
var MixedFoldMode = require("./mixed").FoldMode;
|
|
1989
|
+
var XmlFoldMode = require("./xml").FoldMode;
|
|
1990
|
+
var CStyleFoldMode = require("./cstyle").FoldMode;
|
|
1991
|
+
|
|
1992
|
+
var FoldMode = exports.FoldMode = function(voidElements, optionalTags) {
|
|
1993
|
+
MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), {
|
|
1994
|
+
"js-": new CStyleFoldMode(),
|
|
1995
|
+
"css-": new CStyleFoldMode()
|
|
1996
|
+
});
|
|
1997
|
+
};
|
|
2076
1998
|
|
|
1999
|
+
oop.inherits(FoldMode, MixedFoldMode);
|
|
2000
|
+
|
|
2001
|
+
});
|
|
2002
|
+
|
|
2003
|
+
define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"], function(require, exports, module) {
|
|
2004
|
+
"use strict";
|
|
2077
2005
|
|
|
2078
2006
|
var TokenIterator = require("../token_iterator").TokenIterator;
|
|
2079
2007
|
|
|
@@ -2087,6 +2015,12 @@ var commonAttributes = [
|
|
|
2087
2015
|
"dropzone",
|
|
2088
2016
|
"hidden",
|
|
2089
2017
|
"id",
|
|
2018
|
+
"inert",
|
|
2019
|
+
"itemid",
|
|
2020
|
+
"itemprop",
|
|
2021
|
+
"itemref",
|
|
2022
|
+
"itemscope",
|
|
2023
|
+
"itemtype",
|
|
2090
2024
|
"lang",
|
|
2091
2025
|
"spellcheck",
|
|
2092
2026
|
"style",
|
|
@@ -2270,24 +2204,19 @@ var attributeMap = {
|
|
|
2270
2204
|
"dialog": ["open"]
|
|
2271
2205
|
};
|
|
2272
2206
|
|
|
2273
|
-
var
|
|
2207
|
+
var elements = Object.keys(attributeMap);
|
|
2274
2208
|
|
|
2275
|
-
function
|
|
2276
|
-
|
|
2277
|
-
return type.split('.').every(function(type){
|
|
2278
|
-
return (tokenTypes.indexOf(type) !== -1);
|
|
2279
|
-
});
|
|
2209
|
+
function is(token, type) {
|
|
2210
|
+
return token.type.lastIndexOf(type + ".xml") > -1;
|
|
2280
2211
|
}
|
|
2281
2212
|
|
|
2282
2213
|
function findTagName(session, pos) {
|
|
2283
2214
|
var iterator = new TokenIterator(session, pos.row, pos.column);
|
|
2284
2215
|
var token = iterator.getCurrentToken();
|
|
2285
|
-
|
|
2286
|
-
|
|
2287
|
-
token = iterator.stepBackward();
|
|
2288
|
-
} while (token && (hasType(token, 'string') || hasType(token, 'operator') || hasType(token, 'attribute-name') || hasType(token, 'text')));
|
|
2216
|
+
while (token && !is(token, "tag-name")){
|
|
2217
|
+
token = iterator.stepBackward();
|
|
2289
2218
|
}
|
|
2290
|
-
if (token
|
|
2219
|
+
if (token)
|
|
2291
2220
|
return token.value;
|
|
2292
2221
|
}
|
|
2293
2222
|
|
|
@@ -2302,25 +2231,20 @@ var HtmlCompletions = function() {
|
|
|
2302
2231
|
|
|
2303
2232
|
if (!token)
|
|
2304
2233
|
return [];
|
|
2305
|
-
if (
|
|
2234
|
+
if (is(token, "tag-name") || is(token, "tag-open") || is(token, "end-tag-open"))
|
|
2306
2235
|
return this.getTagCompletions(state, session, pos, prefix);
|
|
2307
|
-
if (
|
|
2236
|
+
if (is(token, "tag-whitespace") || is(token, "attribute-name"))
|
|
2308
2237
|
return this.getAttributeCompetions(state, session, pos, prefix);
|
|
2309
2238
|
|
|
2310
2239
|
return [];
|
|
2311
2240
|
};
|
|
2312
2241
|
|
|
2313
2242
|
this.getTagCompletions = function(state, session, pos, prefix) {
|
|
2314
|
-
var elements = allElements;
|
|
2315
|
-
if (prefix) {
|
|
2316
|
-
elements = elements.filter(function(element){
|
|
2317
|
-
return element.indexOf(prefix) === 0;
|
|
2318
|
-
});
|
|
2319
|
-
}
|
|
2320
2243
|
return elements.map(function(element){
|
|
2321
2244
|
return {
|
|
2322
2245
|
value: element,
|
|
2323
|
-
meta: "tag"
|
|
2246
|
+
meta: "tag",
|
|
2247
|
+
score: Number.MAX_VALUE
|
|
2324
2248
|
};
|
|
2325
2249
|
});
|
|
2326
2250
|
};
|
|
@@ -2333,16 +2257,12 @@ var HtmlCompletions = function() {
|
|
|
2333
2257
|
if (tagName in attributeMap) {
|
|
2334
2258
|
attributes = attributes.concat(attributeMap[tagName]);
|
|
2335
2259
|
}
|
|
2336
|
-
if (prefix) {
|
|
2337
|
-
attributes = attributes.filter(function(attribute){
|
|
2338
|
-
return attribute.indexOf(prefix) === 0;
|
|
2339
|
-
});
|
|
2340
|
-
}
|
|
2341
2260
|
return attributes.map(function(attribute){
|
|
2342
2261
|
return {
|
|
2343
2262
|
caption: attribute,
|
|
2344
2263
|
snippet: attribute + '="$0"',
|
|
2345
|
-
meta: "attribute"
|
|
2264
|
+
meta: "attribute",
|
|
2265
|
+
score: Number.MAX_VALUE
|
|
2346
2266
|
};
|
|
2347
2267
|
});
|
|
2348
2268
|
};
|
|
@@ -2352,140 +2272,83 @@ var HtmlCompletions = function() {
|
|
|
2352
2272
|
exports.HtmlCompletions = HtmlCompletions;
|
|
2353
2273
|
});
|
|
2354
2274
|
|
|
2355
|
-
define(
|
|
2356
|
-
|
|
2275
|
+
define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"], function(require, exports, module) {
|
|
2276
|
+
"use strict";
|
|
2357
2277
|
|
|
2358
2278
|
var oop = require("../lib/oop");
|
|
2279
|
+
var lang = require("../lib/lang");
|
|
2359
2280
|
var TextMode = require("./text").Mode;
|
|
2360
|
-
var
|
|
2361
|
-
var
|
|
2362
|
-
var
|
|
2363
|
-
var
|
|
2281
|
+
var JavaScriptMode = require("./javascript").Mode;
|
|
2282
|
+
var CssMode = require("./css").Mode;
|
|
2283
|
+
var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules;
|
|
2284
|
+
var XmlBehaviour = require("./behaviour/xml").XmlBehaviour;
|
|
2285
|
+
var HtmlFoldMode = require("./folding/html").FoldMode;
|
|
2286
|
+
var HtmlCompletions = require("./html_completions").HtmlCompletions;
|
|
2364
2287
|
var WorkerClient = require("../worker/worker_client").WorkerClient;
|
|
2288
|
+
var voidElements = ["area", "base", "br", "col", "embed", "hr", "img", "input", "keygen", "link", "meta", "menuitem", "param", "source", "track", "wbr"];
|
|
2289
|
+
var optionalEndTags = ["li", "dt", "dd", "p", "rt", "rp", "optgroup", "option", "colgroup", "td", "th"];
|
|
2365
2290
|
|
|
2366
|
-
var Mode = function() {
|
|
2367
|
-
this.
|
|
2291
|
+
var Mode = function(options) {
|
|
2292
|
+
this.fragmentContext = options && options.fragmentContext;
|
|
2293
|
+
this.HighlightRules = HtmlHighlightRules;
|
|
2294
|
+
this.$behaviour = new XmlBehaviour();
|
|
2295
|
+
this.$completer = new HtmlCompletions();
|
|
2368
2296
|
|
|
2369
|
-
this.
|
|
2297
|
+
this.createModeDelegates({
|
|
2298
|
+
"js-": JavaScriptMode,
|
|
2299
|
+
"css-": CssMode
|
|
2300
|
+
});
|
|
2301
|
+
|
|
2302
|
+
this.foldingRules = new HtmlFoldMode(this.voidElements, lang.arrayToMap(optionalEndTags));
|
|
2370
2303
|
};
|
|
2371
2304
|
oop.inherits(Mode, TextMode);
|
|
2372
2305
|
|
|
2373
2306
|
(function() {
|
|
2374
|
-
|
|
2375
|
-
this.lineCommentStart = "--";
|
|
2376
|
-
this.blockComment = {start: "--[", end: "]--"};
|
|
2377
|
-
|
|
2378
|
-
var indentKeywords = {
|
|
2379
|
-
"function": 1,
|
|
2380
|
-
"then": 1,
|
|
2381
|
-
"do": 1,
|
|
2382
|
-
"else": 1,
|
|
2383
|
-
"elseif": 1,
|
|
2384
|
-
"repeat": 1,
|
|
2385
|
-
"end": -1,
|
|
2386
|
-
"until": -1
|
|
2387
|
-
};
|
|
2388
|
-
var outdentKeywords = [
|
|
2389
|
-
"else",
|
|
2390
|
-
"elseif",
|
|
2391
|
-
"end",
|
|
2392
|
-
"until"
|
|
2393
|
-
];
|
|
2394
2307
|
|
|
2395
|
-
|
|
2396
|
-
var level = 0;
|
|
2397
|
-
for (var i = 0; i < tokens.length; i++) {
|
|
2398
|
-
var token = tokens[i];
|
|
2399
|
-
if (token.type == "keyword") {
|
|
2400
|
-
if (token.value in indentKeywords) {
|
|
2401
|
-
level += indentKeywords[token.value];
|
|
2402
|
-
}
|
|
2403
|
-
} else if (token.type == "paren.lparen") {
|
|
2404
|
-
level ++;
|
|
2405
|
-
} else if (token.type == "paren.rparen") {
|
|
2406
|
-
level --;
|
|
2407
|
-
}
|
|
2408
|
-
}
|
|
2409
|
-
if (level < 0) {
|
|
2410
|
-
return -1;
|
|
2411
|
-
} else if (level > 0) {
|
|
2412
|
-
return 1;
|
|
2413
|
-
} else {
|
|
2414
|
-
return 0;
|
|
2415
|
-
}
|
|
2416
|
-
}
|
|
2417
|
-
|
|
2418
|
-
this.getNextLineIndent = function(state, line, tab) {
|
|
2419
|
-
var indent = this.$getIndent(line);
|
|
2420
|
-
var level = 0;
|
|
2308
|
+
this.blockComment = {start: "<!--", end: "-->"};
|
|
2421
2309
|
|
|
2422
|
-
|
|
2423
|
-
var tokens = tokenizedLine.tokens;
|
|
2310
|
+
this.voidElements = lang.arrayToMap(voidElements);
|
|
2424
2311
|
|
|
2425
|
-
|
|
2426
|
-
|
|
2427
|
-
}
|
|
2428
|
-
if (level > 0) {
|
|
2429
|
-
return indent + tab;
|
|
2430
|
-
} else if (level < 0 && indent.substr(indent.length - tab.length) == tab) {
|
|
2431
|
-
if (!this.checkOutdent(state, line, "\n")) {
|
|
2432
|
-
return indent.substr(0, indent.length - tab.length);
|
|
2433
|
-
}
|
|
2434
|
-
}
|
|
2435
|
-
return indent;
|
|
2312
|
+
this.getNextLineIndent = function(state, line, tab) {
|
|
2313
|
+
return this.$getIndent(line);
|
|
2436
2314
|
};
|
|
2437
2315
|
|
|
2438
2316
|
this.checkOutdent = function(state, line, input) {
|
|
2439
|
-
|
|
2440
|
-
return false;
|
|
2441
|
-
|
|
2442
|
-
if (line.match(/^\s*[\)\}\]]$/))
|
|
2443
|
-
return true;
|
|
2444
|
-
|
|
2445
|
-
var tokens = this.getTokenizer().getLineTokens(line.trim(), state).tokens;
|
|
2446
|
-
|
|
2447
|
-
if (!tokens || !tokens.length)
|
|
2448
|
-
return false;
|
|
2449
|
-
|
|
2450
|
-
return (tokens[0].type == "keyword" && outdentKeywords.indexOf(tokens[0].value) != -1);
|
|
2317
|
+
return false;
|
|
2451
2318
|
};
|
|
2452
2319
|
|
|
2453
|
-
this.
|
|
2454
|
-
|
|
2455
|
-
var prevIndent = this.$getIndent(prevLine).length;
|
|
2456
|
-
var prevTokens = this.getTokenizer().getLineTokens(prevLine, "start").tokens;
|
|
2457
|
-
var tabLength = session.getTabString().length;
|
|
2458
|
-
var expectedIndent = prevIndent + tabLength * getNetIndentLevel(prevTokens);
|
|
2459
|
-
var curIndent = this.$getIndent(session.getLine(row)).length;
|
|
2460
|
-
if (curIndent < expectedIndent) {
|
|
2461
|
-
return;
|
|
2462
|
-
}
|
|
2463
|
-
session.outdentRows(new Range(row, 0, row + 2, 0));
|
|
2320
|
+
this.getCompletions = function(state, session, pos, prefix) {
|
|
2321
|
+
return this.$completer.getCompletions(state, session, pos, prefix);
|
|
2464
2322
|
};
|
|
2465
2323
|
|
|
2466
2324
|
this.createWorker = function(session) {
|
|
2467
|
-
|
|
2325
|
+
if (this.constructor != Mode)
|
|
2326
|
+
return;
|
|
2327
|
+
var worker = new WorkerClient(["ace"], "ace/mode/html_worker", "Worker");
|
|
2468
2328
|
worker.attachToDocument(session.getDocument());
|
|
2469
|
-
|
|
2329
|
+
|
|
2330
|
+
if (this.fragmentContext)
|
|
2331
|
+
worker.call("setOptions", [{context: this.fragmentContext}]);
|
|
2332
|
+
|
|
2470
2333
|
worker.on("error", function(e) {
|
|
2471
|
-
session.setAnnotations(
|
|
2334
|
+
session.setAnnotations(e.data);
|
|
2472
2335
|
});
|
|
2473
|
-
|
|
2474
|
-
worker.on("
|
|
2336
|
+
|
|
2337
|
+
worker.on("terminate", function() {
|
|
2475
2338
|
session.clearAnnotations();
|
|
2476
2339
|
});
|
|
2477
|
-
|
|
2340
|
+
|
|
2478
2341
|
return worker;
|
|
2479
2342
|
};
|
|
2480
2343
|
|
|
2481
|
-
this.$id = "ace/mode/
|
|
2344
|
+
this.$id = "ace/mode/html";
|
|
2482
2345
|
}).call(Mode.prototype);
|
|
2483
2346
|
|
|
2484
2347
|
exports.Mode = Mode;
|
|
2485
2348
|
});
|
|
2486
2349
|
|
|
2487
|
-
define(
|
|
2488
|
-
|
|
2350
|
+
define("ace/mode/lua_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) {
|
|
2351
|
+
"use strict";
|
|
2489
2352
|
|
|
2490
2353
|
var oop = require("../lib/oop");
|
|
2491
2354
|
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
|
|
@@ -2537,7 +2400,7 @@ var LuaHighlightRules = function() {
|
|
|
2537
2400
|
"constant.library": stdLibaries,
|
|
2538
2401
|
"constant.language": builtinConstants,
|
|
2539
2402
|
"invalid.illegal": futureReserved,
|
|
2540
|
-
"variable.language": "
|
|
2403
|
+
"variable.language": "self"
|
|
2541
2404
|
}, "identifier");
|
|
2542
2405
|
|
|
2543
2406
|
var decimalInteger = "(?:(?:[1-9]\\d*)|(?:0))";
|
|
@@ -2646,8 +2509,8 @@ oop.inherits(LuaHighlightRules, TextHighlightRules);
|
|
|
2646
2509
|
exports.LuaHighlightRules = LuaHighlightRules;
|
|
2647
2510
|
});
|
|
2648
2511
|
|
|
2649
|
-
define(
|
|
2650
|
-
|
|
2512
|
+
define("ace/mode/folding/lua",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range","ace/token_iterator"], function(require, exports, module) {
|
|
2513
|
+
"use strict";
|
|
2651
2514
|
|
|
2652
2515
|
var oop = require("../../lib/oop");
|
|
2653
2516
|
var BaseFoldMode = require("./fold_mode").FoldMode;
|
|
@@ -2779,8 +2642,140 @@ oop.inherits(FoldMode, BaseFoldMode);
|
|
|
2779
2642
|
}).call(FoldMode.prototype);
|
|
2780
2643
|
|
|
2781
2644
|
});
|
|
2782
|
-
define('ace/mode/luapage_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/html_highlight_rules', 'ace/mode/lua_highlight_rules'], function(require, exports, module) {
|
|
2783
2645
|
|
|
2646
|
+
define("ace/mode/lua",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/lua_highlight_rules","ace/mode/folding/lua","ace/range","ace/worker/worker_client"], function(require, exports, module) {
|
|
2647
|
+
"use strict";
|
|
2648
|
+
|
|
2649
|
+
var oop = require("../lib/oop");
|
|
2650
|
+
var TextMode = require("./text").Mode;
|
|
2651
|
+
var LuaHighlightRules = require("./lua_highlight_rules").LuaHighlightRules;
|
|
2652
|
+
var LuaFoldMode = require("./folding/lua").FoldMode;
|
|
2653
|
+
var Range = require("../range").Range;
|
|
2654
|
+
var WorkerClient = require("../worker/worker_client").WorkerClient;
|
|
2655
|
+
|
|
2656
|
+
var Mode = function() {
|
|
2657
|
+
this.HighlightRules = LuaHighlightRules;
|
|
2658
|
+
|
|
2659
|
+
this.foldingRules = new LuaFoldMode();
|
|
2660
|
+
};
|
|
2661
|
+
oop.inherits(Mode, TextMode);
|
|
2662
|
+
|
|
2663
|
+
(function() {
|
|
2664
|
+
|
|
2665
|
+
this.lineCommentStart = "--";
|
|
2666
|
+
this.blockComment = {start: "--[", end: "]--"};
|
|
2667
|
+
|
|
2668
|
+
var indentKeywords = {
|
|
2669
|
+
"function": 1,
|
|
2670
|
+
"then": 1,
|
|
2671
|
+
"do": 1,
|
|
2672
|
+
"else": 1,
|
|
2673
|
+
"elseif": 1,
|
|
2674
|
+
"repeat": 1,
|
|
2675
|
+
"end": -1,
|
|
2676
|
+
"until": -1
|
|
2677
|
+
};
|
|
2678
|
+
var outdentKeywords = [
|
|
2679
|
+
"else",
|
|
2680
|
+
"elseif",
|
|
2681
|
+
"end",
|
|
2682
|
+
"until"
|
|
2683
|
+
];
|
|
2684
|
+
|
|
2685
|
+
function getNetIndentLevel(tokens) {
|
|
2686
|
+
var level = 0;
|
|
2687
|
+
for (var i = 0; i < tokens.length; i++) {
|
|
2688
|
+
var token = tokens[i];
|
|
2689
|
+
if (token.type == "keyword") {
|
|
2690
|
+
if (token.value in indentKeywords) {
|
|
2691
|
+
level += indentKeywords[token.value];
|
|
2692
|
+
}
|
|
2693
|
+
} else if (token.type == "paren.lparen") {
|
|
2694
|
+
level ++;
|
|
2695
|
+
} else if (token.type == "paren.rparen") {
|
|
2696
|
+
level --;
|
|
2697
|
+
}
|
|
2698
|
+
}
|
|
2699
|
+
if (level < 0) {
|
|
2700
|
+
return -1;
|
|
2701
|
+
} else if (level > 0) {
|
|
2702
|
+
return 1;
|
|
2703
|
+
} else {
|
|
2704
|
+
return 0;
|
|
2705
|
+
}
|
|
2706
|
+
}
|
|
2707
|
+
|
|
2708
|
+
this.getNextLineIndent = function(state, line, tab) {
|
|
2709
|
+
var indent = this.$getIndent(line);
|
|
2710
|
+
var level = 0;
|
|
2711
|
+
|
|
2712
|
+
var tokenizedLine = this.getTokenizer().getLineTokens(line, state);
|
|
2713
|
+
var tokens = tokenizedLine.tokens;
|
|
2714
|
+
|
|
2715
|
+
if (state == "start") {
|
|
2716
|
+
level = getNetIndentLevel(tokens);
|
|
2717
|
+
}
|
|
2718
|
+
if (level > 0) {
|
|
2719
|
+
return indent + tab;
|
|
2720
|
+
} else if (level < 0 && indent.substr(indent.length - tab.length) == tab) {
|
|
2721
|
+
if (!this.checkOutdent(state, line, "\n")) {
|
|
2722
|
+
return indent.substr(0, indent.length - tab.length);
|
|
2723
|
+
}
|
|
2724
|
+
}
|
|
2725
|
+
return indent;
|
|
2726
|
+
};
|
|
2727
|
+
|
|
2728
|
+
this.checkOutdent = function(state, line, input) {
|
|
2729
|
+
if (input != "\n" && input != "\r" && input != "\r\n")
|
|
2730
|
+
return false;
|
|
2731
|
+
|
|
2732
|
+
if (line.match(/^\s*[\)\}\]]$/))
|
|
2733
|
+
return true;
|
|
2734
|
+
|
|
2735
|
+
var tokens = this.getTokenizer().getLineTokens(line.trim(), state).tokens;
|
|
2736
|
+
|
|
2737
|
+
if (!tokens || !tokens.length)
|
|
2738
|
+
return false;
|
|
2739
|
+
|
|
2740
|
+
return (tokens[0].type == "keyword" && outdentKeywords.indexOf(tokens[0].value) != -1);
|
|
2741
|
+
};
|
|
2742
|
+
|
|
2743
|
+
this.autoOutdent = function(state, session, row) {
|
|
2744
|
+
var prevLine = session.getLine(row - 1);
|
|
2745
|
+
var prevIndent = this.$getIndent(prevLine).length;
|
|
2746
|
+
var prevTokens = this.getTokenizer().getLineTokens(prevLine, "start").tokens;
|
|
2747
|
+
var tabLength = session.getTabString().length;
|
|
2748
|
+
var expectedIndent = prevIndent + tabLength * getNetIndentLevel(prevTokens);
|
|
2749
|
+
var curIndent = this.$getIndent(session.getLine(row)).length;
|
|
2750
|
+
if (curIndent < expectedIndent) {
|
|
2751
|
+
return;
|
|
2752
|
+
}
|
|
2753
|
+
session.outdentRows(new Range(row, 0, row + 2, 0));
|
|
2754
|
+
};
|
|
2755
|
+
|
|
2756
|
+
this.createWorker = function(session) {
|
|
2757
|
+
var worker = new WorkerClient(["ace"], "ace/mode/lua_worker", "Worker");
|
|
2758
|
+
worker.attachToDocument(session.getDocument());
|
|
2759
|
+
|
|
2760
|
+
worker.on("error", function(e) {
|
|
2761
|
+
session.setAnnotations([e.data]);
|
|
2762
|
+
});
|
|
2763
|
+
|
|
2764
|
+
worker.on("ok", function(e) {
|
|
2765
|
+
session.clearAnnotations();
|
|
2766
|
+
});
|
|
2767
|
+
|
|
2768
|
+
return worker;
|
|
2769
|
+
};
|
|
2770
|
+
|
|
2771
|
+
this.$id = "ace/mode/lua";
|
|
2772
|
+
}).call(Mode.prototype);
|
|
2773
|
+
|
|
2774
|
+
exports.Mode = Mode;
|
|
2775
|
+
});
|
|
2776
|
+
|
|
2777
|
+
define("ace/mode/luapage_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/html_highlight_rules","ace/mode/lua_highlight_rules"], function(require, exports, module) {
|
|
2778
|
+
"use strict";
|
|
2784
2779
|
|
|
2785
2780
|
var oop = require("../lib/oop");
|
|
2786
2781
|
var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules;
|
|
@@ -2825,4 +2820,29 @@ oop.inherits(LuaPageHighlightRules, HtmlHighlightRules);
|
|
|
2825
2820
|
|
|
2826
2821
|
exports.LuaPageHighlightRules = LuaPageHighlightRules;
|
|
2827
2822
|
|
|
2828
|
-
});
|
|
2823
|
+
});
|
|
2824
|
+
|
|
2825
|
+
define("ace/mode/luapage",["require","exports","module","ace/lib/oop","ace/mode/html","ace/mode/lua","ace/mode/luapage_highlight_rules"], function(require, exports, module) {
|
|
2826
|
+
"use strict";
|
|
2827
|
+
|
|
2828
|
+
var oop = require("../lib/oop");
|
|
2829
|
+
var HtmlMode = require("./html").Mode;
|
|
2830
|
+
var LuaMode = require("./lua").Mode;
|
|
2831
|
+
var LuaPageHighlightRules = require("./luapage_highlight_rules").LuaPageHighlightRules;
|
|
2832
|
+
|
|
2833
|
+
var Mode = function() {
|
|
2834
|
+
HtmlMode.call(this);
|
|
2835
|
+
|
|
2836
|
+
this.HighlightRules = LuaPageHighlightRules;
|
|
2837
|
+
this.createModeDelegates({
|
|
2838
|
+
"lua-": LuaMode
|
|
2839
|
+
});
|
|
2840
|
+
};
|
|
2841
|
+
oop.inherits(Mode, HtmlMode);
|
|
2842
|
+
|
|
2843
|
+
(function() {
|
|
2844
|
+
this.$id = "ace/mode/luapage";
|
|
2845
|
+
}).call(Mode.prototype);
|
|
2846
|
+
|
|
2847
|
+
exports.Mode = Mode;
|
|
2848
|
+
});
|