ace-rails-ap 0.0.3 → 1.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.
- data/lib/ace/rails/version.rb +1 -1
 - data/vendor/assets/javascripts/ace.js +15680 -1
 - data/vendor/assets/javascripts/keybinding-emacs.js +367 -1
 - data/vendor/assets/javascripts/keybinding-vim.js +1635 -1
 - data/vendor/assets/javascripts/mode-c9search.js +275 -0
 - data/vendor/assets/javascripts/mode-c_cpp.js +744 -1
 - data/vendor/assets/javascripts/mode-clojure.js +364 -1
 - data/vendor/assets/javascripts/mode-coffee.js +527 -1
 - data/vendor/assets/javascripts/mode-coldfusion.js +1966 -1
 - data/vendor/assets/javascripts/mode-csharp.js +633 -1
 - data/vendor/assets/javascripts/mode-css.js +499 -1
 - data/vendor/assets/javascripts/mode-diff.js +250 -0
 - data/vendor/assets/javascripts/{mode-c_cpp-uncompressed.js → mode-glsl.js} +147 -244
 - data/vendor/assets/javascripts/mode-golang.js +681 -1
 - data/vendor/assets/javascripts/mode-groovy.js +1240 -1
 - data/vendor/assets/javascripts/mode-haxe.js +633 -1
 - data/vendor/assets/javascripts/mode-html.js +2064 -1
 - data/vendor/assets/javascripts/mode-java.js +1202 -1
 - data/vendor/assets/javascripts/mode-javascript.js +1069 -1
 - data/vendor/assets/javascripts/mode-json.js +588 -1
 - data/vendor/assets/javascripts/{mode-haxe-uncompressed.js → mode-jsx.js} +189 -312
 - data/vendor/assets/javascripts/mode-latex.js +95 -1
 - data/vendor/assets/javascripts/mode-less.js +512 -1
 - data/vendor/assets/javascripts/mode-liquid.js +1125 -1
 - data/vendor/assets/javascripts/mode-lua.js +551 -1
 - data/vendor/assets/javascripts/{mode-html-uncompressed.js → mode-luahtml.js} +544 -604
 - data/vendor/assets/javascripts/{mode-coldfusion-uncompressed.js → mode-luapage.js} +2326 -2180
 - data/vendor/assets/javascripts/mode-markdown.js +2369 -1
 - data/vendor/assets/javascripts/mode-ocaml.js +464 -1
 - data/vendor/assets/javascripts/mode-perl.js +432 -1
 - data/vendor/assets/javascripts/mode-pgsql.js +970 -1
 - data/vendor/assets/javascripts/mode-php.js +1718 -1
 - data/vendor/assets/javascripts/mode-powershell.js +610 -1
 - data/vendor/assets/javascripts/mode-python.js +397 -1
 - data/vendor/assets/javascripts/mode-ruby.js +318 -1
 - data/vendor/assets/javascripts/mode-scad.js +732 -1
 - data/vendor/assets/javascripts/mode-scala.js +1237 -1
 - data/vendor/assets/javascripts/mode-scss.js +537 -1
 - data/vendor/assets/javascripts/mode-sh.js +250 -1
 - data/vendor/assets/javascripts/mode-sql.js +140 -1
 - data/vendor/assets/javascripts/mode-svg.js +1681 -1
 - data/vendor/assets/javascripts/mode-tcl.js +320 -0
 - data/vendor/assets/javascripts/mode-textile.js +182 -1
 - data/vendor/assets/javascripts/mode-xml.js +829 -1
 - data/vendor/assets/javascripts/mode-xquery.js +605 -1
 - data/vendor/assets/javascripts/mode-yaml.js +189 -0
 - data/vendor/assets/javascripts/theme-chrome.js +213 -1
 - data/vendor/assets/javascripts/theme-clouds.js +167 -1
 - data/vendor/assets/javascripts/theme-clouds_midnight.js +168 -1
 - data/vendor/assets/javascripts/theme-cobalt.js +194 -1
 - data/vendor/assets/javascripts/theme-crimson_editor.js +200 -1
 - data/vendor/assets/javascripts/theme-dawn.js +198 -1
 - data/vendor/assets/javascripts/theme-dreamweaver.js +230 -1
 - data/vendor/assets/javascripts/theme-eclipse.js +157 -1
 - data/vendor/assets/javascripts/theme-github.js +182 -0
 - data/vendor/assets/javascripts/theme-idle_fingers.js +186 -1
 - data/vendor/assets/javascripts/theme-kr_theme.js +189 -1
 - data/vendor/assets/javascripts/theme-merbivore.js +189 -1
 - data/vendor/assets/javascripts/theme-merbivore_soft.js +195 -1
 - data/vendor/assets/javascripts/theme-mono_industrial.js +197 -1
 - data/vendor/assets/javascripts/theme-monokai.js +194 -1
 - data/vendor/assets/javascripts/theme-pastel_on_dark.js +199 -1
 - data/vendor/assets/javascripts/theme-solarized_dark.js +180 -1
 - data/vendor/assets/javascripts/theme-solarized_light.js +179 -1
 - data/vendor/assets/javascripts/theme-textmate.js +216 -0
 - data/vendor/assets/javascripts/theme-tomorrow.js +213 -1
 - data/vendor/assets/javascripts/theme-tomorrow_night.js +213 -1
 - data/vendor/assets/javascripts/theme-tomorrow_night_blue.js +213 -1
 - data/vendor/assets/javascripts/theme-tomorrow_night_bright.js +213 -1
 - data/vendor/assets/javascripts/theme-tomorrow_night_eighties.js +209 -1
 - data/vendor/assets/javascripts/theme-twilight.js +211 -1
 - data/vendor/assets/javascripts/theme-vibrant_ink.js +190 -1
 - data/vendor/assets/javascripts/worker-coffee.js +83 -893
 - data/vendor/assets/javascripts/worker-css.js +88 -1402
 - data/vendor/assets/javascripts/worker-javascript.js +97 -812
 - data/vendor/assets/javascripts/worker-json.js +84 -761
 - data/vendor/assets/javascripts/worker-xquery.js +66464 -0
 - metadata +12 -195
 - data/vendor/assets/javascripts/ace-compat-noconflict.js +0 -1
 - data/vendor/assets/javascripts/ace-compat-uncompressed-noconflict.js +0 -480
 - data/vendor/assets/javascripts/ace-compat-uncompressed.js +0 -480
 - data/vendor/assets/javascripts/ace-compat.js +0 -1
 - data/vendor/assets/javascripts/ace-noconflict.js +0 -10
 - data/vendor/assets/javascripts/ace-uncompressed-noconflict.js +0 -19976
 - data/vendor/assets/javascripts/ace-uncompressed.js +0 -19976
 - data/vendor/assets/javascripts/keybinding-emacs-noconflict.js +0 -1
 - data/vendor/assets/javascripts/keybinding-emacs-uncompressed-noconflict.js +0 -150
 - data/vendor/assets/javascripts/keybinding-emacs-uncompressed.js +0 -150
 - data/vendor/assets/javascripts/keybinding-vim-noconflict.js +0 -1
 - data/vendor/assets/javascripts/keybinding-vim-uncompressed-noconflict.js +0 -138
 - data/vendor/assets/javascripts/keybinding-vim-uncompressed.js +0 -138
 - data/vendor/assets/javascripts/mode-c_cpp-noconflict.js +0 -1
 - data/vendor/assets/javascripts/mode-c_cpp-uncompressed-noconflict.js +0 -919
 - data/vendor/assets/javascripts/mode-clojure-noconflict.js +0 -1
 - data/vendor/assets/javascripts/mode-clojure-uncompressed-noconflict.js +0 -422
 - data/vendor/assets/javascripts/mode-clojure-uncompressed.js +0 -422
 - data/vendor/assets/javascripts/mode-coffee-noconflict.js +0 -1
 - data/vendor/assets/javascripts/mode-coffee-uncompressed-noconflict.js +0 -607
 - data/vendor/assets/javascripts/mode-coffee-uncompressed.js +0 -607
 - data/vendor/assets/javascripts/mode-coldfusion-noconflict.js +0 -1
 - data/vendor/assets/javascripts/mode-coldfusion-uncompressed-noconflict.js +0 -2458
 - data/vendor/assets/javascripts/mode-csharp-noconflict.js +0 -1
 - data/vendor/assets/javascripts/mode-csharp-uncompressed-noconflict.js +0 -769
 - data/vendor/assets/javascripts/mode-csharp-uncompressed.js +0 -769
 - data/vendor/assets/javascripts/mode-css-noconflict.js +0 -1
 - data/vendor/assets/javascripts/mode-css-uncompressed-noconflict.js +0 -641
 - data/vendor/assets/javascripts/mode-css-uncompressed.js +0 -641
 - data/vendor/assets/javascripts/mode-golang-noconflict.js +0 -1
 - data/vendor/assets/javascripts/mode-golang-uncompressed-noconflict.js +0 -378
 - data/vendor/assets/javascripts/mode-golang-uncompressed.js +0 -378
 - data/vendor/assets/javascripts/mode-groovy-noconflict.js +0 -1
 - data/vendor/assets/javascripts/mode-groovy-uncompressed-noconflict.js +0 -1393
 - data/vendor/assets/javascripts/mode-groovy-uncompressed.js +0 -1393
 - data/vendor/assets/javascripts/mode-haxe-noconflict.js +0 -1
 - data/vendor/assets/javascripts/mode-haxe-uncompressed-noconflict.js +0 -769
 - data/vendor/assets/javascripts/mode-html-noconflict.js +0 -1
 - data/vendor/assets/javascripts/mode-html-uncompressed-noconflict.js +0 -2475
 - data/vendor/assets/javascripts/mode-java-noconflict.js +0 -1
 - data/vendor/assets/javascripts/mode-java-uncompressed-noconflict.js +0 -1395
 - data/vendor/assets/javascripts/mode-java-uncompressed.js +0 -1395
 - data/vendor/assets/javascripts/mode-javascript-noconflict.js +0 -1
 - data/vendor/assets/javascripts/mode-javascript-uncompressed-noconflict.js +0 -1226
 - data/vendor/assets/javascripts/mode-javascript-uncompressed.js +0 -1226
 - data/vendor/assets/javascripts/mode-json-noconflict.js +0 -1
 - data/vendor/assets/javascripts/mode-json-uncompressed-noconflict.js +0 -701
 - data/vendor/assets/javascripts/mode-json-uncompressed.js +0 -701
 - data/vendor/assets/javascripts/mode-latex-noconflict.js +0 -1
 - data/vendor/assets/javascripts/mode-latex-uncompressed-noconflict.js +0 -95
 - data/vendor/assets/javascripts/mode-latex-uncompressed.js +0 -95
 - data/vendor/assets/javascripts/mode-less-noconflict.js +0 -1
 - data/vendor/assets/javascripts/mode-less-uncompressed-noconflict.js +0 -655
 - data/vendor/assets/javascripts/mode-less-uncompressed.js +0 -655
 - data/vendor/assets/javascripts/mode-liquid-noconflict.js +0 -1
 - data/vendor/assets/javascripts/mode-liquid-uncompressed-noconflict.js +0 -1353
 - data/vendor/assets/javascripts/mode-liquid-uncompressed.js +0 -1353
 - data/vendor/assets/javascripts/mode-lua-noconflict.js +0 -1
 - data/vendor/assets/javascripts/mode-lua-uncompressed-noconflict.js +0 -523
 - data/vendor/assets/javascripts/mode-lua-uncompressed.js +0 -523
 - data/vendor/assets/javascripts/mode-markdown-noconflict.js +0 -1
 - data/vendor/assets/javascripts/mode-markdown-uncompressed-noconflict.js +0 -2925
 - data/vendor/assets/javascripts/mode-markdown-uncompressed.js +0 -2925
 - data/vendor/assets/javascripts/mode-ocaml-noconflict.js +0 -1
 - data/vendor/assets/javascripts/mode-ocaml-uncompressed-noconflict.js +0 -539
 - data/vendor/assets/javascripts/mode-ocaml-uncompressed.js +0 -539
 - data/vendor/assets/javascripts/mode-perl-noconflict.js +0 -1
 - data/vendor/assets/javascripts/mode-perl-uncompressed-noconflict.js +0 -574
 - data/vendor/assets/javascripts/mode-perl-uncompressed.js +0 -574
 - data/vendor/assets/javascripts/mode-pgsql-noconflict.js +0 -1
 - data/vendor/assets/javascripts/mode-pgsql-uncompressed-noconflict.js +0 -1104
 - data/vendor/assets/javascripts/mode-pgsql-uncompressed.js +0 -1104
 - data/vendor/assets/javascripts/mode-php-noconflict.js +0 -1
 - data/vendor/assets/javascripts/mode-php-uncompressed-noconflict.js +0 -1885
 - data/vendor/assets/javascripts/mode-php-uncompressed.js +0 -1885
 - data/vendor/assets/javascripts/mode-powershell-noconflict.js +0 -1
 - data/vendor/assets/javascripts/mode-powershell-uncompressed-noconflict.js +0 -710
 - data/vendor/assets/javascripts/mode-powershell-uncompressed.js +0 -710
 - data/vendor/assets/javascripts/mode-python-noconflict.js +0 -1
 - data/vendor/assets/javascripts/mode-python-uncompressed-noconflict.js +0 -507
 - data/vendor/assets/javascripts/mode-python-uncompressed.js +0 -507
 - data/vendor/assets/javascripts/mode-ruby-noconflict.js +0 -1
 - data/vendor/assets/javascripts/mode-ruby-uncompressed-noconflict.js +0 -391
 - data/vendor/assets/javascripts/mode-ruby-uncompressed.js +0 -391
 - data/vendor/assets/javascripts/mode-scad-noconflict.js +0 -1
 - data/vendor/assets/javascripts/mode-scad-uncompressed-noconflict.js +0 -907
 - data/vendor/assets/javascripts/mode-scad-uncompressed.js +0 -907
 - data/vendor/assets/javascripts/mode-scala-noconflict.js +0 -1
 - data/vendor/assets/javascripts/mode-scala-uncompressed-noconflict.js +0 -1395
 - data/vendor/assets/javascripts/mode-scala-uncompressed.js +0 -1395
 - data/vendor/assets/javascripts/mode-scss-noconflict.js +0 -1
 - data/vendor/assets/javascripts/mode-scss-uncompressed-noconflict.js +0 -679
 - data/vendor/assets/javascripts/mode-scss-uncompressed.js +0 -679
 - data/vendor/assets/javascripts/mode-sh-noconflict.js +0 -1
 - data/vendor/assets/javascripts/mode-sh-uncompressed-noconflict.js +0 -289
 - data/vendor/assets/javascripts/mode-sh-uncompressed.js +0 -289
 - data/vendor/assets/javascripts/mode-sql-noconflict.js +0 -1
 - data/vendor/assets/javascripts/mode-sql-uncompressed-noconflict.js +0 -159
 - data/vendor/assets/javascripts/mode-sql-uncompressed.js +0 -159
 - data/vendor/assets/javascripts/mode-svg-noconflict.js +0 -1
 - data/vendor/assets/javascripts/mode-svg-uncompressed-noconflict.js +0 -2137
 - data/vendor/assets/javascripts/mode-svg-uncompressed.js +0 -2137
 - data/vendor/assets/javascripts/mode-text-noconflict.js +0 -0
 - data/vendor/assets/javascripts/mode-text-uncompressed-noconflict.js +0 -0
 - data/vendor/assets/javascripts/mode-text-uncompressed.js +0 -0
 - data/vendor/assets/javascripts/mode-textile-noconflict.js +0 -1
 - data/vendor/assets/javascripts/mode-textile-uncompressed-noconflict.js +0 -254
 - data/vendor/assets/javascripts/mode-textile-uncompressed.js +0 -254
 - data/vendor/assets/javascripts/mode-xml-noconflict.js +0 -1
 - data/vendor/assets/javascripts/mode-xml-uncompressed-noconflict.js +0 -1012
 - data/vendor/assets/javascripts/mode-xml-uncompressed.js +0 -1012
 - data/vendor/assets/javascripts/mode-xquery-noconflict.js +0 -1
 - data/vendor/assets/javascripts/mode-xquery-uncompressed-noconflict.js +0 -540
 - data/vendor/assets/javascripts/mode-xquery-uncompressed.js +0 -540
 - data/vendor/assets/javascripts/theme-chrome-noconflict.js +0 -1
 - data/vendor/assets/javascripts/theme-chrome-uncompressed-noconflict.js +0 -207
 - data/vendor/assets/javascripts/theme-chrome-uncompressed.js +0 -207
 - data/vendor/assets/javascripts/theme-clouds-noconflict.js +0 -1
 - data/vendor/assets/javascripts/theme-clouds-uncompressed-noconflict.js +0 -160
 - data/vendor/assets/javascripts/theme-clouds-uncompressed.js +0 -160
 - data/vendor/assets/javascripts/theme-clouds_midnight-noconflict.js +0 -1
 - data/vendor/assets/javascripts/theme-clouds_midnight-uncompressed-noconflict.js +0 -161
 - data/vendor/assets/javascripts/theme-clouds_midnight-uncompressed.js +0 -161
 - data/vendor/assets/javascripts/theme-cobalt-noconflict.js +0 -1
 - data/vendor/assets/javascripts/theme-cobalt-uncompressed-noconflict.js +0 -187
 - data/vendor/assets/javascripts/theme-cobalt-uncompressed.js +0 -187
 - data/vendor/assets/javascripts/theme-crimson_editor-noconflict.js +0 -1
 - data/vendor/assets/javascripts/theme-crimson_editor-uncompressed-noconflict.js +0 -198
 - data/vendor/assets/javascripts/theme-crimson_editor-uncompressed.js +0 -198
 - data/vendor/assets/javascripts/theme-dawn-noconflict.js +0 -1
 - data/vendor/assets/javascripts/theme-dawn-uncompressed-noconflict.js +0 -191
 - data/vendor/assets/javascripts/theme-dawn-uncompressed.js +0 -191
 - data/vendor/assets/javascripts/theme-dreamweaver-noconflict.js +0 -1
 - data/vendor/assets/javascripts/theme-dreamweaver-uncompressed-noconflict.js +0 -227
 - data/vendor/assets/javascripts/theme-dreamweaver-uncompressed.js +0 -227
 - data/vendor/assets/javascripts/theme-eclipse-noconflict.js +0 -1
 - data/vendor/assets/javascripts/theme-eclipse-uncompressed-noconflict.js +0 -147
 - data/vendor/assets/javascripts/theme-eclipse-uncompressed.js +0 -147
 - data/vendor/assets/javascripts/theme-idle_fingers-noconflict.js +0 -1
 - data/vendor/assets/javascripts/theme-idle_fingers-uncompressed-noconflict.js +0 -179
 - data/vendor/assets/javascripts/theme-idle_fingers-uncompressed.js +0 -179
 - data/vendor/assets/javascripts/theme-kr_theme-noconflict.js +0 -1
 - data/vendor/assets/javascripts/theme-kr_theme-uncompressed-noconflict.js +0 -182
 - data/vendor/assets/javascripts/theme-kr_theme-uncompressed.js +0 -182
 - data/vendor/assets/javascripts/theme-merbivore-noconflict.js +0 -1
 - data/vendor/assets/javascripts/theme-merbivore-uncompressed-noconflict.js +0 -182
 - data/vendor/assets/javascripts/theme-merbivore-uncompressed.js +0 -182
 - data/vendor/assets/javascripts/theme-merbivore_soft-noconflict.js +0 -1
 - data/vendor/assets/javascripts/theme-merbivore_soft-uncompressed-noconflict.js +0 -188
 - data/vendor/assets/javascripts/theme-merbivore_soft-uncompressed.js +0 -188
 - data/vendor/assets/javascripts/theme-mono_industrial-noconflict.js +0 -1
 - data/vendor/assets/javascripts/theme-mono_industrial-uncompressed-noconflict.js +0 -190
 - data/vendor/assets/javascripts/theme-mono_industrial-uncompressed.js +0 -190
 - data/vendor/assets/javascripts/theme-monokai-noconflict.js +0 -1
 - data/vendor/assets/javascripts/theme-monokai-uncompressed-noconflict.js +0 -191
 - data/vendor/assets/javascripts/theme-monokai-uncompressed.js +0 -191
 - data/vendor/assets/javascripts/theme-pastel_on_dark-noconflict.js +0 -1
 - data/vendor/assets/javascripts/theme-pastel_on_dark-uncompressed-noconflict.js +0 -192
 - data/vendor/assets/javascripts/theme-pastel_on_dark-uncompressed.js +0 -192
 - data/vendor/assets/javascripts/theme-solarized_dark-noconflict.js +0 -1
 - data/vendor/assets/javascripts/theme-solarized_dark-uncompressed-noconflict.js +0 -176
 - data/vendor/assets/javascripts/theme-solarized_dark-uncompressed.js +0 -176
 - data/vendor/assets/javascripts/theme-solarized_light-noconflict.js +0 -1
 - data/vendor/assets/javascripts/theme-solarized_light-uncompressed-noconflict.js +0 -172
 - data/vendor/assets/javascripts/theme-solarized_light-uncompressed.js +0 -172
 - data/vendor/assets/javascripts/theme-textmate-noconflict.js +0 -0
 - data/vendor/assets/javascripts/theme-textmate-uncompressed-noconflict.js +0 -0
 - data/vendor/assets/javascripts/theme-textmate-uncompressed.js +0 -0
 - data/vendor/assets/javascripts/theme-tomorrow-noconflict.js +0 -1
 - data/vendor/assets/javascripts/theme-tomorrow-uncompressed-noconflict.js +0 -206
 - data/vendor/assets/javascripts/theme-tomorrow-uncompressed.js +0 -206
 - data/vendor/assets/javascripts/theme-tomorrow_night-noconflict.js +0 -1
 - data/vendor/assets/javascripts/theme-tomorrow_night-uncompressed-noconflict.js +0 -206
 - data/vendor/assets/javascripts/theme-tomorrow_night-uncompressed.js +0 -206
 - data/vendor/assets/javascripts/theme-tomorrow_night_blue-noconflict.js +0 -1
 - data/vendor/assets/javascripts/theme-tomorrow_night_blue-uncompressed-noconflict.js +0 -209
 - data/vendor/assets/javascripts/theme-tomorrow_night_blue-uncompressed.js +0 -209
 - data/vendor/assets/javascripts/theme-tomorrow_night_bright-noconflict.js +0 -1
 - data/vendor/assets/javascripts/theme-tomorrow_night_bright-uncompressed-noconflict.js +0 -206
 - data/vendor/assets/javascripts/theme-tomorrow_night_bright-uncompressed.js +0 -206
 - data/vendor/assets/javascripts/theme-tomorrow_night_eighties-noconflict.js +0 -1
 - data/vendor/assets/javascripts/theme-tomorrow_night_eighties-uncompressed-noconflict.js +0 -202
 - data/vendor/assets/javascripts/theme-tomorrow_night_eighties-uncompressed.js +0 -202
 - data/vendor/assets/javascripts/theme-twilight-noconflict.js +0 -1
 - data/vendor/assets/javascripts/theme-twilight-uncompressed-noconflict.js +0 -204
 - data/vendor/assets/javascripts/theme-twilight-uncompressed.js +0 -204
 - data/vendor/assets/javascripts/theme-vibrant_ink-noconflict.js +0 -1
 - data/vendor/assets/javascripts/theme-vibrant_ink-uncompressed-noconflict.js +0 -183
 - data/vendor/assets/javascripts/theme-vibrant_ink-uncompressed.js +0 -183
 
| 
         @@ -35,8 +35,8 @@ var require = function(parentId, id) { 
     | 
|
| 
       35 
35 
     | 
    
         
             
                var module = require.modules[id];
         
     | 
| 
       36 
36 
     | 
    
         
             
                if (module) {
         
     | 
| 
       37 
37 
     | 
    
         
             
                    if (!module.initialized) {
         
     | 
| 
       38 
     | 
    
         
            -
                        module.exports = module.factory().exports;
         
     | 
| 
       39 
38 
     | 
    
         
             
                        module.initialized = true;
         
     | 
| 
      
 39 
     | 
    
         
            +
                        module.exports = module.factory().exports;
         
     | 
| 
       40 
40 
     | 
    
         
             
                    }
         
     | 
| 
       41 
41 
     | 
    
         
             
                    return module.exports;
         
     | 
| 
       42 
42 
     | 
    
         
             
                }
         
     | 
| 
         @@ -56,6 +56,10 @@ require.tlns = {}; 
     | 
|
| 
       56 
56 
     | 
    
         
             
            var define = function(id, deps, factory) {
         
     | 
| 
       57 
57 
     | 
    
         
             
                if (arguments.length == 2) {
         
     | 
| 
       58 
58 
     | 
    
         
             
                    factory = deps;
         
     | 
| 
      
 59 
     | 
    
         
            +
                    if (typeof id != "string") {
         
     | 
| 
      
 60 
     | 
    
         
            +
                        deps = id;
         
     | 
| 
      
 61 
     | 
    
         
            +
                        id = require.id;
         
     | 
| 
      
 62 
     | 
    
         
            +
                    }
         
     | 
| 
       59 
63 
     | 
    
         
             
                } else if (arguments.length == 1) {
         
     | 
| 
       60 
64 
     | 
    
         
             
                    factory = id;
         
     | 
| 
       61 
65 
     | 
    
         
             
                    id = require.id;
         
     | 
| 
         @@ -149,25 +153,15 @@ onmessage = function(e) { 
     | 
|
| 
       149 
153 
     | 
    
         
             
            */
         
     | 
| 
       150 
154 
     | 
    
         | 
| 
       151 
155 
     | 
    
         
             
            define('ace/lib/fixoldbrowsers', ['require', 'exports', 'module' , 'ace/lib/regexp', 'ace/lib/es5-shim'], function(require, exports, module) {
         
     | 
| 
       152 
     | 
    
         
            -
             
     | 
| 
      
 156 
     | 
    
         
            +
             
     | 
| 
       153 
157 
     | 
    
         | 
| 
       154 
158 
     | 
    
         
             
            require("./regexp");
         
     | 
| 
       155 
159 
     | 
    
         
             
            require("./es5-shim");
         
     | 
| 
       156 
160 
     | 
    
         | 
| 
       157 
161 
     | 
    
         
             
            });
         
     | 
| 
       158 
     | 
    
         
            -
            /*
         
     | 
| 
       159 
     | 
    
         
            -
             *  Based on code from:
         
     | 
| 
       160 
     | 
    
         
            -
             *
         
     | 
| 
       161 
     | 
    
         
            -
             * XRegExp 1.5.0
         
     | 
| 
       162 
     | 
    
         
            -
             * (c) 2007-2010 Steven Levithan
         
     | 
| 
       163 
     | 
    
         
            -
             * MIT License
         
     | 
| 
       164 
     | 
    
         
            -
             * <http://xregexp.com>
         
     | 
| 
       165 
     | 
    
         
            -
             * Provides an augmented, extensible, cross-browser implementation of regular expressions,
         
     | 
| 
       166 
     | 
    
         
            -
             * including support for additional syntax, flags, and methods
         
     | 
| 
       167 
     | 
    
         
            -
             */
         
     | 
| 
       168 
162 
     | 
    
         | 
| 
       169 
163 
     | 
    
         
             
            define('ace/lib/regexp', ['require', 'exports', 'module' ], function(require, exports, module) {
         
     | 
| 
       170 
     | 
    
         
            -
             
     | 
| 
      
 164 
     | 
    
         
            +
             
     | 
| 
       171 
165 
     | 
    
         | 
| 
       172 
166 
     | 
    
         
             
                //---------------------------------
         
     | 
| 
       173 
167 
     | 
    
         
             
                //  Private variables
         
     | 
| 
         @@ -187,6 +181,9 @@ define('ace/lib/regexp', ['require', 'exports', 'module' ], function(require, ex 
     | 
|
| 
       187 
181 
     | 
    
         
             
                        return !x.lastIndex;
         
     | 
| 
       188 
182 
     | 
    
         
             
                    }();
         
     | 
| 
       189 
183 
     | 
    
         | 
| 
      
 184 
     | 
    
         
            +
                if (compliantLastIndexIncrement && compliantExecNpcg)
         
     | 
| 
      
 185 
     | 
    
         
            +
                    return;
         
     | 
| 
      
 186 
     | 
    
         
            +
             
     | 
| 
       190 
187 
     | 
    
         
             
                //---------------------------------
         
     | 
| 
       191 
188 
     | 
    
         
             
                //  Overriden native methods
         
     | 
| 
       192 
189 
     | 
    
         
             
                //---------------------------------
         
     | 
| 
         @@ -252,7 +249,7 @@ define('ace/lib/regexp', ['require', 'exports', 'module' ], function(require, ex 
     | 
|
| 
       252 
249 
     | 
    
         
             
                           (regex.multiline  ? "m" : "") +
         
     | 
| 
       253 
250 
     | 
    
         
             
                           (regex.extended   ? "x" : "") + // Proposed for ES4; included in AS3
         
     | 
| 
       254 
251 
     | 
    
         
             
                           (regex.sticky     ? "y" : "");
         
     | 
| 
       255 
     | 
    
         
            -
                } 
     | 
| 
      
 252 
     | 
    
         
            +
                }
         
     | 
| 
       256 
253 
     | 
    
         | 
| 
       257 
254 
     | 
    
         
             
                function indexOf (array, item, from) {
         
     | 
| 
       258 
255 
     | 
    
         
             
                    if (Array.prototype.indexOf) // Use the native array method if available
         
     | 
| 
         @@ -262,30 +259,9 @@ define('ace/lib/regexp', ['require', 'exports', 'module' ], function(require, ex 
     | 
|
| 
       262 
259 
     | 
    
         
             
                            return i;
         
     | 
| 
       263 
260 
     | 
    
         
             
                    }
         
     | 
| 
       264 
261 
     | 
    
         
             
                    return -1;
         
     | 
| 
       265 
     | 
    
         
            -
                } 
     | 
| 
      
 262 
     | 
    
         
            +
                }
         
     | 
| 
       266 
263 
     | 
    
         | 
| 
       267 
264 
     | 
    
         
             
            });
         
     | 
| 
       268 
     | 
    
         
            -
            // vim: ts=4 sts=4 sw=4 expandtab
         
     | 
| 
       269 
     | 
    
         
            -
            // -- kriskowal Kris Kowal Copyright (C) 2009-2011 MIT License
         
     | 
| 
       270 
     | 
    
         
            -
            // -- tlrobinson Tom Robinson Copyright (C) 2009-2010 MIT License (Narwhal Project)
         
     | 
| 
       271 
     | 
    
         
            -
            // -- dantman Daniel Friesen Copyright (C) 2010 XXX TODO License or CLA
         
     | 
| 
       272 
     | 
    
         
            -
            // -- fschaefer Florian Schäfer Copyright (C) 2010 MIT License
         
     | 
| 
       273 
     | 
    
         
            -
            // -- Gozala Irakli Gozalishvili Copyright (C) 2010 MIT License
         
     | 
| 
       274 
     | 
    
         
            -
            // -- kitcambridge Kit Cambridge Copyright (C) 2011 MIT License
         
     | 
| 
       275 
     | 
    
         
            -
            // -- kossnocorp Sasha Koss XXX TODO License or CLA
         
     | 
| 
       276 
     | 
    
         
            -
            // -- bryanforbes Bryan Forbes XXX TODO License or CLA
         
     | 
| 
       277 
     | 
    
         
            -
            // -- killdream Quildreen Motta Copyright (C) 2011 MIT Licence
         
     | 
| 
       278 
     | 
    
         
            -
            // -- michaelficarra Michael Ficarra Copyright (C) 2011 3-clause BSD License
         
     | 
| 
       279 
     | 
    
         
            -
            // -- sharkbrainguy Gerard Paapu Copyright (C) 2011 MIT License
         
     | 
| 
       280 
     | 
    
         
            -
            // -- bbqsrc Brendan Molloy (C) 2011 Creative Commons Zero (public domain)
         
     | 
| 
       281 
     | 
    
         
            -
            // -- iwyg XXX TODO License or CLA
         
     | 
| 
       282 
     | 
    
         
            -
            // -- DomenicDenicola Domenic Denicola Copyright (C) 2011 MIT License
         
     | 
| 
       283 
     | 
    
         
            -
            // -- xavierm02 Montillet Xavier XXX TODO License or CLA
         
     | 
| 
       284 
     | 
    
         
            -
            // -- Raynos Raynos XXX TODO License or CLA
         
     | 
| 
       285 
     | 
    
         
            -
            // -- samsonjs Sami Samhuri Copyright (C) 2010 MIT License
         
     | 
| 
       286 
     | 
    
         
            -
            // -- rwldrn Rick Waldron Copyright (C) 2011 MIT License
         
     | 
| 
       287 
     | 
    
         
            -
            // -- lexer Alexey Zakharov XXX TODO License or CLA
         
     | 
| 
       288 
     | 
    
         
            -
             
     | 
| 
       289 
265 
     | 
    
         
             
            /*!
         
     | 
| 
       290 
266 
     | 
    
         
             
                Copyright (c) 2009, 280 North Inc. http://280north.com/
         
     | 
| 
       291 
267 
     | 
    
         
             
                MIT License. http://github.com/280north/narwhal/blob/master/README.md
         
     | 
| 
         @@ -1324,48 +1300,9 @@ var prepareString = "a"[0] != "a", 
     | 
|
| 
       1324 
1300 
     | 
    
         
             
                    return Object(o);
         
     | 
| 
       1325 
1301 
     | 
    
         
             
                };
         
     | 
| 
       1326 
1302 
     | 
    
         
             
            });
         
     | 
| 
       1327 
     | 
    
         
            -
            /* vim:ts=4:sts=4:sw=4:
         
     | 
| 
       1328 
     | 
    
         
            -
             * ***** BEGIN LICENSE BLOCK *****
         
     | 
| 
       1329 
     | 
    
         
            -
             * Version: MPL 1.1/GPL 2.0/LGPL 2.1
         
     | 
| 
       1330 
     | 
    
         
            -
             *
         
     | 
| 
       1331 
     | 
    
         
            -
             * The contents of this file are subject to the Mozilla Public License Version
         
     | 
| 
       1332 
     | 
    
         
            -
             * 1.1 (the "License"); you may not use this file except in compliance with
         
     | 
| 
       1333 
     | 
    
         
            -
             * the License. You may obtain a copy of the License at
         
     | 
| 
       1334 
     | 
    
         
            -
             * http://www.mozilla.org/MPL/
         
     | 
| 
       1335 
     | 
    
         
            -
             *
         
     | 
| 
       1336 
     | 
    
         
            -
             * Software distributed under the License is distributed on an "AS IS" basis,
         
     | 
| 
       1337 
     | 
    
         
            -
             * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
         
     | 
| 
       1338 
     | 
    
         
            -
             * for the specific language governing rights and limitations under the
         
     | 
| 
       1339 
     | 
    
         
            -
             * License.
         
     | 
| 
       1340 
     | 
    
         
            -
             *
         
     | 
| 
       1341 
     | 
    
         
            -
             * The Original Code is Ajax.org Code Editor (ACE).
         
     | 
| 
       1342 
     | 
    
         
            -
             *
         
     | 
| 
       1343 
     | 
    
         
            -
             * The Initial Developer of the Original Code is
         
     | 
| 
       1344 
     | 
    
         
            -
             * Ajax.org B.V.
         
     | 
| 
       1345 
     | 
    
         
            -
             * Portions created by the Initial Developer are Copyright (C) 2010
         
     | 
| 
       1346 
     | 
    
         
            -
             * the Initial Developer. All Rights Reserved.
         
     | 
| 
       1347 
     | 
    
         
            -
             *
         
     | 
| 
       1348 
     | 
    
         
            -
             * Contributor(s):
         
     | 
| 
       1349 
     | 
    
         
            -
             *      Fabian Jakobs <fabian AT ajax DOT org>
         
     | 
| 
       1350 
     | 
    
         
            -
             *      Irakli Gozalishvili <rfobic@gmail.com> (http://jeditoolkit.com)
         
     | 
| 
       1351 
     | 
    
         
            -
             *      Mike de Boer <mike AT ajax DOT org>
         
     | 
| 
       1352 
     | 
    
         
            -
             *
         
     | 
| 
       1353 
     | 
    
         
            -
             * Alternatively, the contents of this file may be used under the terms of
         
     | 
| 
       1354 
     | 
    
         
            -
             * either the GNU General Public License Version 2 or later (the "GPL"), or
         
     | 
| 
       1355 
     | 
    
         
            -
             * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
         
     | 
| 
       1356 
     | 
    
         
            -
             * in which case the provisions of the GPL or the LGPL are applicable instead
         
     | 
| 
       1357 
     | 
    
         
            -
             * of those above. If you wish to allow use of your version of this file only
         
     | 
| 
       1358 
     | 
    
         
            -
             * under the terms of either the GPL or the LGPL, and not to allow others to
         
     | 
| 
       1359 
     | 
    
         
            -
             * use your version of this file under the terms of the MPL, indicate your
         
     | 
| 
       1360 
     | 
    
         
            -
             * decision by deleting the provisions above and replace them with the notice
         
     | 
| 
       1361 
     | 
    
         
            -
             * and other provisions required by the GPL or the LGPL. If you do not delete
         
     | 
| 
       1362 
     | 
    
         
            -
             * the provisions above, a recipient may use your version of this file under
         
     | 
| 
       1363 
     | 
    
         
            -
             * the terms of any one of the MPL, the GPL or the LGPL.
         
     | 
| 
       1364 
     | 
    
         
            -
             *
         
     | 
| 
       1365 
     | 
    
         
            -
             * ***** END LICENSE BLOCK ***** */
         
     | 
| 
       1366 
1303 
     | 
    
         | 
| 
       1367 
1304 
     | 
    
         
             
            define('ace/lib/event_emitter', ['require', 'exports', 'module' ], function(require, exports, module) {
         
     | 
| 
       1368 
     | 
    
         
            -
             
     | 
| 
      
 1305 
     | 
    
         
            +
             
     | 
| 
       1369 
1306 
     | 
    
         | 
| 
       1370 
1307 
     | 
    
         
             
            var EventEmitter = {};
         
     | 
| 
       1371 
1308 
     | 
    
         | 
| 
         @@ -1380,7 +1317,8 @@ EventEmitter._dispatchEvent = function(eventName, e) { 
     | 
|
| 
       1380 
1317 
     | 
    
         
             
                    return;
         
     | 
| 
       1381 
1318 
     | 
    
         | 
| 
       1382 
1319 
     | 
    
         
             
                e = e || {};
         
     | 
| 
       1383 
     | 
    
         
            -
                e.type 
     | 
| 
      
 1320 
     | 
    
         
            +
                if (!e.type)
         
     | 
| 
      
 1321 
     | 
    
         
            +
                    e.type = eventName;
         
     | 
| 
       1384 
1322 
     | 
    
         | 
| 
       1385 
1323 
     | 
    
         
             
                if (!e.stopPropagation) {
         
     | 
| 
       1386 
1324 
     | 
    
         
             
                    e.stopPropagation = function() {
         
     | 
| 
         @@ -1419,7 +1357,7 @@ EventEmitter.addEventListener = function(eventName, callback) { 
     | 
|
| 
       1419 
1357 
     | 
    
         | 
| 
       1420 
1358 
     | 
    
         
             
                var listeners = this._eventRegistry[eventName];
         
     | 
| 
       1421 
1359 
     | 
    
         
             
                if (!listeners)
         
     | 
| 
       1422 
     | 
    
         
            -
                     
     | 
| 
      
 1360 
     | 
    
         
            +
                    listeners = this._eventRegistry[eventName] = [];
         
     | 
| 
       1423 
1361 
     | 
    
         | 
| 
       1424 
1362 
     | 
    
         
             
                if (listeners.indexOf(callback) == -1)
         
     | 
| 
       1425 
1363 
     | 
    
         
             
                    listeners.push(callback);
         
     | 
| 
         @@ -1445,45 +1383,9 @@ EventEmitter.removeAllListeners = function(eventName) { 
     | 
|
| 
       1445 
1383 
     | 
    
         
             
            exports.EventEmitter = EventEmitter;
         
     | 
| 
       1446 
1384 
     | 
    
         | 
| 
       1447 
1385 
     | 
    
         
             
            });
         
     | 
| 
       1448 
     | 
    
         
            -
            /* ***** BEGIN LICENSE BLOCK *****
         
     | 
| 
       1449 
     | 
    
         
            -
             * Version: MPL 1.1/GPL 2.0/LGPL 2.1
         
     | 
| 
       1450 
     | 
    
         
            -
             *
         
     | 
| 
       1451 
     | 
    
         
            -
             * The contents of this file are subject to the Mozilla Public License Version
         
     | 
| 
       1452 
     | 
    
         
            -
             * 1.1 (the "License"); you may not use this file except in compliance with
         
     | 
| 
       1453 
     | 
    
         
            -
             * the License. You may obtain a copy of the License at
         
     | 
| 
       1454 
     | 
    
         
            -
             * http://www.mozilla.org/MPL/
         
     | 
| 
       1455 
     | 
    
         
            -
             *
         
     | 
| 
       1456 
     | 
    
         
            -
             * Software distributed under the License is distributed on an "AS IS" basis,
         
     | 
| 
       1457 
     | 
    
         
            -
             * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
         
     | 
| 
       1458 
     | 
    
         
            -
             * for the specific language governing rights and limitations under the
         
     | 
| 
       1459 
     | 
    
         
            -
             * License.
         
     | 
| 
       1460 
     | 
    
         
            -
             *
         
     | 
| 
       1461 
     | 
    
         
            -
             * The Original Code is Ajax.org Code Editor (ACE).
         
     | 
| 
       1462 
     | 
    
         
            -
             *
         
     | 
| 
       1463 
     | 
    
         
            -
             * The Initial Developer of the Original Code is
         
     | 
| 
       1464 
     | 
    
         
            -
             * Ajax.org B.V.
         
     | 
| 
       1465 
     | 
    
         
            -
             * Portions created by the Initial Developer are Copyright (C) 2010
         
     | 
| 
       1466 
     | 
    
         
            -
             * the Initial Developer. All Rights Reserved.
         
     | 
| 
       1467 
     | 
    
         
            -
             *
         
     | 
| 
       1468 
     | 
    
         
            -
             * Contributor(s):
         
     | 
| 
       1469 
     | 
    
         
            -
             *      Fabian Jakobs <fabian AT ajax DOT org>
         
     | 
| 
       1470 
     | 
    
         
            -
             *
         
     | 
| 
       1471 
     | 
    
         
            -
             * Alternatively, the contents of this file may be used under the terms of
         
     | 
| 
       1472 
     | 
    
         
            -
             * either the GNU General Public License Version 2 or later (the "GPL"), or
         
     | 
| 
       1473 
     | 
    
         
            -
             * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
         
     | 
| 
       1474 
     | 
    
         
            -
             * in which case the provisions of the GPL or the LGPL are applicable instead
         
     | 
| 
       1475 
     | 
    
         
            -
             * of those above. If you wish to allow use of your version of this file only
         
     | 
| 
       1476 
     | 
    
         
            -
             * under the terms of either the GPL or the LGPL, and not to allow others to
         
     | 
| 
       1477 
     | 
    
         
            -
             * use your version of this file under the terms of the MPL, indicate your
         
     | 
| 
       1478 
     | 
    
         
            -
             * decision by deleting the provisions above and replace them with the notice
         
     | 
| 
       1479 
     | 
    
         
            -
             * and other provisions required by the GPL or the LGPL. If you do not delete
         
     | 
| 
       1480 
     | 
    
         
            -
             * the provisions above, a recipient may use your version of this file under
         
     | 
| 
       1481 
     | 
    
         
            -
             * the terms of any one of the MPL, the GPL or the LGPL.
         
     | 
| 
       1482 
     | 
    
         
            -
             *
         
     | 
| 
       1483 
     | 
    
         
            -
             * ***** END LICENSE BLOCK ***** */
         
     | 
| 
       1484 
1386 
     | 
    
         | 
| 
       1485 
1387 
     | 
    
         
             
            define('ace/lib/oop', ['require', 'exports', 'module' ], function(require, exports, module) {
         
     | 
| 
       1486 
     | 
    
         
            -
             
     | 
| 
      
 1388 
     | 
    
         
            +
             
     | 
| 
       1487 
1389 
     | 
    
         | 
| 
       1488 
1390 
     | 
    
         
             
            exports.inherits = (function() {
         
     | 
| 
       1489 
1391 
     | 
    
         
             
                var tempCtor = function() {};
         
     | 
| 
         @@ -1506,45 +1408,9 @@ exports.implement = function(proto, mixin) { 
     | 
|
| 
       1506 
1408 
     | 
    
         
             
            };
         
     | 
| 
       1507 
1409 
     | 
    
         | 
| 
       1508 
1410 
     | 
    
         
             
            });
         
     | 
| 
       1509 
     | 
    
         
            -
            /* ***** BEGIN LICENSE BLOCK *****
         
     | 
| 
       1510 
     | 
    
         
            -
             * Version: MPL 1.1/GPL 2.0/LGPL 2.1
         
     | 
| 
       1511 
     | 
    
         
            -
             *
         
     | 
| 
       1512 
     | 
    
         
            -
             * The contents of this file are subject to the Mozilla Public License Version
         
     | 
| 
       1513 
     | 
    
         
            -
             * 1.1 (the "License"); you may not use this file except in compliance with
         
     | 
| 
       1514 
     | 
    
         
            -
             * the License. You may obtain a copy of the License at
         
     | 
| 
       1515 
     | 
    
         
            -
             * http://www.mozilla.org/MPL/
         
     | 
| 
       1516 
     | 
    
         
            -
             *
         
     | 
| 
       1517 
     | 
    
         
            -
             * Software distributed under the License is distributed on an "AS IS" basis,
         
     | 
| 
       1518 
     | 
    
         
            -
             * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
         
     | 
| 
       1519 
     | 
    
         
            -
             * for the specific language governing rights and limitations under the
         
     | 
| 
       1520 
     | 
    
         
            -
             * License.
         
     | 
| 
       1521 
     | 
    
         
            -
             *
         
     | 
| 
       1522 
     | 
    
         
            -
             * The Original Code is Ajax.org Code Editor (ACE).
         
     | 
| 
       1523 
     | 
    
         
            -
             *
         
     | 
| 
       1524 
     | 
    
         
            -
             * The Initial Developer of the Original Code is
         
     | 
| 
       1525 
     | 
    
         
            -
             * Ajax.org B.V.
         
     | 
| 
       1526 
     | 
    
         
            -
             * Portions created by the Initial Developer are Copyright (C) 2010
         
     | 
| 
       1527 
     | 
    
         
            -
             * the Initial Developer. All Rights Reserved.
         
     | 
| 
       1528 
     | 
    
         
            -
             *
         
     | 
| 
       1529 
     | 
    
         
            -
             * Contributor(s):
         
     | 
| 
       1530 
     | 
    
         
            -
             *      Fabian Jakobs <fabian AT ajax DOT org>
         
     | 
| 
       1531 
     | 
    
         
            -
             *
         
     | 
| 
       1532 
     | 
    
         
            -
             * Alternatively, the contents of this file may be used under the terms of
         
     | 
| 
       1533 
     | 
    
         
            -
             * either the GNU General Public License Version 2 or later (the "GPL"), or
         
     | 
| 
       1534 
     | 
    
         
            -
             * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
         
     | 
| 
       1535 
     | 
    
         
            -
             * in which case the provisions of the GPL or the LGPL are applicable instead
         
     | 
| 
       1536 
     | 
    
         
            -
             * of those above. If you wish to allow use of your version of this file only
         
     | 
| 
       1537 
     | 
    
         
            -
             * under the terms of either the GPL or the LGPL, and not to allow others to
         
     | 
| 
       1538 
     | 
    
         
            -
             * use your version of this file under the terms of the MPL, indicate your
         
     | 
| 
       1539 
     | 
    
         
            -
             * decision by deleting the provisions above and replace them with the notice
         
     | 
| 
       1540 
     | 
    
         
            -
             * and other provisions required by the GPL or the LGPL. If you do not delete
         
     | 
| 
       1541 
     | 
    
         
            -
             * the provisions above, a recipient may use your version of this file under
         
     | 
| 
       1542 
     | 
    
         
            -
             * the terms of any one of the MPL, the GPL or the LGPL.
         
     | 
| 
       1543 
     | 
    
         
            -
             *
         
     | 
| 
       1544 
     | 
    
         
            -
             * ***** END LICENSE BLOCK ***** */
         
     | 
| 
       1545 
1411 
     | 
    
         | 
| 
       1546 
1412 
     | 
    
         
             
            define('ace/mode/coffee_worker', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/worker/mirror', 'ace/mode/coffee/coffee-script'], function(require, exports, module) {
         
     | 
| 
       1547 
     | 
    
         
            -
             
     | 
| 
      
 1413 
     | 
    
         
            +
             
     | 
| 
       1548 
1414 
     | 
    
         | 
| 
       1549 
1415 
     | 
    
         
             
            var oop = require("../lib/oop");
         
     | 
| 
       1550 
1416 
     | 
    
         
             
            var Mirror = require("../worker/mirror").Mirror;
         
     | 
| 
         @@ -1599,7 +1465,7 @@ oop.inherits(Worker, Mirror); 
     | 
|
| 
       1599 
1465 
     | 
    
         | 
| 
       1600 
1466 
     | 
    
         
             
            });
         
     | 
| 
       1601 
1467 
     | 
    
         
             
            define('ace/worker/mirror', ['require', 'exports', 'module' , 'ace/document', 'ace/lib/lang'], function(require, exports, module) {
         
     | 
| 
       1602 
     | 
    
         
            -
             
     | 
| 
      
 1468 
     | 
    
         
            +
             
     | 
| 
       1603 
1469 
     | 
    
         | 
| 
       1604 
1470 
     | 
    
         
             
            var Document = require("../document").Document;
         
     | 
| 
       1605 
1471 
     | 
    
         
             
            var lang = require("../lib/lang");
         
     | 
| 
         @@ -1641,59 +1507,15 @@ var Mirror = exports.Mirror = function(sender) { 
     | 
|
| 
       1641 
1507 
     | 
    
         
             
            }).call(Mirror.prototype);
         
     | 
| 
       1642 
1508 
     | 
    
         | 
| 
       1643 
1509 
     | 
    
         
             
            });
         
     | 
| 
       1644 
     | 
    
         
            -
            /* ***** BEGIN LICENSE BLOCK *****
         
     | 
| 
       1645 
     | 
    
         
            -
             * Version: MPL 1.1/GPL 2.0/LGPL 2.1
         
     | 
| 
       1646 
     | 
    
         
            -
             *
         
     | 
| 
       1647 
     | 
    
         
            -
             * The contents of this file are subject to the Mozilla Public License Version
         
     | 
| 
       1648 
     | 
    
         
            -
             * 1.1 (the "License"); you may not use this file except in compliance with
         
     | 
| 
       1649 
     | 
    
         
            -
             * the License. You may obtain a copy of the License at
         
     | 
| 
       1650 
     | 
    
         
            -
             * http://www.mozilla.org/MPL/
         
     | 
| 
       1651 
     | 
    
         
            -
             *
         
     | 
| 
       1652 
     | 
    
         
            -
             * Software distributed under the License is distributed on an "AS IS" basis,
         
     | 
| 
       1653 
     | 
    
         
            -
             * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
         
     | 
| 
       1654 
     | 
    
         
            -
             * for the specific language governing rights and limitations under the
         
     | 
| 
       1655 
     | 
    
         
            -
             * License.
         
     | 
| 
       1656 
     | 
    
         
            -
             *
         
     | 
| 
       1657 
     | 
    
         
            -
             * The Original Code is Ajax.org Code Editor (ACE).
         
     | 
| 
       1658 
     | 
    
         
            -
             *
         
     | 
| 
       1659 
     | 
    
         
            -
             * The Initial Developer of the Original Code is
         
     | 
| 
       1660 
     | 
    
         
            -
             * Ajax.org B.V.
         
     | 
| 
       1661 
     | 
    
         
            -
             * Portions created by the Initial Developer are Copyright (C) 2010
         
     | 
| 
       1662 
     | 
    
         
            -
             * the Initial Developer. All Rights Reserved.
         
     | 
| 
       1663 
     | 
    
         
            -
             *
         
     | 
| 
       1664 
     | 
    
         
            -
             * Contributor(s):
         
     | 
| 
       1665 
     | 
    
         
            -
             *      Fabian Jakobs <fabian AT ajax DOT org>
         
     | 
| 
       1666 
     | 
    
         
            -
             *
         
     | 
| 
       1667 
     | 
    
         
            -
             * Alternatively, the contents of this file may be used under the terms of
         
     | 
| 
       1668 
     | 
    
         
            -
             * either the GNU General Public License Version 2 or later (the "GPL"), or
         
     | 
| 
       1669 
     | 
    
         
            -
             * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
         
     | 
| 
       1670 
     | 
    
         
            -
             * in which case the provisions of the GPL or the LGPL are applicable instead
         
     | 
| 
       1671 
     | 
    
         
            -
             * of those above. If you wish to allow use of your version of this file only
         
     | 
| 
       1672 
     | 
    
         
            -
             * under the terms of either the GPL or the LGPL, and not to allow others to
         
     | 
| 
       1673 
     | 
    
         
            -
             * use your version of this file under the terms of the MPL, indicate your
         
     | 
| 
       1674 
     | 
    
         
            -
             * decision by deleting the provisions above and replace them with the notice
         
     | 
| 
       1675 
     | 
    
         
            -
             * and other provisions required by the GPL or the LGPL. If you do not delete
         
     | 
| 
       1676 
     | 
    
         
            -
             * the provisions above, a recipient may use your version of this file under
         
     | 
| 
       1677 
     | 
    
         
            -
             * the terms of any one of the MPL, the GPL or the LGPL.
         
     | 
| 
       1678 
     | 
    
         
            -
             *
         
     | 
| 
       1679 
     | 
    
         
            -
             * ***** END LICENSE BLOCK ***** */
         
     | 
| 
       1680 
1510 
     | 
    
         | 
| 
       1681 
1511 
     | 
    
         
             
            define('ace/document', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter', 'ace/range', 'ace/anchor'], function(require, exports, module) {
         
     | 
| 
       1682 
     | 
    
         
            -
             
     | 
| 
      
 1512 
     | 
    
         
            +
             
     | 
| 
       1683 
1513 
     | 
    
         | 
| 
       1684 
1514 
     | 
    
         
             
            var oop = require("./lib/oop");
         
     | 
| 
       1685 
1515 
     | 
    
         
             
            var EventEmitter = require("./lib/event_emitter").EventEmitter;
         
     | 
| 
       1686 
1516 
     | 
    
         
             
            var Range = require("./range").Range;
         
     | 
| 
       1687 
1517 
     | 
    
         
             
            var Anchor = require("./anchor").Anchor;
         
     | 
| 
       1688 
1518 
     | 
    
         | 
| 
       1689 
     | 
    
         
            -
            /**
         
     | 
| 
       1690 
     | 
    
         
            -
             * class Document
         
     | 
| 
       1691 
     | 
    
         
            -
             *
         
     | 
| 
       1692 
     | 
    
         
            -
             * Contains the text of the document. Documents are controlled by a single [[EditSession `EditSession`]]. At its core, `Document`s are just an array of strings, with each row in the document matching up to the array index.
         
     | 
| 
       1693 
     | 
    
         
            -
             *
         
     | 
| 
       1694 
     | 
    
         
            -
             *
         
     | 
| 
       1695 
     | 
    
         
            -
             **/
         
     | 
| 
       1696 
     | 
    
         
            -
             
     | 
| 
       1697 
1519 
     | 
    
         
             
             /**
         
     | 
| 
       1698 
1520 
     | 
    
         
             
             * new Document([text])
         
     | 
| 
       1699 
1521 
     | 
    
         
             
             * - text (String | Array): The starting text
         
     | 
| 
         @@ -1701,16 +1523,16 @@ var Anchor = require("./anchor").Anchor; 
     | 
|
| 
       1701 
1523 
     | 
    
         
             
             * Creates a new `Document`. If `text` is included, the `Document` contains those strings; otherwise, it's empty.
         
     | 
| 
       1702 
1524 
     | 
    
         
             
             *
         
     | 
| 
       1703 
1525 
     | 
    
         
             
             **/
         
     | 
| 
      
 1526 
     | 
    
         
            +
             
     | 
| 
       1704 
1527 
     | 
    
         
             
            var Document = function(text) {
         
     | 
| 
       1705 
1528 
     | 
    
         
             
                this.$lines = [];
         
     | 
| 
       1706 
1529 
     | 
    
         | 
| 
       1707 
     | 
    
         
            -
                if (Array.isArray(text)) {
         
     | 
| 
       1708 
     | 
    
         
            -
                    this.insertLines(0, text);
         
     | 
| 
       1709 
     | 
    
         
            -
                }
         
     | 
| 
       1710 
1530 
     | 
    
         
             
                // There has to be one line at least in the document. If you pass an empty
         
     | 
| 
       1711 
1531 
     | 
    
         
             
                // string to the insert function, nothing will happen. Workaround.
         
     | 
| 
       1712 
     | 
    
         
            -
                 
     | 
| 
      
 1532 
     | 
    
         
            +
                if (text.length == 0) {
         
     | 
| 
       1713 
1533 
     | 
    
         
             
                    this.$lines = [""];
         
     | 
| 
      
 1534 
     | 
    
         
            +
                } else if (Array.isArray(text)) {
         
     | 
| 
      
 1535 
     | 
    
         
            +
                    this.insertLines(0, text);
         
     | 
| 
       1714 
1536 
     | 
    
         
             
                } else {
         
     | 
| 
       1715 
1537 
     | 
    
         
             
                    this.insert({row: 0, column:0}, text);
         
     | 
| 
       1716 
1538 
     | 
    
         
             
                }
         
     | 
| 
         @@ -1719,49 +1541,18 @@ var Document = function(text) { 
     | 
|
| 
       1719 
1541 
     | 
    
         
             
            (function() {
         
     | 
| 
       1720 
1542 
     | 
    
         | 
| 
       1721 
1543 
     | 
    
         
             
                oop.implement(this, EventEmitter);
         
     | 
| 
       1722 
     | 
    
         
            -
             
     | 
| 
       1723 
     | 
    
         
            -
                /**
         
     | 
| 
       1724 
     | 
    
         
            -
                * Document.setValue(text) -> Void
         
     | 
| 
       1725 
     | 
    
         
            -
                * - text (String): The text to use
         
     | 
| 
       1726 
     | 
    
         
            -
                *
         
     | 
| 
       1727 
     | 
    
         
            -
                * Replaces all the lines in the current `Document` with the value of `text`.
         
     | 
| 
       1728 
     | 
    
         
            -
                **/
         
     | 
| 
       1729 
1544 
     | 
    
         
             
                this.setValue = function(text) {
         
     | 
| 
       1730 
1545 
     | 
    
         
             
                    var len = this.getLength();
         
     | 
| 
       1731 
1546 
     | 
    
         
             
                    this.remove(new Range(0, 0, len, this.getLine(len-1).length));
         
     | 
| 
       1732 
1547 
     | 
    
         
             
                    this.insert({row: 0, column:0}, text);
         
     | 
| 
       1733 
1548 
     | 
    
         
             
                };
         
     | 
| 
       1734 
     | 
    
         
            -
             
     | 
| 
       1735 
     | 
    
         
            -
                /**
         
     | 
| 
       1736 
     | 
    
         
            -
                * Document.getValue() -> String
         
     | 
| 
       1737 
     | 
    
         
            -
                * 
         
     | 
| 
       1738 
     | 
    
         
            -
                * Returns all the lines in the document as a single string, split by the new line character.
         
     | 
| 
       1739 
     | 
    
         
            -
                **/
         
     | 
| 
       1740 
1549 
     | 
    
         
             
                this.getValue = function() {
         
     | 
| 
       1741 
1550 
     | 
    
         
             
                    return this.getAllLines().join(this.getNewLineCharacter());
         
     | 
| 
       1742 
1551 
     | 
    
         
             
                };
         
     | 
| 
       1743 
     | 
    
         
            -
             
     | 
| 
       1744 
     | 
    
         
            -
                /** 
         
     | 
| 
       1745 
     | 
    
         
            -
                * Document.createAnchor(row, column) -> Anchor
         
     | 
| 
       1746 
     | 
    
         
            -
                * - row (Number): The row number to use
         
     | 
| 
       1747 
     | 
    
         
            -
                * - column (Number): The column number to use
         
     | 
| 
       1748 
     | 
    
         
            -
                *
         
     | 
| 
       1749 
     | 
    
         
            -
                * Creates a new `Anchor` to define a floating point in the document.
         
     | 
| 
       1750 
     | 
    
         
            -
                **/
         
     | 
| 
       1751 
1552 
     | 
    
         
             
                this.createAnchor = function(row, column) {
         
     | 
| 
       1752 
1553 
     | 
    
         
             
                    return new Anchor(this, row, column);
         
     | 
| 
       1753 
1554 
     | 
    
         
             
                };
         
     | 
| 
       1754 
1555 
     | 
    
         | 
| 
       1755 
     | 
    
         
            -
                /** internal, hide
         
     | 
| 
       1756 
     | 
    
         
            -
                * Document.$split(text) -> [String]
         
     | 
| 
       1757 
     | 
    
         
            -
                * - text (String): The text to work with
         
     | 
| 
       1758 
     | 
    
         
            -
                * + ([String]): A String array, with each index containing a piece of the original `text` string.
         
     | 
| 
       1759 
     | 
    
         
            -
                * 
         
     | 
| 
       1760 
     | 
    
         
            -
                * Splits a string of text on any newline (`\n`) or carriage-return ('\r') characters.
         
     | 
| 
       1761 
     | 
    
         
            -
                *
         
     | 
| 
       1762 
     | 
    
         
            -
                *
         
     | 
| 
       1763 
     | 
    
         
            -
                **/
         
     | 
| 
       1764 
     | 
    
         
            -
             
     | 
| 
       1765 
1556 
     | 
    
         
             
                // check for IE split bug
         
     | 
| 
       1766 
1557 
     | 
    
         
             
                if ("aaa".split(/a/).length == 0)
         
     | 
| 
       1767 
1558 
     | 
    
         
             
                    this.$split = function(text) {
         
     | 
| 
         @@ -1771,13 +1562,6 @@ var Document = function(text) { 
     | 
|
| 
       1771 
1562 
     | 
    
         
             
                    this.$split = function(text) {
         
     | 
| 
       1772 
1563 
     | 
    
         
             
                        return text.split(/\r\n|\r|\n/);
         
     | 
| 
       1773 
1564 
     | 
    
         
             
                    };
         
     | 
| 
       1774 
     | 
    
         
            -
             
     | 
| 
       1775 
     | 
    
         
            -
             
     | 
| 
       1776 
     | 
    
         
            -
                /** internal, hide
         
     | 
| 
       1777 
     | 
    
         
            -
                * Document.$detectNewLine(text) -> Void
         
     | 
| 
       1778 
     | 
    
         
            -
                * 
         
     | 
| 
       1779 
     | 
    
         
            -
                * 
         
     | 
| 
       1780 
     | 
    
         
            -
                **/
         
     | 
| 
       1781 
1565 
     | 
    
         
             
                this.$detectNewLine = function(text) {
         
     | 
| 
       1782 
1566 
     | 
    
         
             
                    var match = text.match(/^.*?(\r\n|\r|\n)/m);
         
     | 
| 
       1783 
1567 
     | 
    
         
             
                    if (match) {
         
     | 
| 
         @@ -1786,18 +1570,6 @@ var Document = function(text) { 
     | 
|
| 
       1786 
1570 
     | 
    
         
             
                        this.$autoNewLine = "\n";
         
     | 
| 
       1787 
1571 
     | 
    
         
             
                    }
         
     | 
| 
       1788 
1572 
     | 
    
         
             
                };
         
     | 
| 
       1789 
     | 
    
         
            -
             
     | 
| 
       1790 
     | 
    
         
            -
                /**
         
     | 
| 
       1791 
     | 
    
         
            -
                * Document.getNewLineCharacter() -> String
         
     | 
| 
       1792 
     | 
    
         
            -
                * + (String): If `newLineMode == windows`, `\r\n` is returned.<br/>
         
     | 
| 
       1793 
     | 
    
         
            -
                *  If `newLineMode == unix`, `\n` is returned.<br/>
         
     | 
| 
       1794 
     | 
    
         
            -
                *  If `newLineMode == auto`, the value of `autoNewLine` is returned.
         
     | 
| 
       1795 
     | 
    
         
            -
                * 
         
     | 
| 
       1796 
     | 
    
         
            -
                * Returns the newline character that's being used, depending on the value of `newLineMode`. 
         
     | 
| 
       1797 
     | 
    
         
            -
                *
         
     | 
| 
       1798 
     | 
    
         
            -
                * 
         
     | 
| 
       1799 
     | 
    
         
            -
                * 
         
     | 
| 
       1800 
     | 
    
         
            -
                **/
         
     | 
| 
       1801 
1573 
     | 
    
         
             
                this.getNewLineCharacter = function() {
         
     | 
| 
       1802 
1574 
     | 
    
         
             
                  switch (this.$newLineMode) {
         
     | 
| 
       1803 
1575 
     | 
    
         
             
                      case "windows":
         
     | 
| 
         @@ -1813,87 +1585,30 @@ var Document = function(text) { 
     | 
|
| 
       1813 
1585 
     | 
    
         | 
| 
       1814 
1586 
     | 
    
         
             
                this.$autoNewLine = "\n";
         
     | 
| 
       1815 
1587 
     | 
    
         
             
                this.$newLineMode = "auto";
         
     | 
| 
       1816 
     | 
    
         
            -
                /**
         
     | 
| 
       1817 
     | 
    
         
            -
                 * Document.setNewLineMode(newLineMode) -> Void
         
     | 
| 
       1818 
     | 
    
         
            -
                 * - newLineMode(String): [The newline mode to use; can be either `windows`, `unix`, or `auto`]{: #Document.setNewLineMode.param}
         
     | 
| 
       1819 
     | 
    
         
            -
                 * 
         
     | 
| 
       1820 
     | 
    
         
            -
                 * [Sets the new line mode.]{: #Document.setNewLineMode.desc}
         
     | 
| 
       1821 
     | 
    
         
            -
                 **/
         
     | 
| 
       1822 
1588 
     | 
    
         
             
                this.setNewLineMode = function(newLineMode) {
         
     | 
| 
       1823 
1589 
     | 
    
         
             
                    if (this.$newLineMode === newLineMode)
         
     | 
| 
       1824 
1590 
     | 
    
         
             
                        return;
         
     | 
| 
       1825 
1591 
     | 
    
         | 
| 
       1826 
1592 
     | 
    
         
             
                    this.$newLineMode = newLineMode;
         
     | 
| 
       1827 
1593 
     | 
    
         
             
                };
         
     | 
| 
       1828 
     | 
    
         
            -
             
     | 
| 
       1829 
     | 
    
         
            -
                /**
         
     | 
| 
       1830 
     | 
    
         
            -
                * Document.getNewLineMode() -> String
         
     | 
| 
       1831 
     | 
    
         
            -
                * 
         
     | 
| 
       1832 
     | 
    
         
            -
                * [Returns the type of newlines being used; either `windows`, `unix`, or `auto`]{: #Document.getNewLineMode}
         
     | 
| 
       1833 
     | 
    
         
            -
                *
         
     | 
| 
       1834 
     | 
    
         
            -
                **/
         
     | 
| 
       1835 
1594 
     | 
    
         
             
                this.getNewLineMode = function() {
         
     | 
| 
       1836 
1595 
     | 
    
         
             
                    return this.$newLineMode;
         
     | 
| 
       1837 
1596 
     | 
    
         
             
                };
         
     | 
| 
       1838 
     | 
    
         
            -
             
     | 
| 
       1839 
     | 
    
         
            -
                /**
         
     | 
| 
       1840 
     | 
    
         
            -
                * Document.isNewLine(text) -> Boolean
         
     | 
| 
       1841 
     | 
    
         
            -
                * - text (String): The text to check
         
     | 
| 
       1842 
     | 
    
         
            -
                *
         
     | 
| 
       1843 
     | 
    
         
            -
                * Returns `true` if `text` is a newline character (either `\r\n`, `\r`, or `\n`).
         
     | 
| 
       1844 
     | 
    
         
            -
                *
         
     | 
| 
       1845 
     | 
    
         
            -
                **/
         
     | 
| 
       1846 
1597 
     | 
    
         
             
                this.isNewLine = function(text) {
         
     | 
| 
       1847 
1598 
     | 
    
         
             
                    return (text == "\r\n" || text == "\r" || text == "\n");
         
     | 
| 
       1848 
1599 
     | 
    
         
             
                };
         
     | 
| 
       1849 
     | 
    
         
            -
             
     | 
| 
       1850 
     | 
    
         
            -
                /**
         
     | 
| 
       1851 
     | 
    
         
            -
                * Document.getLine(row) -> String
         
     | 
| 
       1852 
     | 
    
         
            -
                * - row (Number): The row index to retrieve
         
     | 
| 
       1853 
     | 
    
         
            -
                * 
         
     | 
| 
       1854 
     | 
    
         
            -
                * Returns a verbatim copy of the given line as it is in the document
         
     | 
| 
       1855 
     | 
    
         
            -
                *
         
     | 
| 
       1856 
     | 
    
         
            -
                **/
         
     | 
| 
       1857 
1600 
     | 
    
         
             
                this.getLine = function(row) {
         
     | 
| 
       1858 
1601 
     | 
    
         
             
                    return this.$lines[row] || "";
         
     | 
| 
       1859 
1602 
     | 
    
         
             
                };
         
     | 
| 
       1860 
     | 
    
         
            -
             
     | 
| 
       1861 
     | 
    
         
            -
                /**
         
     | 
| 
       1862 
     | 
    
         
            -
                * Document.getLines(firstRow, lastRow) -> [String]
         
     | 
| 
       1863 
     | 
    
         
            -
                * - firstRow (Number): The first row index to retrieve
         
     | 
| 
       1864 
     | 
    
         
            -
                * - lastRow (Number): The final row index to retrieve
         
     | 
| 
       1865 
     | 
    
         
            -
                * 
         
     | 
| 
       1866 
     | 
    
         
            -
                * Returns an array of strings of the rows between `firstRow` and `lastRow`. This function is inclusive of `lastRow`.
         
     | 
| 
       1867 
     | 
    
         
            -
                *
         
     | 
| 
       1868 
     | 
    
         
            -
                **/
         
     | 
| 
       1869 
1603 
     | 
    
         
             
                this.getLines = function(firstRow, lastRow) {
         
     | 
| 
       1870 
1604 
     | 
    
         
             
                    return this.$lines.slice(firstRow, lastRow + 1);
         
     | 
| 
       1871 
1605 
     | 
    
         
             
                };
         
     | 
| 
       1872 
     | 
    
         
            -
             
     | 
| 
       1873 
     | 
    
         
            -
                /**
         
     | 
| 
       1874 
     | 
    
         
            -
                * Document.getAllLines() -> [String]
         
     | 
| 
       1875 
     | 
    
         
            -
                * 
         
     | 
| 
       1876 
     | 
    
         
            -
                * Returns all lines in the document as string array. Warning: The caller should not modify this array!
         
     | 
| 
       1877 
     | 
    
         
            -
                **/
         
     | 
| 
       1878 
1606 
     | 
    
         
             
                this.getAllLines = function() {
         
     | 
| 
       1879 
1607 
     | 
    
         
             
                    return this.getLines(0, this.getLength());
         
     | 
| 
       1880 
1608 
     | 
    
         
             
                };
         
     | 
| 
       1881 
     | 
    
         
            -
             
     | 
| 
       1882 
     | 
    
         
            -
                /**
         
     | 
| 
       1883 
     | 
    
         
            -
                * Document.getLength() -> Number
         
     | 
| 
       1884 
     | 
    
         
            -
                * 
         
     | 
| 
       1885 
     | 
    
         
            -
                * Returns the number of rows in the document.
         
     | 
| 
       1886 
     | 
    
         
            -
                **/
         
     | 
| 
       1887 
1609 
     | 
    
         
             
                this.getLength = function() {
         
     | 
| 
       1888 
1610 
     | 
    
         
             
                    return this.$lines.length;
         
     | 
| 
       1889 
1611 
     | 
    
         
             
                };
         
     | 
| 
       1890 
     | 
    
         
            -
             
     | 
| 
       1891 
     | 
    
         
            -
                /**
         
     | 
| 
       1892 
     | 
    
         
            -
                * Document.getTextRange(range) -> String
         
     | 
| 
       1893 
     | 
    
         
            -
                * - range (Range): The range to work with
         
     | 
| 
       1894 
     | 
    
         
            -
                * 
         
     | 
| 
       1895 
     | 
    
         
            -
                * [Given a range within the document, this function returns all the text within that range as a single string.]{: #Document.getTextRange.desc}
         
     | 
| 
       1896 
     | 
    
         
            -
                **/
         
     | 
| 
       1897 
1612 
     | 
    
         
             
                this.getTextRange = function(range) {
         
     | 
| 
       1898 
1613 
     | 
    
         
             
                    if (range.start.row == range.end.row) {
         
     | 
| 
       1899 
1614 
     | 
    
         
             
                        return this.$lines[range.start.row].substring(range.start.column,
         
     | 
| 
         @@ -1906,12 +1621,6 @@ var Document = function(text) { 
     | 
|
| 
       1906 
1621 
     | 
    
         
             
                        return lines.join(this.getNewLineCharacter());
         
     | 
| 
       1907 
1622 
     | 
    
         
             
                    }
         
     | 
| 
       1908 
1623 
     | 
    
         
             
                };
         
     | 
| 
       1909 
     | 
    
         
            -
             
     | 
| 
       1910 
     | 
    
         
            -
                /** internal, hide
         
     | 
| 
       1911 
     | 
    
         
            -
                * Document.$clipPosition(position) -> Number
         
     | 
| 
       1912 
     | 
    
         
            -
                * 
         
     | 
| 
       1913 
     | 
    
         
            -
                * 
         
     | 
| 
       1914 
     | 
    
         
            -
                **/
         
     | 
| 
       1915 
1624 
     | 
    
         
             
                this.$clipPosition = function(position) {
         
     | 
| 
       1916 
1625 
     | 
    
         
             
                    var length = this.getLength();
         
     | 
| 
       1917 
1626 
     | 
    
         
             
                    if (position.row >= length) {
         
     | 
| 
         @@ -1920,16 +1629,6 @@ var Document = function(text) { 
     | 
|
| 
       1920 
1629 
     | 
    
         
             
                    }
         
     | 
| 
       1921 
1630 
     | 
    
         
             
                    return position;
         
     | 
| 
       1922 
1631 
     | 
    
         
             
                };
         
     | 
| 
       1923 
     | 
    
         
            -
             
     | 
| 
       1924 
     | 
    
         
            -
                /**
         
     | 
| 
       1925 
     | 
    
         
            -
                * Document.insert(position, text) -> Number
         
     | 
| 
       1926 
     | 
    
         
            -
                * - position (Number): The position to start inserting at 
         
     | 
| 
       1927 
     | 
    
         
            -
                * - text (String): A chunk of text to insert
         
     | 
| 
       1928 
     | 
    
         
            -
                * + (Number): The position of the last line of `text`. If the length of `text` is 0, this function simply returns `position`. 
         
     | 
| 
       1929 
     | 
    
         
            -
                * Inserts a block of `text` and the indicated `position`.
         
     | 
| 
       1930 
     | 
    
         
            -
                *
         
     | 
| 
       1931 
     | 
    
         
            -
                * 
         
     | 
| 
       1932 
     | 
    
         
            -
                **/
         
     | 
| 
       1933 
1632 
     | 
    
         
             
                this.insert = function(position, text) {
         
     | 
| 
       1934 
1633 
     | 
    
         
             
                    if (!text || text.length === 0)
         
     | 
| 
       1935 
1634 
     | 
    
         
             
                        return position;
         
     | 
| 
         @@ -1952,24 +1651,40 @@ var Document = function(text) { 
     | 
|
| 
       1952 
1651 
     | 
    
         
             
                    }
         
     | 
| 
       1953 
1652 
     | 
    
         
             
                    return position;
         
     | 
| 
       1954 
1653 
     | 
    
         
             
                };
         
     | 
| 
       1955 
     | 
    
         
            -
             
     | 
| 
       1956 
1654 
     | 
    
         
             
                /**
         
     | 
| 
       1957 
     | 
    
         
            -
             
     | 
| 
       1958 
     | 
    
         
            -
             
     | 
| 
       1959 
     | 
    
         
            -
             
     | 
| 
       1960 
     | 
    
         
            -
             
     | 
| 
       1961 
     | 
    
         
            -
             
     | 
| 
       1962 
     | 
    
         
            -
             
     | 
| 
       1963 
     | 
    
         
            -
             
     | 
| 
       1964 
     | 
    
         
            -
             
     | 
| 
       1965 
     | 
    
         
            -
                *  
     | 
| 
       1966 
     | 
    
         
            -
                *
         
     | 
| 
       1967 
     | 
    
         
            -
             
     | 
| 
       1968 
     | 
    
         
            -
                 
     | 
| 
      
 1655 
     | 
    
         
            +
                 * Document@change(e)
         
     | 
| 
      
 1656 
     | 
    
         
            +
                 * - e (Object): Contains at least one property called `"action"`. `"action"` indicates the action that triggered the change. Each action also has a set of additional properties.
         
     | 
| 
      
 1657 
     | 
    
         
            +
                 *
         
     | 
| 
      
 1658 
     | 
    
         
            +
                 * Fires whenever the document changes.
         
     | 
| 
      
 1659 
     | 
    
         
            +
                 *
         
     | 
| 
      
 1660 
     | 
    
         
            +
                 * Several methods trigger different `"change"` events. Below is a list of each action type, followed by each property that's also available:
         
     | 
| 
      
 1661 
     | 
    
         
            +
                 *
         
     | 
| 
      
 1662 
     | 
    
         
            +
                 *  * `"insertLines"` (emitted by [[Document.insertLines]])
         
     | 
| 
      
 1663 
     | 
    
         
            +
                 *    * `range`: the [[Range]] of the change within the document
         
     | 
| 
      
 1664 
     | 
    
         
            +
                 *    * `lines`: the lines in the document that are changing
         
     | 
| 
      
 1665 
     | 
    
         
            +
                 *  * `"insertText"` (emitted by [[Document.insertNewLine]])
         
     | 
| 
      
 1666 
     | 
    
         
            +
                 *    * `range`: the [[Range]] of the change within the document
         
     | 
| 
      
 1667 
     | 
    
         
            +
                 *    * `text`: the text that's being added
         
     | 
| 
      
 1668 
     | 
    
         
            +
                 *  * `"removeLines"` (emitted by [[Document.insertLines]])
         
     | 
| 
      
 1669 
     | 
    
         
            +
                 *    * `range`: the [[Range]] of the change within the document
         
     | 
| 
      
 1670 
     | 
    
         
            +
                 *    * `lines`: the lines in the document that were removed
         
     | 
| 
      
 1671 
     | 
    
         
            +
                 *    * `nl`: the new line character (as defined by [[Document.getNewLineCharacter]])
         
     | 
| 
      
 1672 
     | 
    
         
            +
                 *  * `"removeText"` (emitted by [[Document.removeInLine]] and [[Document.removeNewLine]])
         
     | 
| 
      
 1673 
     | 
    
         
            +
                 *    * `range`: the [[Range]] of the change within the document
         
     | 
| 
      
 1674 
     | 
    
         
            +
                 *    * `text`: the text that's being removed
         
     | 
| 
      
 1675 
     | 
    
         
            +
                 *
         
     | 
| 
      
 1676 
     | 
    
         
            +
                 **/
         
     | 
| 
       1969 
1677 
     | 
    
         
             
                this.insertLines = function(row, lines) {
         
     | 
| 
       1970 
1678 
     | 
    
         
             
                    if (lines.length == 0)
         
     | 
| 
       1971 
1679 
     | 
    
         
             
                        return {row: row, column: 0};
         
     | 
| 
       1972 
1680 
     | 
    
         | 
| 
      
 1681 
     | 
    
         
            +
                    // apply doesn't work for big arrays (smallest threshold is on safari 0xFFFF)
         
     | 
| 
      
 1682 
     | 
    
         
            +
                    // to circumvent that we have to break huge inserts into smaller chunks here
         
     | 
| 
      
 1683 
     | 
    
         
            +
                    if (lines.length > 0xFFFF) {
         
     | 
| 
      
 1684 
     | 
    
         
            +
                        var end = this.insertLines(row, lines.slice(0xFFFF));
         
     | 
| 
      
 1685 
     | 
    
         
            +
                        lines = lines.slice(0, 0xFFFF);
         
     | 
| 
      
 1686 
     | 
    
         
            +
                    }
         
     | 
| 
      
 1687 
     | 
    
         
            +
             
     | 
| 
       1973 
1688 
     | 
    
         
             
                    var args = [row, 0];
         
     | 
| 
       1974 
1689 
     | 
    
         
             
                    args.push.apply(args, lines);
         
     | 
| 
       1975 
1690 
     | 
    
         
             
                    this.$lines.splice.apply(this.$lines, args);
         
     | 
| 
         @@ -1981,20 +1696,8 @@ var Document = function(text) { 
     | 
|
| 
       1981 
1696 
     | 
    
         
             
                        lines: lines
         
     | 
| 
       1982 
1697 
     | 
    
         
             
                    };
         
     | 
| 
       1983 
1698 
     | 
    
         
             
                    this._emit("change", { data: delta });
         
     | 
| 
       1984 
     | 
    
         
            -
                    return range.end;
         
     | 
| 
      
 1699 
     | 
    
         
            +
                    return end || range.end;
         
     | 
| 
       1985 
1700 
     | 
    
         
             
                };
         
     | 
| 
       1986 
     | 
    
         
            -
             
     | 
| 
       1987 
     | 
    
         
            -
                /**
         
     | 
| 
       1988 
     | 
    
         
            -
                * Document.insertNewLine(position) -> Object
         
     | 
| 
       1989 
     | 
    
         
            -
                * - position (String): The position to insert at
         
     | 
| 
       1990 
     | 
    
         
            -
                * + (Object): Returns an object containing the final row and column, like this:<br/>
         
     | 
| 
       1991 
     | 
    
         
            -
                *    ```{row: endRow, column: 0}```
         
     | 
| 
       1992 
     | 
    
         
            -
                * 
         
     | 
| 
       1993 
     | 
    
         
            -
                * Inserts a new line into the document at the current row's `position`. This method also triggers the `'change'` event. 
         
     | 
| 
       1994 
     | 
    
         
            -
                *
         
     | 
| 
       1995 
     | 
    
         
            -
                *   
         
     | 
| 
       1996 
     | 
    
         
            -
                *
         
     | 
| 
       1997 
     | 
    
         
            -
                **/
         
     | 
| 
       1998 
1701 
     | 
    
         
             
                this.insertNewLine = function(position) {
         
     | 
| 
       1999 
1702 
     | 
    
         
             
                    position = this.$clipPosition(position);
         
     | 
| 
       2000 
1703 
     | 
    
         
             
                    var line = this.$lines[position.row] || "";
         
     | 
| 
         @@ -2016,20 +1719,6 @@ var Document = function(text) { 
     | 
|
| 
       2016 
1719 
     | 
    
         | 
| 
       2017 
1720 
     | 
    
         
             
                    return end;
         
     | 
| 
       2018 
1721 
     | 
    
         
             
                };
         
     | 
| 
       2019 
     | 
    
         
            -
             
     | 
| 
       2020 
     | 
    
         
            -
                /**
         
     | 
| 
       2021 
     | 
    
         
            -
                * Document.insertInLine(position, text) -> Object | Number
         
     | 
| 
       2022 
     | 
    
         
            -
                * - position (Number): The position to insert at
         
     | 
| 
       2023 
     | 
    
         
            -
                * - text (String): A chunk of text
         
     | 
| 
       2024 
     | 
    
         
            -
                * + (Object): Returns an object containing the final row and column, like this:<br/>
         
     | 
| 
       2025 
     | 
    
         
            -
                *     ```{row: endRow, column: 0}```
         
     | 
| 
       2026 
     | 
    
         
            -
                * + (Number): If `text` is empty, this function returns the value of `position`
         
     | 
| 
       2027 
     | 
    
         
            -
                * 
         
     | 
| 
       2028 
     | 
    
         
            -
                * Inserts `text` into the `position` at the current row. This method also triggers the `'change'` event.
         
     | 
| 
       2029 
     | 
    
         
            -
                *
         
     | 
| 
       2030 
     | 
    
         
            -
                *
         
     | 
| 
       2031 
     | 
    
         
            -
                *
         
     | 
| 
       2032 
     | 
    
         
            -
                **/
         
     | 
| 
       2033 
1722 
     | 
    
         
             
                this.insertInLine = function(position, text) {
         
     | 
| 
       2034 
1723 
     | 
    
         
             
                    if (text.length == 0)
         
     | 
| 
       2035 
1724 
     | 
    
         
             
                        return position;
         
     | 
| 
         @@ -2053,16 +1742,6 @@ var Document = function(text) { 
     | 
|
| 
       2053 
1742 
     | 
    
         | 
| 
       2054 
1743 
     | 
    
         
             
                    return end;
         
     | 
| 
       2055 
1744 
     | 
    
         
             
                };
         
     | 
| 
       2056 
     | 
    
         
            -
             
     | 
| 
       2057 
     | 
    
         
            -
                /**
         
     | 
| 
       2058 
     | 
    
         
            -
                * Document.remove(range) -> Object
         
     | 
| 
       2059 
     | 
    
         
            -
                * - range (Range): A specified Range to remove
         
     | 
| 
       2060 
     | 
    
         
            -
                * + (Object): Returns the new `start` property of the range, which contains `startRow` and `startColumn`. If `range` is empty, this function returns the unmodified value of `range.start`.
         
     | 
| 
       2061 
     | 
    
         
            -
                * 
         
     | 
| 
       2062 
     | 
    
         
            -
                * Removes the `range` from the document.
         
     | 
| 
       2063 
     | 
    
         
            -
                *
         
     | 
| 
       2064 
     | 
    
         
            -
                *
         
     | 
| 
       2065 
     | 
    
         
            -
                **/
         
     | 
| 
       2066 
1745 
     | 
    
         
             
                this.remove = function(range) {
         
     | 
| 
       2067 
1746 
     | 
    
         
             
                    // clip to document
         
     | 
| 
       2068 
1747 
     | 
    
         
             
                    range.start = this.$clipPosition(range.start);
         
     | 
| 
         @@ -2094,18 +1773,6 @@ var Document = function(text) { 
     | 
|
| 
       2094 
1773 
     | 
    
         
             
                    }
         
     | 
| 
       2095 
1774 
     | 
    
         
             
                    return range.start;
         
     | 
| 
       2096 
1775 
     | 
    
         
             
                };
         
     | 
| 
       2097 
     | 
    
         
            -
             
     | 
| 
       2098 
     | 
    
         
            -
                /**
         
     | 
| 
       2099 
     | 
    
         
            -
                * Document.removeInLine(row, startColumn, endColumn) -> Object
         
     | 
| 
       2100 
     | 
    
         
            -
                * - row (Number): The row to remove from
         
     | 
| 
       2101 
     | 
    
         
            -
                * - startColumn (Number): The column to start removing at 
         
     | 
| 
       2102 
     | 
    
         
            -
                * - endColumn (Number): The column to stop removing at
         
     | 
| 
       2103 
     | 
    
         
            -
                * + (Object): Returns an object containing `startRow` and `startColumn`, indicating the new row and column values.<br/>If `startColumn` is equal to `endColumn`, this function returns nothing.
         
     | 
| 
       2104 
     | 
    
         
            -
                *
         
     | 
| 
       2105 
     | 
    
         
            -
                * Removes the specified columns from the `row`. This method also triggers the `'change'` event.
         
     | 
| 
       2106 
     | 
    
         
            -
                *
         
     | 
| 
       2107 
     | 
    
         
            -
                * 
         
     | 
| 
       2108 
     | 
    
         
            -
                **/
         
     | 
| 
       2109 
1776 
     | 
    
         
             
                this.removeInLine = function(row, startColumn, endColumn) {
         
     | 
| 
       2110 
1777 
     | 
    
         
             
                    if (startColumn == endColumn)
         
     | 
| 
       2111 
1778 
     | 
    
         
             
                        return;
         
     | 
| 
         @@ -2124,17 +1791,6 @@ var Document = function(text) { 
     | 
|
| 
       2124 
1791 
     | 
    
         
             
                    this._emit("change", { data: delta });
         
     | 
| 
       2125 
1792 
     | 
    
         
             
                    return range.start;
         
     | 
| 
       2126 
1793 
     | 
    
         
             
                };
         
     | 
| 
       2127 
     | 
    
         
            -
             
     | 
| 
       2128 
     | 
    
         
            -
                /**
         
     | 
| 
       2129 
     | 
    
         
            -
                * Document.removeLines(firstRow, lastRow) -> [String]
         
     | 
| 
       2130 
     | 
    
         
            -
                * - firstRow (Number): The first row to be removed
         
     | 
| 
       2131 
     | 
    
         
            -
                * - lastRow (Number): The last row to be removed
         
     | 
| 
       2132 
     | 
    
         
            -
                * + ([String]): Returns all the removed lines.
         
     | 
| 
       2133 
     | 
    
         
            -
                * 
         
     | 
| 
       2134 
     | 
    
         
            -
                * Removes a range of full lines. This method also triggers the `'change'` event.
         
     | 
| 
       2135 
     | 
    
         
            -
                * 
         
     | 
| 
       2136 
     | 
    
         
            -
                *
         
     | 
| 
       2137 
     | 
    
         
            -
                **/
         
     | 
| 
       2138 
1794 
     | 
    
         
             
                this.removeLines = function(firstRow, lastRow) {
         
     | 
| 
       2139 
1795 
     | 
    
         
             
                    var range = new Range(firstRow, 0, lastRow + 1, 0);
         
     | 
| 
       2140 
1796 
     | 
    
         
             
                    var removed = this.$lines.splice(firstRow, lastRow - firstRow + 1);
         
     | 
| 
         @@ -2148,14 +1804,6 @@ var Document = function(text) { 
     | 
|
| 
       2148 
1804 
     | 
    
         
             
                    this._emit("change", { data: delta });
         
     | 
| 
       2149 
1805 
     | 
    
         
             
                    return removed;
         
     | 
| 
       2150 
1806 
     | 
    
         
             
                };
         
     | 
| 
       2151 
     | 
    
         
            -
             
     | 
| 
       2152 
     | 
    
         
            -
                /**
         
     | 
| 
       2153 
     | 
    
         
            -
                * Document.removeNewLine(row) -> Void
         
     | 
| 
       2154 
     | 
    
         
            -
                * - row (Number): The row to check
         
     | 
| 
       2155 
     | 
    
         
            -
                * 
         
     | 
| 
       2156 
     | 
    
         
            -
                * Removes the new line between `row` and the row immediately following it. This method also triggers the `'change'` event.
         
     | 
| 
       2157 
     | 
    
         
            -
                *
         
     | 
| 
       2158 
     | 
    
         
            -
                **/
         
     | 
| 
       2159 
1807 
     | 
    
         
             
                this.removeNewLine = function(row) {
         
     | 
| 
       2160 
1808 
     | 
    
         
             
                    var firstLine = this.getLine(row);
         
     | 
| 
       2161 
1809 
     | 
    
         
             
                    var secondLine = this.getLine(row+1);
         
     | 
| 
         @@ -2172,19 +1820,6 @@ var Document = function(text) { 
     | 
|
| 
       2172 
1820 
     | 
    
         
             
                    };
         
     | 
| 
       2173 
1821 
     | 
    
         
             
                    this._emit("change", { data: delta });
         
     | 
| 
       2174 
1822 
     | 
    
         
             
                };
         
     | 
| 
       2175 
     | 
    
         
            -
             
     | 
| 
       2176 
     | 
    
         
            -
                /**
         
     | 
| 
       2177 
     | 
    
         
            -
                * Document.replace(range, text) -> Object
         
     | 
| 
       2178 
     | 
    
         
            -
                * - range (Range): A specified Range to replace
         
     | 
| 
       2179 
     | 
    
         
            -
                * - text (String): The new text to use as a replacement
         
     | 
| 
       2180 
     | 
    
         
            -
                * + (Object): Returns an object containing the final row and column, like this:
         
     | 
| 
       2181 
     | 
    
         
            -
                *     {row: endRow, column: 0}
         
     | 
| 
       2182 
     | 
    
         
            -
                * If the text and range are empty, this function returns an object containing the current `range.start` value.
         
     | 
| 
       2183 
     | 
    
         
            -
                * If the text is the exact same as what currently exists, this function returns an object containing the current `range.end` value.
         
     | 
| 
       2184 
     | 
    
         
            -
                *
         
     | 
| 
       2185 
     | 
    
         
            -
                * Replaces a range in the document with the new `text`.
         
     | 
| 
       2186 
     | 
    
         
            -
                *
         
     | 
| 
       2187 
     | 
    
         
            -
                **/
         
     | 
| 
       2188 
1823 
     | 
    
         
             
                this.replace = function(range, text) {
         
     | 
| 
       2189 
1824 
     | 
    
         
             
                    if (text.length == 0 && range.isEmpty())
         
     | 
| 
       2190 
1825 
     | 
    
         
             
                        return range.start;
         
     | 
| 
         @@ -2204,12 +1839,6 @@ var Document = function(text) { 
     | 
|
| 
       2204 
1839 
     | 
    
         | 
| 
       2205 
1840 
     | 
    
         
             
                    return end;
         
     | 
| 
       2206 
1841 
     | 
    
         
             
                };
         
     | 
| 
       2207 
     | 
    
         
            -
             
     | 
| 
       2208 
     | 
    
         
            -
                /**
         
     | 
| 
       2209 
     | 
    
         
            -
                * Document.applyDeltas(deltas) -> Void
         
     | 
| 
       2210 
     | 
    
         
            -
                * 
         
     | 
| 
       2211 
     | 
    
         
            -
                * Applies all the changes previously accumulated. These can be either `'includeText'`, `'insertLines'`, `'removeText'`, and `'removeLines'`.
         
     | 
| 
       2212 
     | 
    
         
            -
                **/
         
     | 
| 
       2213 
1842 
     | 
    
         
             
                this.applyDeltas = function(deltas) {
         
     | 
| 
       2214 
1843 
     | 
    
         
             
                    for (var i=0; i<deltas.length; i++) {
         
     | 
| 
       2215 
1844 
     | 
    
         
             
                        var delta = deltas[i];
         
     | 
| 
         @@ -2225,12 +1854,6 @@ var Document = function(text) { 
     | 
|
| 
       2225 
1854 
     | 
    
         
             
                            this.remove(range);
         
     | 
| 
       2226 
1855 
     | 
    
         
             
                    }
         
     | 
| 
       2227 
1856 
     | 
    
         
             
                };
         
     | 
| 
       2228 
     | 
    
         
            -
             
     | 
| 
       2229 
     | 
    
         
            -
                /**
         
     | 
| 
       2230 
     | 
    
         
            -
                * Document.revertDeltas(deltas) -> Void
         
     | 
| 
       2231 
     | 
    
         
            -
                * 
         
     | 
| 
       2232 
     | 
    
         
            -
                * Reverts any changes previously applied. These can be either `'includeText'`, `'insertLines'`, `'removeText'`, and `'removeLines'`.
         
     | 
| 
       2233 
     | 
    
         
            -
                **/
         
     | 
| 
       2234 
1857 
     | 
    
         
             
                this.revertDeltas = function(deltas) {
         
     | 
| 
       2235 
1858 
     | 
    
         
             
                    for (var i=deltas.length-1; i>=0; i--) {
         
     | 
| 
       2236 
1859 
     | 
    
         
             
                        var delta = deltas[i];
         
     | 
| 
         @@ -2252,45 +1875,9 @@ var Document = function(text) { 
     | 
|
| 
       2252 
1875 
     | 
    
         | 
| 
       2253 
1876 
     | 
    
         
             
            exports.Document = Document;
         
     | 
| 
       2254 
1877 
     | 
    
         
             
            });
         
     | 
| 
       2255 
     | 
    
         
            -
            /* ***** BEGIN LICENSE BLOCK *****
         
     | 
| 
       2256 
     | 
    
         
            -
             * Version: MPL 1.1/GPL 2.0/LGPL 2.1
         
     | 
| 
       2257 
     | 
    
         
            -
             *
         
     | 
| 
       2258 
     | 
    
         
            -
             * The contents of this file are subject to the Mozilla Public License Version
         
     | 
| 
       2259 
     | 
    
         
            -
             * 1.1 (the "License"); you may not use this file except in compliance with
         
     | 
| 
       2260 
     | 
    
         
            -
             * the License. You may obtain a copy of the License at
         
     | 
| 
       2261 
     | 
    
         
            -
             * http://www.mozilla.org/MPL/
         
     | 
| 
       2262 
     | 
    
         
            -
             *
         
     | 
| 
       2263 
     | 
    
         
            -
             * Software distributed under the License is distributed on an "AS IS" basis,
         
     | 
| 
       2264 
     | 
    
         
            -
             * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
         
     | 
| 
       2265 
     | 
    
         
            -
             * for the specific language governing rights and limitations under the
         
     | 
| 
       2266 
     | 
    
         
            -
             * License.
         
     | 
| 
       2267 
     | 
    
         
            -
             *
         
     | 
| 
       2268 
     | 
    
         
            -
             * The Original Code is Ajax.org Code Editor (ACE).
         
     | 
| 
       2269 
     | 
    
         
            -
             *
         
     | 
| 
       2270 
     | 
    
         
            -
             * The Initial Developer of the Original Code is
         
     | 
| 
       2271 
     | 
    
         
            -
             * Ajax.org B.V.
         
     | 
| 
       2272 
     | 
    
         
            -
             * Portions created by the Initial Developer are Copyright (C) 2010
         
     | 
| 
       2273 
     | 
    
         
            -
             * the Initial Developer. All Rights Reserved.
         
     | 
| 
       2274 
     | 
    
         
            -
             *
         
     | 
| 
       2275 
     | 
    
         
            -
             * Contributor(s):
         
     | 
| 
       2276 
     | 
    
         
            -
             *      Fabian Jakobs <fabian AT ajax DOT org>
         
     | 
| 
       2277 
     | 
    
         
            -
             *
         
     | 
| 
       2278 
     | 
    
         
            -
             * Alternatively, the contents of this file may be used under the terms of
         
     | 
| 
       2279 
     | 
    
         
            -
             * either the GNU General Public License Version 2 or later (the "GPL"), or
         
     | 
| 
       2280 
     | 
    
         
            -
             * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
         
     | 
| 
       2281 
     | 
    
         
            -
             * in which case the provisions of the GPL or the LGPL are applicable instead
         
     | 
| 
       2282 
     | 
    
         
            -
             * of those above. If you wish to allow use of your version of this file only
         
     | 
| 
       2283 
     | 
    
         
            -
             * under the terms of either the GPL or the LGPL, and not to allow others to
         
     | 
| 
       2284 
     | 
    
         
            -
             * use your version of this file under the terms of the MPL, indicate your
         
     | 
| 
       2285 
     | 
    
         
            -
             * decision by deleting the provisions above and replace them with the notice
         
     | 
| 
       2286 
     | 
    
         
            -
             * and other provisions required by the GPL or the LGPL. If you do not delete
         
     | 
| 
       2287 
     | 
    
         
            -
             * the provisions above, a recipient may use your version of this file under
         
     | 
| 
       2288 
     | 
    
         
            -
             * the terms of any one of the MPL, the GPL or the LGPL.
         
     | 
| 
       2289 
     | 
    
         
            -
             *
         
     | 
| 
       2290 
     | 
    
         
            -
             * ***** END LICENSE BLOCK ***** */
         
     | 
| 
       2291 
1878 
     | 
    
         | 
| 
       2292 
1879 
     | 
    
         
             
            define('ace/range', ['require', 'exports', 'module' ], function(require, exports, module) {
         
     | 
| 
       2293 
     | 
    
         
            -
             
     | 
| 
      
 1880 
     | 
    
         
            +
             
     | 
| 
       2294 
1881 
     | 
    
         | 
| 
       2295 
1882 
     | 
    
         
             
            /**
         
     | 
| 
       2296 
1883 
     | 
    
         
             
             * class Range
         
     | 
| 
         @@ -2334,53 +1921,15 @@ var Range = function(startRow, startColumn, endRow, endColumn) { 
     | 
|
| 
       2334 
1921 
     | 
    
         
             
                        this.end.row == range.end.row &&
         
     | 
| 
       2335 
1922 
     | 
    
         
             
                        this.start.column == range.start.column &&
         
     | 
| 
       2336 
1923 
     | 
    
         
             
                        this.end.column == range.end.column
         
     | 
| 
       2337 
     | 
    
         
            -
                };
         
     | 
| 
       2338 
     | 
    
         
            -
             
     | 
| 
       2339 
     | 
    
         
            -
                /**
         
     | 
| 
       2340 
     | 
    
         
            -
                 * Range.toString() -> String
         
     | 
| 
       2341 
     | 
    
         
            -
                 *
         
     | 
| 
       2342 
     | 
    
         
            -
                 * Returns a string containing the range's row and column information, given like this:
         
     | 
| 
       2343 
     | 
    
         
            -
                 *
         
     | 
| 
       2344 
     | 
    
         
            -
                 *    [start.row/start.column] -> [end.row/end.column]
         
     | 
| 
       2345 
     | 
    
         
            -
                 *
         
     | 
| 
       2346 
     | 
    
         
            -
                 **/ 
         
     | 
| 
       2347 
     | 
    
         
            -
             
     | 
| 
      
 1924 
     | 
    
         
            +
                }; 
         
     | 
| 
       2348 
1925 
     | 
    
         
             
                this.toString = function() {
         
     | 
| 
       2349 
1926 
     | 
    
         
             
                    return ("Range: [" + this.start.row + "/" + this.start.column +
         
     | 
| 
       2350 
1927 
     | 
    
         
             
                        "] -> [" + this.end.row + "/" + this.end.column + "]");
         
     | 
| 
       2351 
     | 
    
         
            -
                };
         
     | 
| 
       2352 
     | 
    
         
            -
             
     | 
| 
       2353 
     | 
    
         
            -
                /** related to: Range.compare
         
     | 
| 
       2354 
     | 
    
         
            -
                 * Range.contains(row, column) -> Boolean
         
     | 
| 
       2355 
     | 
    
         
            -
                 * - row (Number): A row to check for
         
     | 
| 
       2356 
     | 
    
         
            -
                 * - column (Number): A column to check for
         
     | 
| 
       2357 
     | 
    
         
            -
                 *
         
     | 
| 
       2358 
     | 
    
         
            -
                 * Returns `true` if the `row` and `column` provided are within the given range. This can better be expressed as returning `true` if:
         
     | 
| 
       2359 
     | 
    
         
            -
                 *
         
     | 
| 
       2360 
     | 
    
         
            -
                 *    this.start.row <= row <= this.end.row &&
         
     | 
| 
       2361 
     | 
    
         
            -
                 *    this.start.column <= column <= this.end.column
         
     | 
| 
       2362 
     | 
    
         
            -
                 *
         
     | 
| 
       2363 
     | 
    
         
            -
                 **/ 
         
     | 
| 
      
 1928 
     | 
    
         
            +
                }; 
         
     | 
| 
       2364 
1929 
     | 
    
         | 
| 
       2365 
1930 
     | 
    
         
             
                this.contains = function(row, column) {
         
     | 
| 
       2366 
1931 
     | 
    
         
             
                    return this.compare(row, column) == 0;
         
     | 
| 
       2367 
     | 
    
         
            -
                };
         
     | 
| 
       2368 
     | 
    
         
            -
             
     | 
| 
       2369 
     | 
    
         
            -
                /** related to: Range.compare
         
     | 
| 
       2370 
     | 
    
         
            -
                 * Range.compareRange(range) -> Number
         
     | 
| 
       2371 
     | 
    
         
            -
                 * - range (Range): A range to compare with
         
     | 
| 
       2372 
     | 
    
         
            -
                 * + (Number): This method returns one of the following numbers:<br/>
         
     | 
| 
       2373 
     | 
    
         
            -
                 * <br/>
         
     | 
| 
       2374 
     | 
    
         
            -
                 * * `-2`: (B) is in front of (A), and doesn't intersect with (A)<br/>
         
     | 
| 
       2375 
     | 
    
         
            -
                 * * `-1`: (B) begins before (A) but ends inside of (A)<br/>
         
     | 
| 
       2376 
     | 
    
         
            -
                 * * `0`: (B) is completely inside of (A) OR (A) is completely inside of (B)<br/>
         
     | 
| 
       2377 
     | 
    
         
            -
                 * * `+1`: (B) begins inside of (A) but ends outside of (A)<br/>
         
     | 
| 
       2378 
     | 
    
         
            -
                 * * `+2`: (B) is after (A) and doesn't intersect with (A)<br/>
         
     | 
| 
       2379 
     | 
    
         
            -
                 * * `42`: FTW state: (B) ends in (A) but starts outside of (A)
         
     | 
| 
       2380 
     | 
    
         
            -
                 * 
         
     | 
| 
       2381 
     | 
    
         
            -
                 * Compares `this` range (A) with another range (B).
         
     | 
| 
       2382 
     | 
    
         
            -
                 *
         
     | 
| 
       2383 
     | 
    
         
            -
                 **/ 
         
     | 
| 
      
 1932 
     | 
    
         
            +
                }; 
         
     | 
| 
       2384 
1933 
     | 
    
         
             
                this.compareRange = function(range) {
         
     | 
| 
       2385 
1934 
     | 
    
         
             
                    var cmp,
         
     | 
| 
       2386 
1935 
     | 
    
         
             
                        end = range.end,
         
     | 
| 
         @@ -2617,30 +2166,6 @@ var Range = function(startRow, startColumn, endRow, endColumn) { 
     | 
|
| 
       2617 
2166 
     | 
    
         | 
| 
       2618 
2167 
     | 
    
         
             
                    return 0;
         
     | 
| 
       2619 
2168 
     | 
    
         
             
                };
         
     | 
| 
       2620 
     | 
    
         
            -
             
     | 
| 
       2621 
     | 
    
         
            -
                /**
         
     | 
| 
       2622 
     | 
    
         
            -
                 * Range.compareStart(row, column) -> Number
         
     | 
| 
       2623 
     | 
    
         
            -
                 * - row (Number): A row point to compare with
         
     | 
| 
       2624 
     | 
    
         
            -
                 * - column (Number): A column point to compare with
         
     | 
| 
       2625 
     | 
    
         
            -
                 * + (Number): This method returns one of the following numbers:<br/>
         
     | 
| 
       2626 
     | 
    
         
            -
                 * <br/>
         
     | 
| 
       2627 
     | 
    
         
            -
                 * * `0` if the two points are exactly equal<br/>
         
     | 
| 
       2628 
     | 
    
         
            -
                 * * `-1` if `p.row` is less then the calling range<br/>
         
     | 
| 
       2629 
     | 
    
         
            -
                 * * `1` if `p.row` is greater than the calling range, or if `isStart` is `true`.<br/>
         
     | 
| 
       2630 
     | 
    
         
            -
                 * <br/>
         
     | 
| 
       2631 
     | 
    
         
            -
                 * If the starting row of the calling range is equal to `p.row`, and:<br/>
         
     | 
| 
       2632 
     | 
    
         
            -
                 * * `p.column` is greater than or equal to the calling range's starting column, this returns `0`<br/>
         
     | 
| 
       2633 
     | 
    
         
            -
                 * * Otherwise, it returns -1<br/>
         
     | 
| 
       2634 
     | 
    
         
            -
                 * <br/>
         
     | 
| 
       2635 
     | 
    
         
            -
                 * If the ending row of the calling range is equal to `p.row`, and:<br/>
         
     | 
| 
       2636 
     | 
    
         
            -
                 * * `p.column` is less than or equal to the calling range's ending column, this returns `0`<br/>
         
     | 
| 
       2637 
     | 
    
         
            -
                 * * Otherwise, it returns 1
         
     | 
| 
       2638 
     | 
    
         
            -
                 *
         
     | 
| 
       2639 
     | 
    
         
            -
                 * Checks the row and column points with the row and column points of the calling range.
         
     | 
| 
       2640 
     | 
    
         
            -
                 *
         
     | 
| 
       2641 
     | 
    
         
            -
                 *
         
     | 
| 
       2642 
     | 
    
         
            -
                 *
         
     | 
| 
       2643 
     | 
    
         
            -
                 **/
         
     | 
| 
       2644 
2169 
     | 
    
         
             
                this.compareStart = function(row, column) {
         
     | 
| 
       2645 
2170 
     | 
    
         
             
                    if (this.start.row == row && this.start.column == column) {
         
     | 
| 
       2646 
2171 
     | 
    
         
             
                        return -1;
         
     | 
| 
         @@ -2678,7 +2203,7 @@ var Range = function(startRow, startColumn, endRow, endColumn) { 
     | 
|
| 
       2678 
2203 
     | 
    
         
             
                    }
         
     | 
| 
       2679 
2204 
     | 
    
         
             
                }
         
     | 
| 
       2680 
2205 
     | 
    
         | 
| 
       2681 
     | 
    
         
            -
             
     | 
| 
      
 2206 
     | 
    
         
            +
                /** 
         
     | 
| 
       2682 
2207 
     | 
    
         
             
                 * Range.compareInside(row, column) -> Number
         
     | 
| 
       2683 
2208 
     | 
    
         
             
                 * - row (Number): A row point to compare with
         
     | 
| 
       2684 
2209 
     | 
    
         
             
                 * - column (Number): A column point to compare with
         
     | 
| 
         @@ -2703,7 +2228,7 @@ var Range = function(startRow, startColumn, endRow, endColumn) { 
     | 
|
| 
       2703 
2228 
     | 
    
         
             
                    }
         
     | 
| 
       2704 
2229 
     | 
    
         
             
                }
         
     | 
| 
       2705 
2230 
     | 
    
         | 
| 
       2706 
     | 
    
         
            -
             
     | 
| 
      
 2231 
     | 
    
         
            +
                /** 
         
     | 
| 
       2707 
2232 
     | 
    
         
             
                 * Range.clipRows(firstRow, lastRow) -> Range
         
     | 
| 
       2708 
2233 
     | 
    
         
             
                 * - firstRow (Number): The starting row
         
     | 
| 
       2709 
2234 
     | 
    
         
             
                 * - lastRow (Number): The ending row
         
     | 
| 
         @@ -2741,15 +2266,6 @@ var Range = function(startRow, startColumn, endRow, endColumn) { 
     | 
|
| 
       2741 
2266 
     | 
    
         
             
                    }
         
     | 
| 
       2742 
2267 
     | 
    
         
             
                    return Range.fromPoints(start || this.start, end || this.end);
         
     | 
| 
       2743 
2268 
     | 
    
         
             
                };
         
     | 
| 
       2744 
     | 
    
         
            -
             
     | 
| 
       2745 
     | 
    
         
            -
               /** 
         
     | 
| 
       2746 
     | 
    
         
            -
                 * Range.extend(row, column) -> Range
         
     | 
| 
       2747 
     | 
    
         
            -
                 * - row (Number): A new row to extend to
         
     | 
| 
       2748 
     | 
    
         
            -
                 * - column (Number): A new column to extend to
         
     | 
| 
       2749 
     | 
    
         
            -
                 *
         
     | 
| 
       2750 
     | 
    
         
            -
                 *  Changes the row and column points for the calling range for both the starting and ending points. This method returns that range with a new row.
         
     | 
| 
       2751 
     | 
    
         
            -
                 *
         
     | 
| 
       2752 
     | 
    
         
            -
                **/
         
     | 
| 
       2753 
2269 
     | 
    
         
             
                this.extend = function(row, column) {
         
     | 
| 
       2754 
2270 
     | 
    
         
             
                    var cmp = this.compare(row, column);
         
     | 
| 
       2755 
2271 
     | 
    
         | 
| 
         @@ -2766,46 +2282,18 @@ var Range = function(startRow, startColumn, endRow, endColumn) { 
     | 
|
| 
       2766 
2282 
     | 
    
         
             
                this.isEmpty = function() {
         
     | 
| 
       2767 
2283 
     | 
    
         
             
                    return (this.start.row == this.end.row && this.start.column == this.end.column);
         
     | 
| 
       2768 
2284 
     | 
    
         
             
                };
         
     | 
| 
       2769 
     | 
    
         
            -
             
     | 
| 
       2770 
     | 
    
         
            -
               /** 
         
     | 
| 
       2771 
     | 
    
         
            -
                 * Range.isMultiLine() -> Boolean
         
     | 
| 
       2772 
     | 
    
         
            -
                 *
         
     | 
| 
       2773 
     | 
    
         
            -
                 * Returns true if the range spans across multiple lines.
         
     | 
| 
       2774 
     | 
    
         
            -
                 *
         
     | 
| 
       2775 
     | 
    
         
            -
                **/
         
     | 
| 
       2776 
2285 
     | 
    
         
             
                this.isMultiLine = function() {
         
     | 
| 
       2777 
2286 
     | 
    
         
             
                    return (this.start.row !== this.end.row);
         
     | 
| 
       2778 
2287 
     | 
    
         
             
                };
         
     | 
| 
       2779 
     | 
    
         
            -
             
     | 
| 
       2780 
     | 
    
         
            -
               /** 
         
     | 
| 
       2781 
     | 
    
         
            -
                 * Range.clone() -> Range
         
     | 
| 
       2782 
     | 
    
         
            -
                 *
         
     | 
| 
       2783 
     | 
    
         
            -
                 * Returns a duplicate of the calling range.
         
     | 
| 
       2784 
     | 
    
         
            -
                 *
         
     | 
| 
       2785 
     | 
    
         
            -
                **/
         
     | 
| 
       2786 
2288 
     | 
    
         
             
                this.clone = function() {
         
     | 
| 
       2787 
2289 
     | 
    
         
             
                    return Range.fromPoints(this.start, this.end);
         
     | 
| 
       2788 
2290 
     | 
    
         
             
                };
         
     | 
| 
       2789 
     | 
    
         
            -
             
     | 
| 
       2790 
     | 
    
         
            -
               /** 
         
     | 
| 
       2791 
     | 
    
         
            -
                 * Range.collapseRows() -> Range
         
     | 
| 
       2792 
     | 
    
         
            -
                 *
         
     | 
| 
       2793 
     | 
    
         
            -
                 * Returns a range containing the starting and ending rows of the original range, but with a column value of `0`.
         
     | 
| 
       2794 
     | 
    
         
            -
                 *
         
     | 
| 
       2795 
     | 
    
         
            -
                **/
         
     | 
| 
       2796 
2291 
     | 
    
         
             
                this.collapseRows = function() {
         
     | 
| 
       2797 
2292 
     | 
    
         
             
                    if (this.end.column == 0)
         
     | 
| 
       2798 
2293 
     | 
    
         
             
                        return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0)
         
     | 
| 
       2799 
2294 
     | 
    
         
             
                    else
         
     | 
| 
       2800 
2295 
     | 
    
         
             
                        return new Range(this.start.row, 0, this.end.row, 0)
         
     | 
| 
       2801 
2296 
     | 
    
         
             
                };
         
     | 
| 
       2802 
     | 
    
         
            -
             
     | 
| 
       2803 
     | 
    
         
            -
               /** 
         
     | 
| 
       2804 
     | 
    
         
            -
                 * Range.toScreenRange(session) -> Range
         
     | 
| 
       2805 
     | 
    
         
            -
                 * - session (EditSession): The `EditSession` to retrieve coordinates from
         
     | 
| 
       2806 
     | 
    
         
            -
                 * 
         
     | 
| 
       2807 
     | 
    
         
            -
                 * Given the current `Range`, this function converts those starting and ending points into screen positions, and then returns a new `Range` object.
         
     | 
| 
       2808 
     | 
    
         
            -
                **/
         
     | 
| 
       2809 
2297 
     | 
    
         
             
                this.toScreenRange = function(session) {
         
     | 
| 
       2810 
2298 
     | 
    
         
             
                    var screenPosStart =
         
     | 
| 
       2811 
2299 
     | 
    
         
             
                        session.documentToScreenPosition(this.start);
         
     | 
| 
         @@ -2819,71 +2307,19 @@ var Range = function(startRow, startColumn, endRow, endColumn) { 
     | 
|
| 
       2819 
2307 
     | 
    
         
             
                };
         
     | 
| 
       2820 
2308 
     | 
    
         | 
| 
       2821 
2309 
     | 
    
         
             
            }).call(Range.prototype);
         
     | 
| 
       2822 
     | 
    
         
            -
             
     | 
| 
       2823 
     | 
    
         
            -
            /** 
         
     | 
| 
       2824 
     | 
    
         
            -
             * Range.fromPoints(start, end) -> Range
         
     | 
| 
       2825 
     | 
    
         
            -
             * - start (Range): A starting point to use
         
     | 
| 
       2826 
     | 
    
         
            -
             * - end (Range): An ending point to use
         
     | 
| 
       2827 
     | 
    
         
            -
             * 
         
     | 
| 
       2828 
     | 
    
         
            -
             * Creates and returns a new `Range` based on the row and column of the given parameters.
         
     | 
| 
       2829 
     | 
    
         
            -
             *
         
     | 
| 
       2830 
     | 
    
         
            -
            **/
         
     | 
| 
       2831 
2310 
     | 
    
         
             
            Range.fromPoints = function(start, end) {
         
     | 
| 
       2832 
2311 
     | 
    
         
             
                return new Range(start.row, start.column, end.row, end.column);
         
     | 
| 
       2833 
2312 
     | 
    
         
             
            };
         
     | 
| 
       2834 
2313 
     | 
    
         | 
| 
       2835 
2314 
     | 
    
         
             
            exports.Range = Range;
         
     | 
| 
       2836 
2315 
     | 
    
         
             
            });
         
     | 
| 
       2837 
     | 
    
         
            -
            /* ***** BEGIN LICENSE BLOCK *****
         
     | 
| 
       2838 
     | 
    
         
            -
             * Version: MPL 1.1/GPL 2.0/LGPL 2.1
         
     | 
| 
       2839 
     | 
    
         
            -
             *
         
     | 
| 
       2840 
     | 
    
         
            -
             * The contents of this file are subject to the Mozilla Public License Version
         
     | 
| 
       2841 
     | 
    
         
            -
             * 1.1 (the "License"); you may not use this file except in compliance with
         
     | 
| 
       2842 
     | 
    
         
            -
             * the License. You may obtain a copy of the License at
         
     | 
| 
       2843 
     | 
    
         
            -
             * http://www.mozilla.org/MPL/
         
     | 
| 
       2844 
     | 
    
         
            -
             *
         
     | 
| 
       2845 
     | 
    
         
            -
             * Software distributed under the License is distributed on an "AS IS" basis,
         
     | 
| 
       2846 
     | 
    
         
            -
             * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
         
     | 
| 
       2847 
     | 
    
         
            -
             * for the specific language governing rights and limitations under the
         
     | 
| 
       2848 
     | 
    
         
            -
             * License.
         
     | 
| 
       2849 
     | 
    
         
            -
             *
         
     | 
| 
       2850 
     | 
    
         
            -
             * The Original Code is Ajax.org Code Editor (ACE).
         
     | 
| 
       2851 
     | 
    
         
            -
             *
         
     | 
| 
       2852 
     | 
    
         
            -
             * The Initial Developer of the Original Code is
         
     | 
| 
       2853 
     | 
    
         
            -
             * Ajax.org B.V.
         
     | 
| 
       2854 
     | 
    
         
            -
             * Portions created by the Initial Developer are Copyright (C) 2010
         
     | 
| 
       2855 
     | 
    
         
            -
             * the Initial Developer. All Rights Reserved.
         
     | 
| 
       2856 
     | 
    
         
            -
             *
         
     | 
| 
       2857 
     | 
    
         
            -
             * Contributor(s):
         
     | 
| 
       2858 
     | 
    
         
            -
             *      Fabian Jakobs <fabian AT ajax DOT org>
         
     | 
| 
       2859 
     | 
    
         
            -
             *
         
     | 
| 
       2860 
     | 
    
         
            -
             * Alternatively, the contents of this file may be used under the terms of
         
     | 
| 
       2861 
     | 
    
         
            -
             * either the GNU General Public License Version 2 or later (the "GPL"), or
         
     | 
| 
       2862 
     | 
    
         
            -
             * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
         
     | 
| 
       2863 
     | 
    
         
            -
             * in which case the provisions of the GPL or the LGPL are applicable instead
         
     | 
| 
       2864 
     | 
    
         
            -
             * of those above. If you wish to allow use of your version of this file only
         
     | 
| 
       2865 
     | 
    
         
            -
             * under the terms of either the GPL or the LGPL, and not to allow others to
         
     | 
| 
       2866 
     | 
    
         
            -
             * use your version of this file under the terms of the MPL, indicate your
         
     | 
| 
       2867 
     | 
    
         
            -
             * decision by deleting the provisions above and replace them with the notice
         
     | 
| 
       2868 
     | 
    
         
            -
             * and other provisions required by the GPL or the LGPL. If you do not delete
         
     | 
| 
       2869 
     | 
    
         
            -
             * the provisions above, a recipient may use your version of this file under
         
     | 
| 
       2870 
     | 
    
         
            -
             * the terms of any one of the MPL, the GPL or the LGPL.
         
     | 
| 
       2871 
     | 
    
         
            -
             *
         
     | 
| 
       2872 
     | 
    
         
            -
             * ***** END LICENSE BLOCK ***** */
         
     | 
| 
       2873 
2316 
     | 
    
         | 
| 
       2874 
2317 
     | 
    
         
             
            define('ace/anchor', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter'], function(require, exports, module) {
         
     | 
| 
       2875 
     | 
    
         
            -
             
     | 
| 
      
 2318 
     | 
    
         
            +
             
     | 
| 
       2876 
2319 
     | 
    
         | 
| 
       2877 
2320 
     | 
    
         
             
            var oop = require("./lib/oop");
         
     | 
| 
       2878 
2321 
     | 
    
         
             
            var EventEmitter = require("./lib/event_emitter").EventEmitter;
         
     | 
| 
       2879 
2322 
     | 
    
         | 
| 
       2880 
     | 
    
         
            -
            /**
         
     | 
| 
       2881 
     | 
    
         
            -
             * class Anchor
         
     | 
| 
       2882 
     | 
    
         
            -
             *
         
     | 
| 
       2883 
     | 
    
         
            -
             * Defines the floating pointer in the document. Whenever text is inserted or deleted before the cursor, the position of the cursor is updated
         
     | 
| 
       2884 
     | 
    
         
            -
             *
         
     | 
| 
       2885 
     | 
    
         
            -
             **/
         
     | 
| 
       2886 
     | 
    
         
            -
             
     | 
| 
       2887 
2323 
     | 
    
         
             
            /**
         
     | 
| 
       2888 
2324 
     | 
    
         
             
             * new Anchor(doc, row, column)
         
     | 
| 
       2889 
2325 
     | 
    
         
             
             * - doc (Document): The document to associate with the anchor
         
     | 
| 
         @@ -2909,36 +2345,14 @@ var Anchor = exports.Anchor = function(doc, row, column) { 
     | 
|
| 
       2909 
2345 
     | 
    
         
             
            (function() {
         
     | 
| 
       2910 
2346 
     | 
    
         | 
| 
       2911 
2347 
     | 
    
         
             
                oop.implement(this, EventEmitter);
         
     | 
| 
       2912 
     | 
    
         
            -
                
         
     | 
| 
       2913 
     | 
    
         
            -
                /**
         
     | 
| 
       2914 
     | 
    
         
            -
                 * Anchor.getPosition() -> Object
         
     | 
| 
       2915 
     | 
    
         
            -
                 *
         
     | 
| 
       2916 
     | 
    
         
            -
                 * Returns an object identifying the `row` and `column` position of the current anchor.
         
     | 
| 
       2917 
     | 
    
         
            -
                 *
         
     | 
| 
       2918 
     | 
    
         
            -
                 **/
         
     | 
| 
       2919 
2348 
     | 
    
         | 
| 
       2920 
2349 
     | 
    
         
             
                this.getPosition = function() {
         
     | 
| 
       2921 
2350 
     | 
    
         
             
                    return this.$clipPositionToDocument(this.row, this.column);
         
     | 
| 
       2922 
2351 
     | 
    
         
             
                };
         
     | 
| 
       2923 
     | 
    
         
            -
             
         
     | 
| 
       2924 
     | 
    
         
            -
                 /**
         
     | 
| 
       2925 
     | 
    
         
            -
                 * Anchor.getDocument() -> Document
         
     | 
| 
       2926 
     | 
    
         
            -
                 *
         
     | 
| 
       2927 
     | 
    
         
            -
                 * Returns the current document.
         
     | 
| 
       2928 
     | 
    
         
            -
                 *
         
     | 
| 
       2929 
     | 
    
         
            -
                 **/
         
     | 
| 
       2930 
2352 
     | 
    
         | 
| 
       2931 
2353 
     | 
    
         
             
                this.getDocument = function() {
         
     | 
| 
       2932 
2354 
     | 
    
         
             
                    return this.document;
         
     | 
| 
       2933 
2355 
     | 
    
         
             
                };
         
     | 
| 
       2934 
     | 
    
         
            -
                
         
     | 
| 
       2935 
     | 
    
         
            -
                 /**
         
     | 
| 
       2936 
     | 
    
         
            -
                 * Anchor@onChange(e)
         
     | 
| 
       2937 
     | 
    
         
            -
                 * - e (Event): Contains data about the event
         
     | 
| 
       2938 
     | 
    
         
            -
                 *
         
     | 
| 
       2939 
     | 
    
         
            -
                 * Fires whenever the anchor position changes. Events that can trigger this function include `'includeText'`, `'insertLines'`, `'removeText'`, and `'removeLines'`.
         
     | 
| 
       2940 
     | 
    
         
            -
                 *
         
     | 
| 
       2941 
     | 
    
         
            -
                 **/
         
     | 
| 
       2942 
2356 
     | 
    
         | 
| 
       2943 
2357 
     | 
    
         
             
                this.onChange = function(e) {
         
     | 
| 
       2944 
2358 
     | 
    
         
             
                    var delta = e.data;
         
     | 
| 
         @@ -3005,16 +2419,6 @@ var Anchor = exports.Anchor = function(doc, row, column) { 
     | 
|
| 
       3005 
2419 
     | 
    
         
             
                    this.setPosition(row, column, true);
         
     | 
| 
       3006 
2420 
     | 
    
         
             
                };
         
     | 
| 
       3007 
2421 
     | 
    
         | 
| 
       3008 
     | 
    
         
            -
                 /**
         
     | 
| 
       3009 
     | 
    
         
            -
                 * Anchor.setPosition(row, column, noClip)
         
     | 
| 
       3010 
     | 
    
         
            -
                 * - row (Number): The row index to move the anchor to
         
     | 
| 
       3011 
     | 
    
         
            -
                 * - column (Number): The column index to move the anchor to
         
     | 
| 
       3012 
     | 
    
         
            -
                 * - noClip (Boolean): Identifies if you want the position to be clipped
         
     | 
| 
       3013 
     | 
    
         
            -
                 *
         
     | 
| 
       3014 
     | 
    
         
            -
                 * Sets the anchor position to the specified row and column. If `noClip` is `true`, the position is not clipped.
         
     | 
| 
       3015 
     | 
    
         
            -
                 *
         
     | 
| 
       3016 
     | 
    
         
            -
                 **/
         
     | 
| 
       3017 
     | 
    
         
            -
             
     | 
| 
       3018 
2422 
     | 
    
         
             
                this.setPosition = function(row, column, noClip) {
         
     | 
| 
       3019 
2423 
     | 
    
         
             
                    var pos;
         
     | 
| 
       3020 
2424 
     | 
    
         
             
                    if (noClip) {
         
     | 
| 
         @@ -3042,26 +2446,10 @@ var Anchor = exports.Anchor = function(doc, row, column) { 
     | 
|
| 
       3042 
2446 
     | 
    
         
             
                        value: pos
         
     | 
| 
       3043 
2447 
     | 
    
         
             
                    });
         
     | 
| 
       3044 
2448 
     | 
    
         
             
                };
         
     | 
| 
       3045 
     | 
    
         
            -
                
         
     | 
| 
       3046 
     | 
    
         
            -
                /**
         
     | 
| 
       3047 
     | 
    
         
            -
                 * Anchor.detach()
         
     | 
| 
       3048 
     | 
    
         
            -
                 *
         
     | 
| 
       3049 
     | 
    
         
            -
                 * When called, the `'change'` event listener is removed.
         
     | 
| 
       3050 
     | 
    
         
            -
                 *
         
     | 
| 
       3051 
     | 
    
         
            -
                 **/
         
     | 
| 
       3052 
2449 
     | 
    
         | 
| 
       3053 
2450 
     | 
    
         
             
                this.detach = function() {
         
     | 
| 
       3054 
2451 
     | 
    
         
             
                    this.document.removeEventListener("change", this.$onChange);
         
     | 
| 
       3055 
2452 
     | 
    
         
             
                };
         
     | 
| 
       3056 
     | 
    
         
            -
                
         
     | 
| 
       3057 
     | 
    
         
            -
                /** internal, hide
         
     | 
| 
       3058 
     | 
    
         
            -
                 * Anchor.clipPositionToDocument(row, column)
         
     | 
| 
       3059 
     | 
    
         
            -
                 * - row (Number): The row index to clip the anchor to
         
     | 
| 
       3060 
     | 
    
         
            -
                 * - column (Number): The column index to clip the anchor to
         
     | 
| 
       3061 
     | 
    
         
            -
                 *
         
     | 
| 
       3062 
     | 
    
         
            -
                 * Clips the anchor position to the specified row and column.
         
     | 
| 
       3063 
     | 
    
         
            -
                 *
         
     | 
| 
       3064 
     | 
    
         
            -
                 **/
         
     | 
| 
       3065 
2453 
     | 
    
         | 
| 
       3066 
2454 
     | 
    
         
             
                this.$clipPositionToDocument = function(row, column) {
         
     | 
| 
       3067 
2455 
     | 
    
         
             
                    var pos = {};
         
     | 
| 
         @@ -3088,45 +2476,9 @@ var Anchor = exports.Anchor = function(doc, row, column) { 
     | 
|
| 
       3088 
2476 
     | 
    
         
             
            }).call(Anchor.prototype);
         
     | 
| 
       3089 
2477 
     | 
    
         | 
| 
       3090 
2478 
     | 
    
         
             
            });
         
     | 
| 
       3091 
     | 
    
         
            -
            /* ***** BEGIN LICENSE BLOCK *****
         
     | 
| 
       3092 
     | 
    
         
            -
             * Version: MPL 1.1/GPL 2.0/LGPL 2.1
         
     | 
| 
       3093 
     | 
    
         
            -
             *
         
     | 
| 
       3094 
     | 
    
         
            -
             * The contents of this file are subject to the Mozilla Public License Version
         
     | 
| 
       3095 
     | 
    
         
            -
             * 1.1 (the "License"); you may not use this file except in compliance with
         
     | 
| 
       3096 
     | 
    
         
            -
             * the License. You may obtain a copy of the License at
         
     | 
| 
       3097 
     | 
    
         
            -
             * http://www.mozilla.org/MPL/
         
     | 
| 
       3098 
     | 
    
         
            -
             *
         
     | 
| 
       3099 
     | 
    
         
            -
             * Software distributed under the License is distributed on an "AS IS" basis,
         
     | 
| 
       3100 
     | 
    
         
            -
             * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
         
     | 
| 
       3101 
     | 
    
         
            -
             * for the specific language governing rights and limitations under the
         
     | 
| 
       3102 
     | 
    
         
            -
             * License.
         
     | 
| 
       3103 
     | 
    
         
            -
             *
         
     | 
| 
       3104 
     | 
    
         
            -
             * The Original Code is Ajax.org Code Editor (ACE).
         
     | 
| 
       3105 
     | 
    
         
            -
             *
         
     | 
| 
       3106 
     | 
    
         
            -
             * The Initial Developer of the Original Code is
         
     | 
| 
       3107 
     | 
    
         
            -
             * Ajax.org B.V.
         
     | 
| 
       3108 
     | 
    
         
            -
             * Portions created by the Initial Developer are Copyright (C) 2010
         
     | 
| 
       3109 
     | 
    
         
            -
             * the Initial Developer. All Rights Reserved.
         
     | 
| 
       3110 
     | 
    
         
            -
             *
         
     | 
| 
       3111 
     | 
    
         
            -
             * Contributor(s):
         
     | 
| 
       3112 
     | 
    
         
            -
             *      Fabian Jakobs <fabian AT ajax DOT org>
         
     | 
| 
       3113 
     | 
    
         
            -
             *
         
     | 
| 
       3114 
     | 
    
         
            -
             * Alternatively, the contents of this file may be used under the terms of
         
     | 
| 
       3115 
     | 
    
         
            -
             * either the GNU General Public License Version 2 or later (the "GPL"), or
         
     | 
| 
       3116 
     | 
    
         
            -
             * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
         
     | 
| 
       3117 
     | 
    
         
            -
             * in which case the provisions of the GPL or the LGPL are applicable instead
         
     | 
| 
       3118 
     | 
    
         
            -
             * of those above. If you wish to allow use of your version of this file only
         
     | 
| 
       3119 
     | 
    
         
            -
             * under the terms of either the GPL or the LGPL, and not to allow others to
         
     | 
| 
       3120 
     | 
    
         
            -
             * use your version of this file under the terms of the MPL, indicate your
         
     | 
| 
       3121 
     | 
    
         
            -
             * decision by deleting the provisions above and replace them with the notice
         
     | 
| 
       3122 
     | 
    
         
            -
             * and other provisions required by the GPL or the LGPL. If you do not delete
         
     | 
| 
       3123 
     | 
    
         
            -
             * the provisions above, a recipient may use your version of this file under
         
     | 
| 
       3124 
     | 
    
         
            -
             * the terms of any one of the MPL, the GPL or the LGPL.
         
     | 
| 
       3125 
     | 
    
         
            -
             *
         
     | 
| 
       3126 
     | 
    
         
            -
             * ***** END LICENSE BLOCK ***** */
         
     | 
| 
       3127 
2479 
     | 
    
         | 
| 
       3128 
2480 
     | 
    
         
             
            define('ace/lib/lang', ['require', 'exports', 'module' ], function(require, exports, module) {
         
     | 
| 
       3129 
     | 
    
         
            -
             
     | 
| 
      
 2481 
     | 
    
         
            +
             
     | 
| 
       3130 
2482 
     | 
    
         | 
| 
       3131 
2483 
     | 
    
         
             
            exports.stringReverse = function(string) {
         
     | 
| 
       3132 
2484 
     | 
    
         
             
                return string.split("").reverse().join("");
         
     | 
| 
         @@ -3191,9 +2543,13 @@ exports.arrayToMap = function(arr) { 
     | 
|
| 
       3191 
2543 
     | 
    
         | 
| 
       3192 
2544 
     | 
    
         
             
            };
         
     | 
| 
       3193 
2545 
     | 
    
         | 
| 
       3194 
     | 
    
         
            -
             
     | 
| 
       3195 
     | 
    
         
            -
              
     | 
| 
       3196 
     | 
    
         
            -
              
     | 
| 
      
 2546 
     | 
    
         
            +
            exports.createMap = function(props) {
         
     | 
| 
      
 2547 
     | 
    
         
            +
                var map = Object.create(null);
         
     | 
| 
      
 2548 
     | 
    
         
            +
                for (var i in props) {
         
     | 
| 
      
 2549 
     | 
    
         
            +
                    map[i] = props[i];
         
     | 
| 
      
 2550 
     | 
    
         
            +
                }
         
     | 
| 
      
 2551 
     | 
    
         
            +
                return map;
         
     | 
| 
      
 2552 
     | 
    
         
            +
            };
         
     | 
| 
       3197 
2553 
     | 
    
         
             
            exports.arrayRemove = function(array, value) {
         
     | 
| 
       3198 
2554 
     | 
    
         
             
              for (var i = 0; i <= array.length; i++) {
         
     | 
| 
       3199 
2555 
     | 
    
         
             
                if (value === array[i]) {
         
     | 
| 
         @@ -3206,6 +2562,20 @@ exports.escapeRegExp = function(str) { 
     | 
|
| 
       3206 
2562 
     | 
    
         
             
                return str.replace(/([.*+?^${}()|[\]\/\\])/g, '\\$1');
         
     | 
| 
       3207 
2563 
     | 
    
         
             
            };
         
     | 
| 
       3208 
2564 
     | 
    
         | 
| 
      
 2565 
     | 
    
         
            +
            exports.getMatchOffsets = function(string, regExp) {
         
     | 
| 
      
 2566 
     | 
    
         
            +
                var matches = [];
         
     | 
| 
      
 2567 
     | 
    
         
            +
             
     | 
| 
      
 2568 
     | 
    
         
            +
                string.replace(regExp, function(str) {
         
     | 
| 
      
 2569 
     | 
    
         
            +
                    matches.push({
         
     | 
| 
      
 2570 
     | 
    
         
            +
                        offset: arguments[arguments.length-2],
         
     | 
| 
      
 2571 
     | 
    
         
            +
                        length: str.length
         
     | 
| 
      
 2572 
     | 
    
         
            +
                    });
         
     | 
| 
      
 2573 
     | 
    
         
            +
                });
         
     | 
| 
      
 2574 
     | 
    
         
            +
             
     | 
| 
      
 2575 
     | 
    
         
            +
                return matches;
         
     | 
| 
      
 2576 
     | 
    
         
            +
            };
         
     | 
| 
      
 2577 
     | 
    
         
            +
             
     | 
| 
      
 2578 
     | 
    
         
            +
             
     | 
| 
       3209 
2579 
     | 
    
         
             
            exports.deferredCall = function(fcn) {
         
     | 
| 
       3210 
2580 
     | 
    
         | 
| 
       3211 
2581 
     | 
    
         
             
                var timer = null;
         
     | 
| 
         @@ -3238,42 +2608,6 @@ exports.deferredCall = function(fcn) { 
     | 
|
| 
       3238 
2608 
     | 
    
         
             
            };
         
     | 
| 
       3239 
2609 
     | 
    
         | 
| 
       3240 
2610 
     | 
    
         
             
            });
         
     | 
| 
       3241 
     | 
    
         
            -
            /* ***** BEGIN LICENSE BLOCK *****
         
     | 
| 
       3242 
     | 
    
         
            -
             * Version: MPL 1.1/GPL 2.0/LGPL 2.1
         
     | 
| 
       3243 
     | 
    
         
            -
             *
         
     | 
| 
       3244 
     | 
    
         
            -
             * The contents of this file are subject to the Mozilla Public License Version
         
     | 
| 
       3245 
     | 
    
         
            -
             * 1.1 (the "License"); you may not use this file except in compliance with
         
     | 
| 
       3246 
     | 
    
         
            -
             * the License. You may obtain a copy of the License at
         
     | 
| 
       3247 
     | 
    
         
            -
             * http://www.mozilla.org/MPL/
         
     | 
| 
       3248 
     | 
    
         
            -
             *
         
     | 
| 
       3249 
     | 
    
         
            -
             * Software distributed under the License is distributed on an "AS IS" basis,
         
     | 
| 
       3250 
     | 
    
         
            -
             * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
         
     | 
| 
       3251 
     | 
    
         
            -
             * for the specific language governing rights and limitations under the
         
     | 
| 
       3252 
     | 
    
         
            -
             * License.
         
     | 
| 
       3253 
     | 
    
         
            -
             *
         
     | 
| 
       3254 
     | 
    
         
            -
             * The Original Code is Ajax.org Code Editor (ACE).
         
     | 
| 
       3255 
     | 
    
         
            -
             *
         
     | 
| 
       3256 
     | 
    
         
            -
             * The Initial Developer of the Original Code is
         
     | 
| 
       3257 
     | 
    
         
            -
             * Ajax.org B.V.
         
     | 
| 
       3258 
     | 
    
         
            -
             * Portions created by the Initial Developer are Copyright (C) 2010
         
     | 
| 
       3259 
     | 
    
         
            -
             * the Initial Developer. All Rights Reserved.
         
     | 
| 
       3260 
     | 
    
         
            -
             *
         
     | 
| 
       3261 
     | 
    
         
            -
             * Contributor(s):
         
     | 
| 
       3262 
     | 
    
         
            -
             *      Fabian Jakobs <fabian AT ajax DOT org>
         
     | 
| 
       3263 
     | 
    
         
            -
             *
         
     | 
| 
       3264 
     | 
    
         
            -
             * Alternatively, the contents of this file may be used under the terms of
         
     | 
| 
       3265 
     | 
    
         
            -
             * either the GNU General Public License Version 2 or later (the "GPL"), or
         
     | 
| 
       3266 
     | 
    
         
            -
             * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
         
     | 
| 
       3267 
     | 
    
         
            -
             * in which case the provisions of the GPL or the LGPL are applicable instead
         
     | 
| 
       3268 
     | 
    
         
            -
             * of those above. If you wish to allow use of your version of this file only
         
     | 
| 
       3269 
     | 
    
         
            -
             * under the terms of either the GPL or the LGPL, and not to allow others to
         
     | 
| 
       3270 
     | 
    
         
            -
             * use your version of this file under the terms of the MPL, indicate your
         
     | 
| 
       3271 
     | 
    
         
            -
             * decision by deleting the provisions above and replace them with the notice
         
     | 
| 
       3272 
     | 
    
         
            -
             * and other provisions required by the GPL or the LGPL. If you do not delete
         
     | 
| 
       3273 
     | 
    
         
            -
             * the provisions above, a recipient may use your version of this file under
         
     | 
| 
       3274 
     | 
    
         
            -
             * the terms of any one of the MPL, the GPL or the LGPL.
         
     | 
| 
       3275 
     | 
    
         
            -
             *
         
     | 
| 
       3276 
     | 
    
         
            -
             * ***** END LICENSE BLOCK ***** */
         
     | 
| 
       3277 
2611 
     | 
    
         | 
| 
       3278 
2612 
     | 
    
         
             
            define('ace/mode/coffee/coffee-script', ['require', 'exports', 'module' , 'ace/mode/coffee/lexer', 'ace/mode/coffee/parser', 'ace/mode/coffee/nodes'], function(require, exports, module) {
         
     | 
| 
       3279 
2613 
     | 
    
         | 
| 
         @@ -3301,30 +2635,6 @@ define('ace/mode/coffee/coffee-script', ['require', 'exports', 'module' , 'ace/m 
     | 
|
| 
       3301 
2635 
     | 
    
         
             
                    return parser.parse(lexer.tokenize(code));
         
     | 
| 
       3302 
2636 
     | 
    
         
             
                };
         
     | 
| 
       3303 
2637 
     | 
    
         
             
            });
         
     | 
| 
       3304 
     | 
    
         
            -
            /*
         
     | 
| 
       3305 
     | 
    
         
            -
             * Copyright (c) 2011 Jeremy Ashkenas
         
     | 
| 
       3306 
     | 
    
         
            -
             * 
         
     | 
| 
       3307 
     | 
    
         
            -
             * Permission is hereby granted, free of charge, to any person
         
     | 
| 
       3308 
     | 
    
         
            -
             * obtaining a copy of this software and associated documentation
         
     | 
| 
       3309 
     | 
    
         
            -
             * files (the "Software"), to deal in the Software without
         
     | 
| 
       3310 
     | 
    
         
            -
             * restriction, including without limitation the rights to use,
         
     | 
| 
       3311 
     | 
    
         
            -
             * copy, modify, merge, publish, distribute, sublicense, and/or sell
         
     | 
| 
       3312 
     | 
    
         
            -
             * copies of the Software, and to permit persons to whom the
         
     | 
| 
       3313 
     | 
    
         
            -
             * Software is furnished to do so, subject to the following
         
     | 
| 
       3314 
     | 
    
         
            -
             * conditions:
         
     | 
| 
       3315 
     | 
    
         
            -
             * 
         
     | 
| 
       3316 
     | 
    
         
            -
             * The above copyright notice and this permission notice shall be
         
     | 
| 
       3317 
     | 
    
         
            -
             * included in all copies or substantial portions of the Software.
         
     | 
| 
       3318 
     | 
    
         
            -
             * 
         
     | 
| 
       3319 
     | 
    
         
            -
             * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
         
     | 
| 
       3320 
     | 
    
         
            -
             * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
         
     | 
| 
       3321 
     | 
    
         
            -
             * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
         
     | 
| 
       3322 
     | 
    
         
            -
             * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
         
     | 
| 
       3323 
     | 
    
         
            -
             * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
         
     | 
| 
       3324 
     | 
    
         
            -
             * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
         
     | 
| 
       3325 
     | 
    
         
            -
             * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
         
     | 
| 
       3326 
     | 
    
         
            -
             * OTHER DEALINGS IN THE SOFTWARE.
         
     | 
| 
       3327 
     | 
    
         
            -
             */
         
     | 
| 
       3328 
2638 
     | 
    
         | 
| 
       3329 
2639 
     | 
    
         
             
            define('ace/mode/coffee/lexer', ['require', 'exports', 'module' , 'ace/mode/coffee/rewriter', 'ace/mode/coffee/helpers'], function(require, exports, module) {
         
     | 
| 
       3330 
2640 
     | 
    
         
             
            // Generated by CoffeeScript 1.2.1-pre
         
     | 
| 
         @@ -4040,30 +3350,6 @@ define('ace/mode/coffee/lexer', ['require', 'exports', 'module' , 'ace/mode/coff 
     | 
|
| 
       4040 
3350 
     | 
    
         | 
| 
       4041 
3351 
     | 
    
         | 
| 
       4042 
3352 
     | 
    
         
             
            });
         
     | 
| 
       4043 
     | 
    
         
            -
            /*
         
     | 
| 
       4044 
     | 
    
         
            -
             * Copyright (c) 2011 Jeremy Ashkenas
         
     | 
| 
       4045 
     | 
    
         
            -
             * 
         
     | 
| 
       4046 
     | 
    
         
            -
             * Permission is hereby granted, free of charge, to any person
         
     | 
| 
       4047 
     | 
    
         
            -
             * obtaining a copy of this software and associated documentation
         
     | 
| 
       4048 
     | 
    
         
            -
             * files (the "Software"), to deal in the Software without
         
     | 
| 
       4049 
     | 
    
         
            -
             * restriction, including without limitation the rights to use,
         
     | 
| 
       4050 
     | 
    
         
            -
             * copy, modify, merge, publish, distribute, sublicense, and/or sell
         
     | 
| 
       4051 
     | 
    
         
            -
             * copies of the Software, and to permit persons to whom the
         
     | 
| 
       4052 
     | 
    
         
            -
             * Software is furnished to do so, subject to the following
         
     | 
| 
       4053 
     | 
    
         
            -
             * conditions:
         
     | 
| 
       4054 
     | 
    
         
            -
             * 
         
     | 
| 
       4055 
     | 
    
         
            -
             * The above copyright notice and this permission notice shall be
         
     | 
| 
       4056 
     | 
    
         
            -
             * included in all copies or substantial portions of the Software.
         
     | 
| 
       4057 
     | 
    
         
            -
             * 
         
     | 
| 
       4058 
     | 
    
         
            -
             * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
         
     | 
| 
       4059 
     | 
    
         
            -
             * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
         
     | 
| 
       4060 
     | 
    
         
            -
             * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
         
     | 
| 
       4061 
     | 
    
         
            -
             * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
         
     | 
| 
       4062 
     | 
    
         
            -
             * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
         
     | 
| 
       4063 
     | 
    
         
            -
             * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
         
     | 
| 
       4064 
     | 
    
         
            -
             * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
         
     | 
| 
       4065 
     | 
    
         
            -
             * OTHER DEALINGS IN THE SOFTWARE.
         
     | 
| 
       4066 
     | 
    
         
            -
             */
         
     | 
| 
       4067 
3353 
     | 
    
         | 
| 
       4068 
3354 
     | 
    
         
             
            define('ace/mode/coffee/rewriter', ['require', 'exports', 'module' ], function(require, exports, module) {
         
     | 
| 
       4069 
3355 
     | 
    
         
             
            // Generated by CoffeeScript 1.2.1-pre
         
     | 
| 
         @@ -4382,30 +3668,6 @@ define('ace/mode/coffee/rewriter', ['require', 'exports', 'module' ], function(r 
     | 
|
| 
       4382 
3668 
     | 
    
         | 
| 
       4383 
3669 
     | 
    
         | 
| 
       4384 
3670 
     | 
    
         
             
            });
         
     | 
| 
       4385 
     | 
    
         
            -
            /*
         
     | 
| 
       4386 
     | 
    
         
            -
             * Copyright (c) 2011 Jeremy Ashkenas
         
     | 
| 
       4387 
     | 
    
         
            -
             * 
         
     | 
| 
       4388 
     | 
    
         
            -
             * Permission is hereby granted, free of charge, to any person
         
     | 
| 
       4389 
     | 
    
         
            -
             * obtaining a copy of this software and associated documentation
         
     | 
| 
       4390 
     | 
    
         
            -
             * files (the "Software"), to deal in the Software without
         
     | 
| 
       4391 
     | 
    
         
            -
             * restriction, including without limitation the rights to use,
         
     | 
| 
       4392 
     | 
    
         
            -
             * copy, modify, merge, publish, distribute, sublicense, and/or sell
         
     | 
| 
       4393 
     | 
    
         
            -
             * copies of the Software, and to permit persons to whom the
         
     | 
| 
       4394 
     | 
    
         
            -
             * Software is furnished to do so, subject to the following
         
     | 
| 
       4395 
     | 
    
         
            -
             * conditions:
         
     | 
| 
       4396 
     | 
    
         
            -
             * 
         
     | 
| 
       4397 
     | 
    
         
            -
             * The above copyright notice and this permission notice shall be
         
     | 
| 
       4398 
     | 
    
         
            -
             * included in all copies or substantial portions of the Software.
         
     | 
| 
       4399 
     | 
    
         
            -
             * 
         
     | 
| 
       4400 
     | 
    
         
            -
             * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
         
     | 
| 
       4401 
     | 
    
         
            -
             * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
         
     | 
| 
       4402 
     | 
    
         
            -
             * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
         
     | 
| 
       4403 
     | 
    
         
            -
             * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
         
     | 
| 
       4404 
     | 
    
         
            -
             * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
         
     | 
| 
       4405 
     | 
    
         
            -
             * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
         
     | 
| 
       4406 
     | 
    
         
            -
             * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
         
     | 
| 
       4407 
     | 
    
         
            -
             * OTHER DEALINGS IN THE SOFTWARE.
         
     | 
| 
       4408 
     | 
    
         
            -
             */
         
     | 
| 
       4409 
3671 
     | 
    
         | 
| 
       4410 
3672 
     | 
    
         
             
            define('ace/mode/coffee/helpers', ['require', 'exports', 'module' ], function(require, exports, module) {
         
     | 
| 
       4411 
3673 
     | 
    
         
             
            // Generated by CoffeeScript 1.2.1-pre
         
     | 
| 
         @@ -4482,30 +3744,6 @@ define('ace/mode/coffee/helpers', ['require', 'exports', 'module' ], function(re 
     | 
|
| 
       4482 
3744 
     | 
    
         | 
| 
       4483 
3745 
     | 
    
         | 
| 
       4484 
3746 
     | 
    
         
             
            });
         
     | 
| 
       4485 
     | 
    
         
            -
            /*
         
     | 
| 
       4486 
     | 
    
         
            -
             * Copyright (c) 2011 Jeremy Ashkenas
         
     | 
| 
       4487 
     | 
    
         
            -
             * 
         
     | 
| 
       4488 
     | 
    
         
            -
             * Permission is hereby granted, free of charge, to any person
         
     | 
| 
       4489 
     | 
    
         
            -
             * obtaining a copy of this software and associated documentation
         
     | 
| 
       4490 
     | 
    
         
            -
             * files (the "Software"), to deal in the Software without
         
     | 
| 
       4491 
     | 
    
         
            -
             * restriction, including without limitation the rights to use,
         
     | 
| 
       4492 
     | 
    
         
            -
             * copy, modify, merge, publish, distribute, sublicense, and/or sell
         
     | 
| 
       4493 
     | 
    
         
            -
             * copies of the Software, and to permit persons to whom the
         
     | 
| 
       4494 
     | 
    
         
            -
             * Software is furnished to do so, subject to the following
         
     | 
| 
       4495 
     | 
    
         
            -
             * conditions:
         
     | 
| 
       4496 
     | 
    
         
            -
             * 
         
     | 
| 
       4497 
     | 
    
         
            -
             * The above copyright notice and this permission notice shall be
         
     | 
| 
       4498 
     | 
    
         
            -
             * included in all copies or substantial portions of the Software.
         
     | 
| 
       4499 
     | 
    
         
            -
             * 
         
     | 
| 
       4500 
     | 
    
         
            -
             * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
         
     | 
| 
       4501 
     | 
    
         
            -
             * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
         
     | 
| 
       4502 
     | 
    
         
            -
             * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
         
     | 
| 
       4503 
     | 
    
         
            -
             * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
         
     | 
| 
       4504 
     | 
    
         
            -
             * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
         
     | 
| 
       4505 
     | 
    
         
            -
             * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
         
     | 
| 
       4506 
     | 
    
         
            -
             * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
         
     | 
| 
       4507 
     | 
    
         
            -
             * OTHER DEALINGS IN THE SOFTWARE.
         
     | 
| 
       4508 
     | 
    
         
            -
             */
         
     | 
| 
       4509 
3747 
     | 
    
         | 
| 
       4510 
3748 
     | 
    
         
             
            define('ace/mode/coffee/parser', ['require', 'exports', 'module' ], function(require, exports, module) {
         
     | 
| 
       4511 
3749 
     | 
    
         
             
            /* Jison generated parser */
         
     | 
| 
         @@ -5085,30 +4323,6 @@ module.exports = parser; 
     | 
|
| 
       5085 
4323 
     | 
    
         | 
| 
       5086 
4324 
     | 
    
         | 
| 
       5087 
4325 
     | 
    
         
             
            });
         
     | 
| 
       5088 
     | 
    
         
            -
            /*
         
     | 
| 
       5089 
     | 
    
         
            -
             * Copyright (c) 2011 Jeremy Ashkenas
         
     | 
| 
       5090 
     | 
    
         
            -
             * 
         
     | 
| 
       5091 
     | 
    
         
            -
             * Permission is hereby granted, free of charge, to any person
         
     | 
| 
       5092 
     | 
    
         
            -
             * obtaining a copy of this software and associated documentation
         
     | 
| 
       5093 
     | 
    
         
            -
             * files (the "Software"), to deal in the Software without
         
     | 
| 
       5094 
     | 
    
         
            -
             * restriction, including without limitation the rights to use,
         
     | 
| 
       5095 
     | 
    
         
            -
             * copy, modify, merge, publish, distribute, sublicense, and/or sell
         
     | 
| 
       5096 
     | 
    
         
            -
             * copies of the Software, and to permit persons to whom the
         
     | 
| 
       5097 
     | 
    
         
            -
             * Software is furnished to do so, subject to the following
         
     | 
| 
       5098 
     | 
    
         
            -
             * conditions:
         
     | 
| 
       5099 
     | 
    
         
            -
             * 
         
     | 
| 
       5100 
     | 
    
         
            -
             * The above copyright notice and this permission notice shall be
         
     | 
| 
       5101 
     | 
    
         
            -
             * included in all copies or substantial portions of the Software.
         
     | 
| 
       5102 
     | 
    
         
            -
             * 
         
     | 
| 
       5103 
     | 
    
         
            -
             * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
         
     | 
| 
       5104 
     | 
    
         
            -
             * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
         
     | 
| 
       5105 
     | 
    
         
            -
             * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
         
     | 
| 
       5106 
     | 
    
         
            -
             * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
         
     | 
| 
       5107 
     | 
    
         
            -
             * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
         
     | 
| 
       5108 
     | 
    
         
            -
             * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
         
     | 
| 
       5109 
     | 
    
         
            -
             * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
         
     | 
| 
       5110 
     | 
    
         
            -
             * OTHER DEALINGS IN THE SOFTWARE.
         
     | 
| 
       5111 
     | 
    
         
            -
             */
         
     | 
| 
       5112 
4326 
     | 
    
         | 
| 
       5113 
4327 
     | 
    
         
             
            define('ace/mode/coffee/nodes', ['require', 'exports', 'module' , 'ace/mode/coffee/scope', 'ace/mode/coffee/lexer', 'ace/mode/coffee/helpers'], function(require, exports, module) {
         
     | 
| 
       5114 
4328 
     | 
    
         
             
            // Generated by CoffeeScript 1.2.1-pre
         
     | 
| 
         @@ -7841,30 +7055,6 @@ define('ace/mode/coffee/nodes', ['require', 'exports', 'module' , 'ace/mode/coff 
     | 
|
| 
       7841 
7055 
     | 
    
         | 
| 
       7842 
7056 
     | 
    
         | 
| 
       7843 
7057 
     | 
    
         
             
            });
         
     | 
| 
       7844 
     | 
    
         
            -
            /*
         
     | 
| 
       7845 
     | 
    
         
            -
             * Copyright (c) 2011 Jeremy Ashkenas
         
     | 
| 
       7846 
     | 
    
         
            -
             * 
         
     | 
| 
       7847 
     | 
    
         
            -
             * Permission is hereby granted, free of charge, to any person
         
     | 
| 
       7848 
     | 
    
         
            -
             * obtaining a copy of this software and associated documentation
         
     | 
| 
       7849 
     | 
    
         
            -
             * files (the "Software"), to deal in the Software without
         
     | 
| 
       7850 
     | 
    
         
            -
             * restriction, including without limitation the rights to use,
         
     | 
| 
       7851 
     | 
    
         
            -
             * copy, modify, merge, publish, distribute, sublicense, and/or sell
         
     | 
| 
       7852 
     | 
    
         
            -
             * copies of the Software, and to permit persons to whom the
         
     | 
| 
       7853 
     | 
    
         
            -
             * Software is furnished to do so, subject to the following
         
     | 
| 
       7854 
     | 
    
         
            -
             * conditions:
         
     | 
| 
       7855 
     | 
    
         
            -
             * 
         
     | 
| 
       7856 
     | 
    
         
            -
             * The above copyright notice and this permission notice shall be
         
     | 
| 
       7857 
     | 
    
         
            -
             * included in all copies or substantial portions of the Software.
         
     | 
| 
       7858 
     | 
    
         
            -
             * 
         
     | 
| 
       7859 
     | 
    
         
            -
             * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
         
     | 
| 
       7860 
     | 
    
         
            -
             * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
         
     | 
| 
       7861 
     | 
    
         
            -
             * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
         
     | 
| 
       7862 
     | 
    
         
            -
             * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
         
     | 
| 
       7863 
     | 
    
         
            -
             * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
         
     | 
| 
       7864 
     | 
    
         
            -
             * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
         
     | 
| 
       7865 
     | 
    
         
            -
             * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
         
     | 
| 
       7866 
     | 
    
         
            -
             * OTHER DEALINGS IN THE SOFTWARE.
         
     | 
| 
       7867 
     | 
    
         
            -
             */
         
     | 
| 
       7868 
7058 
     | 
    
         | 
| 
       7869 
7059 
     | 
    
         
             
            define('ace/mode/coffee/scope', ['require', 'exports', 'module' , 'ace/mode/coffee/helpers'], function(require, exports, module) {
         
     | 
| 
       7870 
7060 
     | 
    
         
             
            // Generated by CoffeeScript 1.2.1-pre
         
     |