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/css_worker', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/worker/mirror', 'ace/mode/css/csslint'], function(require, exports, module) {
         
     | 
| 
       1547 
     | 
    
         
            -
             
     | 
| 
      
 1413 
     | 
    
         
            +
             
     | 
| 
       1548 
1414 
     | 
    
         | 
| 
       1549 
1415 
     | 
    
         
             
            var oop = require("../lib/oop");
         
     | 
| 
       1550 
1416 
     | 
    
         
             
            var Mirror = require("../worker/mirror").Mirror;
         
     | 
| 
         @@ -1573,7 +1439,7 @@ oop.inherits(Worker, Mirror); 
     | 
|
| 
       1573 
1439 
     | 
    
         | 
| 
       1574 
1440 
     | 
    
         
             
            });
         
     | 
| 
       1575 
1441 
     | 
    
         
             
            define('ace/worker/mirror', ['require', 'exports', 'module' , 'ace/document', 'ace/lib/lang'], function(require, exports, module) {
         
     | 
| 
       1576 
     | 
    
         
            -
             
     | 
| 
      
 1442 
     | 
    
         
            +
             
     | 
| 
       1577 
1443 
     | 
    
         | 
| 
       1578 
1444 
     | 
    
         
             
            var Document = require("../document").Document;
         
     | 
| 
       1579 
1445 
     | 
    
         
             
            var lang = require("../lib/lang");
         
     | 
| 
         @@ -1615,59 +1481,15 @@ var Mirror = exports.Mirror = function(sender) { 
     | 
|
| 
       1615 
1481 
     | 
    
         
             
            }).call(Mirror.prototype);
         
     | 
| 
       1616 
1482 
     | 
    
         | 
| 
       1617 
1483 
     | 
    
         
             
            });
         
     | 
| 
       1618 
     | 
    
         
            -
            /* ***** BEGIN LICENSE BLOCK *****
         
     | 
| 
       1619 
     | 
    
         
            -
             * Version: MPL 1.1/GPL 2.0/LGPL 2.1
         
     | 
| 
       1620 
     | 
    
         
            -
             *
         
     | 
| 
       1621 
     | 
    
         
            -
             * The contents of this file are subject to the Mozilla Public License Version
         
     | 
| 
       1622 
     | 
    
         
            -
             * 1.1 (the "License"); you may not use this file except in compliance with
         
     | 
| 
       1623 
     | 
    
         
            -
             * the License. You may obtain a copy of the License at
         
     | 
| 
       1624 
     | 
    
         
            -
             * http://www.mozilla.org/MPL/
         
     | 
| 
       1625 
     | 
    
         
            -
             *
         
     | 
| 
       1626 
     | 
    
         
            -
             * Software distributed under the License is distributed on an "AS IS" basis,
         
     | 
| 
       1627 
     | 
    
         
            -
             * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
         
     | 
| 
       1628 
     | 
    
         
            -
             * for the specific language governing rights and limitations under the
         
     | 
| 
       1629 
     | 
    
         
            -
             * License.
         
     | 
| 
       1630 
     | 
    
         
            -
             *
         
     | 
| 
       1631 
     | 
    
         
            -
             * The Original Code is Ajax.org Code Editor (ACE).
         
     | 
| 
       1632 
     | 
    
         
            -
             *
         
     | 
| 
       1633 
     | 
    
         
            -
             * The Initial Developer of the Original Code is
         
     | 
| 
       1634 
     | 
    
         
            -
             * Ajax.org B.V.
         
     | 
| 
       1635 
     | 
    
         
            -
             * Portions created by the Initial Developer are Copyright (C) 2010
         
     | 
| 
       1636 
     | 
    
         
            -
             * the Initial Developer. All Rights Reserved.
         
     | 
| 
       1637 
     | 
    
         
            -
             *
         
     | 
| 
       1638 
     | 
    
         
            -
             * Contributor(s):
         
     | 
| 
       1639 
     | 
    
         
            -
             *      Fabian Jakobs <fabian AT ajax DOT org>
         
     | 
| 
       1640 
     | 
    
         
            -
             *
         
     | 
| 
       1641 
     | 
    
         
            -
             * Alternatively, the contents of this file may be used under the terms of
         
     | 
| 
       1642 
     | 
    
         
            -
             * either the GNU General Public License Version 2 or later (the "GPL"), or
         
     | 
| 
       1643 
     | 
    
         
            -
             * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
         
     | 
| 
       1644 
     | 
    
         
            -
             * in which case the provisions of the GPL or the LGPL are applicable instead
         
     | 
| 
       1645 
     | 
    
         
            -
             * of those above. If you wish to allow use of your version of this file only
         
     | 
| 
       1646 
     | 
    
         
            -
             * under the terms of either the GPL or the LGPL, and not to allow others to
         
     | 
| 
       1647 
     | 
    
         
            -
             * use your version of this file under the terms of the MPL, indicate your
         
     | 
| 
       1648 
     | 
    
         
            -
             * decision by deleting the provisions above and replace them with the notice
         
     | 
| 
       1649 
     | 
    
         
            -
             * and other provisions required by the GPL or the LGPL. If you do not delete
         
     | 
| 
       1650 
     | 
    
         
            -
             * the provisions above, a recipient may use your version of this file under
         
     | 
| 
       1651 
     | 
    
         
            -
             * the terms of any one of the MPL, the GPL or the LGPL.
         
     | 
| 
       1652 
     | 
    
         
            -
             *
         
     | 
| 
       1653 
     | 
    
         
            -
             * ***** END LICENSE BLOCK ***** */
         
     | 
| 
       1654 
1484 
     | 
    
         | 
| 
       1655 
1485 
     | 
    
         
             
            define('ace/document', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter', 'ace/range', 'ace/anchor'], function(require, exports, module) {
         
     | 
| 
       1656 
     | 
    
         
            -
             
     | 
| 
      
 1486 
     | 
    
         
            +
             
     | 
| 
       1657 
1487 
     | 
    
         | 
| 
       1658 
1488 
     | 
    
         
             
            var oop = require("./lib/oop");
         
     | 
| 
       1659 
1489 
     | 
    
         
             
            var EventEmitter = require("./lib/event_emitter").EventEmitter;
         
     | 
| 
       1660 
1490 
     | 
    
         
             
            var Range = require("./range").Range;
         
     | 
| 
       1661 
1491 
     | 
    
         
             
            var Anchor = require("./anchor").Anchor;
         
     | 
| 
       1662 
1492 
     | 
    
         | 
| 
       1663 
     | 
    
         
            -
            /**
         
     | 
| 
       1664 
     | 
    
         
            -
             * class Document
         
     | 
| 
       1665 
     | 
    
         
            -
             *
         
     | 
| 
       1666 
     | 
    
         
            -
             * 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.
         
     | 
| 
       1667 
     | 
    
         
            -
             *
         
     | 
| 
       1668 
     | 
    
         
            -
             *
         
     | 
| 
       1669 
     | 
    
         
            -
             **/
         
     | 
| 
       1670 
     | 
    
         
            -
             
     | 
| 
       1671 
1493 
     | 
    
         
             
             /**
         
     | 
| 
       1672 
1494 
     | 
    
         
             
             * new Document([text])
         
     | 
| 
       1673 
1495 
     | 
    
         
             
             * - text (String | Array): The starting text
         
     | 
| 
         @@ -1675,16 +1497,16 @@ var Anchor = require("./anchor").Anchor; 
     | 
|
| 
       1675 
1497 
     | 
    
         
             
             * Creates a new `Document`. If `text` is included, the `Document` contains those strings; otherwise, it's empty.
         
     | 
| 
       1676 
1498 
     | 
    
         
             
             *
         
     | 
| 
       1677 
1499 
     | 
    
         
             
             **/
         
     | 
| 
      
 1500 
     | 
    
         
            +
             
     | 
| 
       1678 
1501 
     | 
    
         
             
            var Document = function(text) {
         
     | 
| 
       1679 
1502 
     | 
    
         
             
                this.$lines = [];
         
     | 
| 
       1680 
1503 
     | 
    
         | 
| 
       1681 
     | 
    
         
            -
                if (Array.isArray(text)) {
         
     | 
| 
       1682 
     | 
    
         
            -
                    this.insertLines(0, text);
         
     | 
| 
       1683 
     | 
    
         
            -
                }
         
     | 
| 
       1684 
1504 
     | 
    
         
             
                // There has to be one line at least in the document. If you pass an empty
         
     | 
| 
       1685 
1505 
     | 
    
         
             
                // string to the insert function, nothing will happen. Workaround.
         
     | 
| 
       1686 
     | 
    
         
            -
                 
     | 
| 
      
 1506 
     | 
    
         
            +
                if (text.length == 0) {
         
     | 
| 
       1687 
1507 
     | 
    
         
             
                    this.$lines = [""];
         
     | 
| 
      
 1508 
     | 
    
         
            +
                } else if (Array.isArray(text)) {
         
     | 
| 
      
 1509 
     | 
    
         
            +
                    this.insertLines(0, text);
         
     | 
| 
       1688 
1510 
     | 
    
         
             
                } else {
         
     | 
| 
       1689 
1511 
     | 
    
         
             
                    this.insert({row: 0, column:0}, text);
         
     | 
| 
       1690 
1512 
     | 
    
         
             
                }
         
     | 
| 
         @@ -1693,49 +1515,18 @@ var Document = function(text) { 
     | 
|
| 
       1693 
1515 
     | 
    
         
             
            (function() {
         
     | 
| 
       1694 
1516 
     | 
    
         | 
| 
       1695 
1517 
     | 
    
         
             
                oop.implement(this, EventEmitter);
         
     | 
| 
       1696 
     | 
    
         
            -
             
     | 
| 
       1697 
     | 
    
         
            -
                /**
         
     | 
| 
       1698 
     | 
    
         
            -
                * Document.setValue(text) -> Void
         
     | 
| 
       1699 
     | 
    
         
            -
                * - text (String): The text to use
         
     | 
| 
       1700 
     | 
    
         
            -
                *
         
     | 
| 
       1701 
     | 
    
         
            -
                * Replaces all the lines in the current `Document` with the value of `text`.
         
     | 
| 
       1702 
     | 
    
         
            -
                **/
         
     | 
| 
       1703 
1518 
     | 
    
         
             
                this.setValue = function(text) {
         
     | 
| 
       1704 
1519 
     | 
    
         
             
                    var len = this.getLength();
         
     | 
| 
       1705 
1520 
     | 
    
         
             
                    this.remove(new Range(0, 0, len, this.getLine(len-1).length));
         
     | 
| 
       1706 
1521 
     | 
    
         
             
                    this.insert({row: 0, column:0}, text);
         
     | 
| 
       1707 
1522 
     | 
    
         
             
                };
         
     | 
| 
       1708 
     | 
    
         
            -
             
     | 
| 
       1709 
     | 
    
         
            -
                /**
         
     | 
| 
       1710 
     | 
    
         
            -
                * Document.getValue() -> String
         
     | 
| 
       1711 
     | 
    
         
            -
                * 
         
     | 
| 
       1712 
     | 
    
         
            -
                * Returns all the lines in the document as a single string, split by the new line character.
         
     | 
| 
       1713 
     | 
    
         
            -
                **/
         
     | 
| 
       1714 
1523 
     | 
    
         
             
                this.getValue = function() {
         
     | 
| 
       1715 
1524 
     | 
    
         
             
                    return this.getAllLines().join(this.getNewLineCharacter());
         
     | 
| 
       1716 
1525 
     | 
    
         
             
                };
         
     | 
| 
       1717 
     | 
    
         
            -
             
     | 
| 
       1718 
     | 
    
         
            -
                /** 
         
     | 
| 
       1719 
     | 
    
         
            -
                * Document.createAnchor(row, column) -> Anchor
         
     | 
| 
       1720 
     | 
    
         
            -
                * - row (Number): The row number to use
         
     | 
| 
       1721 
     | 
    
         
            -
                * - column (Number): The column number to use
         
     | 
| 
       1722 
     | 
    
         
            -
                *
         
     | 
| 
       1723 
     | 
    
         
            -
                * Creates a new `Anchor` to define a floating point in the document.
         
     | 
| 
       1724 
     | 
    
         
            -
                **/
         
     | 
| 
       1725 
1526 
     | 
    
         
             
                this.createAnchor = function(row, column) {
         
     | 
| 
       1726 
1527 
     | 
    
         
             
                    return new Anchor(this, row, column);
         
     | 
| 
       1727 
1528 
     | 
    
         
             
                };
         
     | 
| 
       1728 
1529 
     | 
    
         | 
| 
       1729 
     | 
    
         
            -
                /** internal, hide
         
     | 
| 
       1730 
     | 
    
         
            -
                * Document.$split(text) -> [String]
         
     | 
| 
       1731 
     | 
    
         
            -
                * - text (String): The text to work with
         
     | 
| 
       1732 
     | 
    
         
            -
                * + ([String]): A String array, with each index containing a piece of the original `text` string.
         
     | 
| 
       1733 
     | 
    
         
            -
                * 
         
     | 
| 
       1734 
     | 
    
         
            -
                * Splits a string of text on any newline (`\n`) or carriage-return ('\r') characters.
         
     | 
| 
       1735 
     | 
    
         
            -
                *
         
     | 
| 
       1736 
     | 
    
         
            -
                *
         
     | 
| 
       1737 
     | 
    
         
            -
                **/
         
     | 
| 
       1738 
     | 
    
         
            -
             
     | 
| 
       1739 
1530 
     | 
    
         
             
                // check for IE split bug
         
     | 
| 
       1740 
1531 
     | 
    
         
             
                if ("aaa".split(/a/).length == 0)
         
     | 
| 
       1741 
1532 
     | 
    
         
             
                    this.$split = function(text) {
         
     | 
| 
         @@ -1745,13 +1536,6 @@ var Document = function(text) { 
     | 
|
| 
       1745 
1536 
     | 
    
         
             
                    this.$split = function(text) {
         
     | 
| 
       1746 
1537 
     | 
    
         
             
                        return text.split(/\r\n|\r|\n/);
         
     | 
| 
       1747 
1538 
     | 
    
         
             
                    };
         
     | 
| 
       1748 
     | 
    
         
            -
             
     | 
| 
       1749 
     | 
    
         
            -
             
     | 
| 
       1750 
     | 
    
         
            -
                /** internal, hide
         
     | 
| 
       1751 
     | 
    
         
            -
                * Document.$detectNewLine(text) -> Void
         
     | 
| 
       1752 
     | 
    
         
            -
                * 
         
     | 
| 
       1753 
     | 
    
         
            -
                * 
         
     | 
| 
       1754 
     | 
    
         
            -
                **/
         
     | 
| 
       1755 
1539 
     | 
    
         
             
                this.$detectNewLine = function(text) {
         
     | 
| 
       1756 
1540 
     | 
    
         
             
                    var match = text.match(/^.*?(\r\n|\r|\n)/m);
         
     | 
| 
       1757 
1541 
     | 
    
         
             
                    if (match) {
         
     | 
| 
         @@ -1760,18 +1544,6 @@ var Document = function(text) { 
     | 
|
| 
       1760 
1544 
     | 
    
         
             
                        this.$autoNewLine = "\n";
         
     | 
| 
       1761 
1545 
     | 
    
         
             
                    }
         
     | 
| 
       1762 
1546 
     | 
    
         
             
                };
         
     | 
| 
       1763 
     | 
    
         
            -
             
     | 
| 
       1764 
     | 
    
         
            -
                /**
         
     | 
| 
       1765 
     | 
    
         
            -
                * Document.getNewLineCharacter() -> String
         
     | 
| 
       1766 
     | 
    
         
            -
                * + (String): If `newLineMode == windows`, `\r\n` is returned.<br/>
         
     | 
| 
       1767 
     | 
    
         
            -
                *  If `newLineMode == unix`, `\n` is returned.<br/>
         
     | 
| 
       1768 
     | 
    
         
            -
                *  If `newLineMode == auto`, the value of `autoNewLine` is returned.
         
     | 
| 
       1769 
     | 
    
         
            -
                * 
         
     | 
| 
       1770 
     | 
    
         
            -
                * Returns the newline character that's being used, depending on the value of `newLineMode`. 
         
     | 
| 
       1771 
     | 
    
         
            -
                *
         
     | 
| 
       1772 
     | 
    
         
            -
                * 
         
     | 
| 
       1773 
     | 
    
         
            -
                * 
         
     | 
| 
       1774 
     | 
    
         
            -
                **/
         
     | 
| 
       1775 
1547 
     | 
    
         
             
                this.getNewLineCharacter = function() {
         
     | 
| 
       1776 
1548 
     | 
    
         
             
                  switch (this.$newLineMode) {
         
     | 
| 
       1777 
1549 
     | 
    
         
             
                      case "windows":
         
     | 
| 
         @@ -1787,87 +1559,30 @@ var Document = function(text) { 
     | 
|
| 
       1787 
1559 
     | 
    
         | 
| 
       1788 
1560 
     | 
    
         
             
                this.$autoNewLine = "\n";
         
     | 
| 
       1789 
1561 
     | 
    
         
             
                this.$newLineMode = "auto";
         
     | 
| 
       1790 
     | 
    
         
            -
                /**
         
     | 
| 
       1791 
     | 
    
         
            -
                 * Document.setNewLineMode(newLineMode) -> Void
         
     | 
| 
       1792 
     | 
    
         
            -
                 * - newLineMode(String): [The newline mode to use; can be either `windows`, `unix`, or `auto`]{: #Document.setNewLineMode.param}
         
     | 
| 
       1793 
     | 
    
         
            -
                 * 
         
     | 
| 
       1794 
     | 
    
         
            -
                 * [Sets the new line mode.]{: #Document.setNewLineMode.desc}
         
     | 
| 
       1795 
     | 
    
         
            -
                 **/
         
     | 
| 
       1796 
1562 
     | 
    
         
             
                this.setNewLineMode = function(newLineMode) {
         
     | 
| 
       1797 
1563 
     | 
    
         
             
                    if (this.$newLineMode === newLineMode)
         
     | 
| 
       1798 
1564 
     | 
    
         
             
                        return;
         
     | 
| 
       1799 
1565 
     | 
    
         | 
| 
       1800 
1566 
     | 
    
         
             
                    this.$newLineMode = newLineMode;
         
     | 
| 
       1801 
1567 
     | 
    
         
             
                };
         
     | 
| 
       1802 
     | 
    
         
            -
             
     | 
| 
       1803 
     | 
    
         
            -
                /**
         
     | 
| 
       1804 
     | 
    
         
            -
                * Document.getNewLineMode() -> String
         
     | 
| 
       1805 
     | 
    
         
            -
                * 
         
     | 
| 
       1806 
     | 
    
         
            -
                * [Returns the type of newlines being used; either `windows`, `unix`, or `auto`]{: #Document.getNewLineMode}
         
     | 
| 
       1807 
     | 
    
         
            -
                *
         
     | 
| 
       1808 
     | 
    
         
            -
                **/
         
     | 
| 
       1809 
1568 
     | 
    
         
             
                this.getNewLineMode = function() {
         
     | 
| 
       1810 
1569 
     | 
    
         
             
                    return this.$newLineMode;
         
     | 
| 
       1811 
1570 
     | 
    
         
             
                };
         
     | 
| 
       1812 
     | 
    
         
            -
             
     | 
| 
       1813 
     | 
    
         
            -
                /**
         
     | 
| 
       1814 
     | 
    
         
            -
                * Document.isNewLine(text) -> Boolean
         
     | 
| 
       1815 
     | 
    
         
            -
                * - text (String): The text to check
         
     | 
| 
       1816 
     | 
    
         
            -
                *
         
     | 
| 
       1817 
     | 
    
         
            -
                * Returns `true` if `text` is a newline character (either `\r\n`, `\r`, or `\n`).
         
     | 
| 
       1818 
     | 
    
         
            -
                *
         
     | 
| 
       1819 
     | 
    
         
            -
                **/
         
     | 
| 
       1820 
1571 
     | 
    
         
             
                this.isNewLine = function(text) {
         
     | 
| 
       1821 
1572 
     | 
    
         
             
                    return (text == "\r\n" || text == "\r" || text == "\n");
         
     | 
| 
       1822 
1573 
     | 
    
         
             
                };
         
     | 
| 
       1823 
     | 
    
         
            -
             
     | 
| 
       1824 
     | 
    
         
            -
                /**
         
     | 
| 
       1825 
     | 
    
         
            -
                * Document.getLine(row) -> String
         
     | 
| 
       1826 
     | 
    
         
            -
                * - row (Number): The row index to retrieve
         
     | 
| 
       1827 
     | 
    
         
            -
                * 
         
     | 
| 
       1828 
     | 
    
         
            -
                * Returns a verbatim copy of the given line as it is in the document
         
     | 
| 
       1829 
     | 
    
         
            -
                *
         
     | 
| 
       1830 
     | 
    
         
            -
                **/
         
     | 
| 
       1831 
1574 
     | 
    
         
             
                this.getLine = function(row) {
         
     | 
| 
       1832 
1575 
     | 
    
         
             
                    return this.$lines[row] || "";
         
     | 
| 
       1833 
1576 
     | 
    
         
             
                };
         
     | 
| 
       1834 
     | 
    
         
            -
             
     | 
| 
       1835 
     | 
    
         
            -
                /**
         
     | 
| 
       1836 
     | 
    
         
            -
                * Document.getLines(firstRow, lastRow) -> [String]
         
     | 
| 
       1837 
     | 
    
         
            -
                * - firstRow (Number): The first row index to retrieve
         
     | 
| 
       1838 
     | 
    
         
            -
                * - lastRow (Number): The final row index to retrieve
         
     | 
| 
       1839 
     | 
    
         
            -
                * 
         
     | 
| 
       1840 
     | 
    
         
            -
                * Returns an array of strings of the rows between `firstRow` and `lastRow`. This function is inclusive of `lastRow`.
         
     | 
| 
       1841 
     | 
    
         
            -
                *
         
     | 
| 
       1842 
     | 
    
         
            -
                **/
         
     | 
| 
       1843 
1577 
     | 
    
         
             
                this.getLines = function(firstRow, lastRow) {
         
     | 
| 
       1844 
1578 
     | 
    
         
             
                    return this.$lines.slice(firstRow, lastRow + 1);
         
     | 
| 
       1845 
1579 
     | 
    
         
             
                };
         
     | 
| 
       1846 
     | 
    
         
            -
             
     | 
| 
       1847 
     | 
    
         
            -
                /**
         
     | 
| 
       1848 
     | 
    
         
            -
                * Document.getAllLines() -> [String]
         
     | 
| 
       1849 
     | 
    
         
            -
                * 
         
     | 
| 
       1850 
     | 
    
         
            -
                * Returns all lines in the document as string array. Warning: The caller should not modify this array!
         
     | 
| 
       1851 
     | 
    
         
            -
                **/
         
     | 
| 
       1852 
1580 
     | 
    
         
             
                this.getAllLines = function() {
         
     | 
| 
       1853 
1581 
     | 
    
         
             
                    return this.getLines(0, this.getLength());
         
     | 
| 
       1854 
1582 
     | 
    
         
             
                };
         
     | 
| 
       1855 
     | 
    
         
            -
             
     | 
| 
       1856 
     | 
    
         
            -
                /**
         
     | 
| 
       1857 
     | 
    
         
            -
                * Document.getLength() -> Number
         
     | 
| 
       1858 
     | 
    
         
            -
                * 
         
     | 
| 
       1859 
     | 
    
         
            -
                * Returns the number of rows in the document.
         
     | 
| 
       1860 
     | 
    
         
            -
                **/
         
     | 
| 
       1861 
1583 
     | 
    
         
             
                this.getLength = function() {
         
     | 
| 
       1862 
1584 
     | 
    
         
             
                    return this.$lines.length;
         
     | 
| 
       1863 
1585 
     | 
    
         
             
                };
         
     | 
| 
       1864 
     | 
    
         
            -
             
     | 
| 
       1865 
     | 
    
         
            -
                /**
         
     | 
| 
       1866 
     | 
    
         
            -
                * Document.getTextRange(range) -> String
         
     | 
| 
       1867 
     | 
    
         
            -
                * - range (Range): The range to work with
         
     | 
| 
       1868 
     | 
    
         
            -
                * 
         
     | 
| 
       1869 
     | 
    
         
            -
                * [Given a range within the document, this function returns all the text within that range as a single string.]{: #Document.getTextRange.desc}
         
     | 
| 
       1870 
     | 
    
         
            -
                **/
         
     | 
| 
       1871 
1586 
     | 
    
         
             
                this.getTextRange = function(range) {
         
     | 
| 
       1872 
1587 
     | 
    
         
             
                    if (range.start.row == range.end.row) {
         
     | 
| 
       1873 
1588 
     | 
    
         
             
                        return this.$lines[range.start.row].substring(range.start.column,
         
     | 
| 
         @@ -1880,12 +1595,6 @@ var Document = function(text) { 
     | 
|
| 
       1880 
1595 
     | 
    
         
             
                        return lines.join(this.getNewLineCharacter());
         
     | 
| 
       1881 
1596 
     | 
    
         
             
                    }
         
     | 
| 
       1882 
1597 
     | 
    
         
             
                };
         
     | 
| 
       1883 
     | 
    
         
            -
             
     | 
| 
       1884 
     | 
    
         
            -
                /** internal, hide
         
     | 
| 
       1885 
     | 
    
         
            -
                * Document.$clipPosition(position) -> Number
         
     | 
| 
       1886 
     | 
    
         
            -
                * 
         
     | 
| 
       1887 
     | 
    
         
            -
                * 
         
     | 
| 
       1888 
     | 
    
         
            -
                **/
         
     | 
| 
       1889 
1598 
     | 
    
         
             
                this.$clipPosition = function(position) {
         
     | 
| 
       1890 
1599 
     | 
    
         
             
                    var length = this.getLength();
         
     | 
| 
       1891 
1600 
     | 
    
         
             
                    if (position.row >= length) {
         
     | 
| 
         @@ -1894,16 +1603,6 @@ var Document = function(text) { 
     | 
|
| 
       1894 
1603 
     | 
    
         
             
                    }
         
     | 
| 
       1895 
1604 
     | 
    
         
             
                    return position;
         
     | 
| 
       1896 
1605 
     | 
    
         
             
                };
         
     | 
| 
       1897 
     | 
    
         
            -
             
     | 
| 
       1898 
     | 
    
         
            -
                /**
         
     | 
| 
       1899 
     | 
    
         
            -
                * Document.insert(position, text) -> Number
         
     | 
| 
       1900 
     | 
    
         
            -
                * - position (Number): The position to start inserting at 
         
     | 
| 
       1901 
     | 
    
         
            -
                * - text (String): A chunk of text to insert
         
     | 
| 
       1902 
     | 
    
         
            -
                * + (Number): The position of the last line of `text`. If the length of `text` is 0, this function simply returns `position`. 
         
     | 
| 
       1903 
     | 
    
         
            -
                * Inserts a block of `text` and the indicated `position`.
         
     | 
| 
       1904 
     | 
    
         
            -
                *
         
     | 
| 
       1905 
     | 
    
         
            -
                * 
         
     | 
| 
       1906 
     | 
    
         
            -
                **/
         
     | 
| 
       1907 
1606 
     | 
    
         
             
                this.insert = function(position, text) {
         
     | 
| 
       1908 
1607 
     | 
    
         
             
                    if (!text || text.length === 0)
         
     | 
| 
       1909 
1608 
     | 
    
         
             
                        return position;
         
     | 
| 
         @@ -1926,24 +1625,40 @@ var Document = function(text) { 
     | 
|
| 
       1926 
1625 
     | 
    
         
             
                    }
         
     | 
| 
       1927 
1626 
     | 
    
         
             
                    return position;
         
     | 
| 
       1928 
1627 
     | 
    
         
             
                };
         
     | 
| 
       1929 
     | 
    
         
            -
             
     | 
| 
       1930 
1628 
     | 
    
         
             
                /**
         
     | 
| 
       1931 
     | 
    
         
            -
             
     | 
| 
       1932 
     | 
    
         
            -
             
     | 
| 
       1933 
     | 
    
         
            -
             
     | 
| 
       1934 
     | 
    
         
            -
             
     | 
| 
       1935 
     | 
    
         
            -
             
     | 
| 
       1936 
     | 
    
         
            -
             
     | 
| 
       1937 
     | 
    
         
            -
             
     | 
| 
       1938 
     | 
    
         
            -
             
     | 
| 
       1939 
     | 
    
         
            -
                *  
     | 
| 
       1940 
     | 
    
         
            -
                *
         
     | 
| 
       1941 
     | 
    
         
            -
             
     | 
| 
       1942 
     | 
    
         
            -
                 
     | 
| 
      
 1629 
     | 
    
         
            +
                 * Document@change(e)
         
     | 
| 
      
 1630 
     | 
    
         
            +
                 * - 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.
         
     | 
| 
      
 1631 
     | 
    
         
            +
                 *
         
     | 
| 
      
 1632 
     | 
    
         
            +
                 * Fires whenever the document changes.
         
     | 
| 
      
 1633 
     | 
    
         
            +
                 *
         
     | 
| 
      
 1634 
     | 
    
         
            +
                 * Several methods trigger different `"change"` events. Below is a list of each action type, followed by each property that's also available:
         
     | 
| 
      
 1635 
     | 
    
         
            +
                 *
         
     | 
| 
      
 1636 
     | 
    
         
            +
                 *  * `"insertLines"` (emitted by [[Document.insertLines]])
         
     | 
| 
      
 1637 
     | 
    
         
            +
                 *    * `range`: the [[Range]] of the change within the document
         
     | 
| 
      
 1638 
     | 
    
         
            +
                 *    * `lines`: the lines in the document that are changing
         
     | 
| 
      
 1639 
     | 
    
         
            +
                 *  * `"insertText"` (emitted by [[Document.insertNewLine]])
         
     | 
| 
      
 1640 
     | 
    
         
            +
                 *    * `range`: the [[Range]] of the change within the document
         
     | 
| 
      
 1641 
     | 
    
         
            +
                 *    * `text`: the text that's being added
         
     | 
| 
      
 1642 
     | 
    
         
            +
                 *  * `"removeLines"` (emitted by [[Document.insertLines]])
         
     | 
| 
      
 1643 
     | 
    
         
            +
                 *    * `range`: the [[Range]] of the change within the document
         
     | 
| 
      
 1644 
     | 
    
         
            +
                 *    * `lines`: the lines in the document that were removed
         
     | 
| 
      
 1645 
     | 
    
         
            +
                 *    * `nl`: the new line character (as defined by [[Document.getNewLineCharacter]])
         
     | 
| 
      
 1646 
     | 
    
         
            +
                 *  * `"removeText"` (emitted by [[Document.removeInLine]] and [[Document.removeNewLine]])
         
     | 
| 
      
 1647 
     | 
    
         
            +
                 *    * `range`: the [[Range]] of the change within the document
         
     | 
| 
      
 1648 
     | 
    
         
            +
                 *    * `text`: the text that's being removed
         
     | 
| 
      
 1649 
     | 
    
         
            +
                 *
         
     | 
| 
      
 1650 
     | 
    
         
            +
                 **/
         
     | 
| 
       1943 
1651 
     | 
    
         
             
                this.insertLines = function(row, lines) {
         
     | 
| 
       1944 
1652 
     | 
    
         
             
                    if (lines.length == 0)
         
     | 
| 
       1945 
1653 
     | 
    
         
             
                        return {row: row, column: 0};
         
     | 
| 
       1946 
1654 
     | 
    
         | 
| 
      
 1655 
     | 
    
         
            +
                    // apply doesn't work for big arrays (smallest threshold is on safari 0xFFFF)
         
     | 
| 
      
 1656 
     | 
    
         
            +
                    // to circumvent that we have to break huge inserts into smaller chunks here
         
     | 
| 
      
 1657 
     | 
    
         
            +
                    if (lines.length > 0xFFFF) {
         
     | 
| 
      
 1658 
     | 
    
         
            +
                        var end = this.insertLines(row, lines.slice(0xFFFF));
         
     | 
| 
      
 1659 
     | 
    
         
            +
                        lines = lines.slice(0, 0xFFFF);
         
     | 
| 
      
 1660 
     | 
    
         
            +
                    }
         
     | 
| 
      
 1661 
     | 
    
         
            +
             
     | 
| 
       1947 
1662 
     | 
    
         
             
                    var args = [row, 0];
         
     | 
| 
       1948 
1663 
     | 
    
         
             
                    args.push.apply(args, lines);
         
     | 
| 
       1949 
1664 
     | 
    
         
             
                    this.$lines.splice.apply(this.$lines, args);
         
     | 
| 
         @@ -1955,20 +1670,8 @@ var Document = function(text) { 
     | 
|
| 
       1955 
1670 
     | 
    
         
             
                        lines: lines
         
     | 
| 
       1956 
1671 
     | 
    
         
             
                    };
         
     | 
| 
       1957 
1672 
     | 
    
         
             
                    this._emit("change", { data: delta });
         
     | 
| 
       1958 
     | 
    
         
            -
                    return range.end;
         
     | 
| 
      
 1673 
     | 
    
         
            +
                    return end || range.end;
         
     | 
| 
       1959 
1674 
     | 
    
         
             
                };
         
     | 
| 
       1960 
     | 
    
         
            -
             
     | 
| 
       1961 
     | 
    
         
            -
                /**
         
     | 
| 
       1962 
     | 
    
         
            -
                * Document.insertNewLine(position) -> Object
         
     | 
| 
       1963 
     | 
    
         
            -
                * - position (String): The position to insert at
         
     | 
| 
       1964 
     | 
    
         
            -
                * + (Object): Returns an object containing the final row and column, like this:<br/>
         
     | 
| 
       1965 
     | 
    
         
            -
                *    ```{row: endRow, column: 0}```
         
     | 
| 
       1966 
     | 
    
         
            -
                * 
         
     | 
| 
       1967 
     | 
    
         
            -
                * Inserts a new line into the document at the current row's `position`. This method also triggers the `'change'` event. 
         
     | 
| 
       1968 
     | 
    
         
            -
                *
         
     | 
| 
       1969 
     | 
    
         
            -
                *   
         
     | 
| 
       1970 
     | 
    
         
            -
                *
         
     | 
| 
       1971 
     | 
    
         
            -
                **/
         
     | 
| 
       1972 
1675 
     | 
    
         
             
                this.insertNewLine = function(position) {
         
     | 
| 
       1973 
1676 
     | 
    
         
             
                    position = this.$clipPosition(position);
         
     | 
| 
       1974 
1677 
     | 
    
         
             
                    var line = this.$lines[position.row] || "";
         
     | 
| 
         @@ -1990,20 +1693,6 @@ var Document = function(text) { 
     | 
|
| 
       1990 
1693 
     | 
    
         | 
| 
       1991 
1694 
     | 
    
         
             
                    return end;
         
     | 
| 
       1992 
1695 
     | 
    
         
             
                };
         
     | 
| 
       1993 
     | 
    
         
            -
             
     | 
| 
       1994 
     | 
    
         
            -
                /**
         
     | 
| 
       1995 
     | 
    
         
            -
                * Document.insertInLine(position, text) -> Object | Number
         
     | 
| 
       1996 
     | 
    
         
            -
                * - position (Number): The position to insert at
         
     | 
| 
       1997 
     | 
    
         
            -
                * - text (String): A chunk of text
         
     | 
| 
       1998 
     | 
    
         
            -
                * + (Object): Returns an object containing the final row and column, like this:<br/>
         
     | 
| 
       1999 
     | 
    
         
            -
                *     ```{row: endRow, column: 0}```
         
     | 
| 
       2000 
     | 
    
         
            -
                * + (Number): If `text` is empty, this function returns the value of `position`
         
     | 
| 
       2001 
     | 
    
         
            -
                * 
         
     | 
| 
       2002 
     | 
    
         
            -
                * Inserts `text` into the `position` at the current row. This method also triggers the `'change'` event.
         
     | 
| 
       2003 
     | 
    
         
            -
                *
         
     | 
| 
       2004 
     | 
    
         
            -
                *
         
     | 
| 
       2005 
     | 
    
         
            -
                *
         
     | 
| 
       2006 
     | 
    
         
            -
                **/
         
     | 
| 
       2007 
1696 
     | 
    
         
             
                this.insertInLine = function(position, text) {
         
     | 
| 
       2008 
1697 
     | 
    
         
             
                    if (text.length == 0)
         
     | 
| 
       2009 
1698 
     | 
    
         
             
                        return position;
         
     | 
| 
         @@ -2027,16 +1716,6 @@ var Document = function(text) { 
     | 
|
| 
       2027 
1716 
     | 
    
         | 
| 
       2028 
1717 
     | 
    
         
             
                    return end;
         
     | 
| 
       2029 
1718 
     | 
    
         
             
                };
         
     | 
| 
       2030 
     | 
    
         
            -
             
     | 
| 
       2031 
     | 
    
         
            -
                /**
         
     | 
| 
       2032 
     | 
    
         
            -
                * Document.remove(range) -> Object
         
     | 
| 
       2033 
     | 
    
         
            -
                * - range (Range): A specified Range to remove
         
     | 
| 
       2034 
     | 
    
         
            -
                * + (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`.
         
     | 
| 
       2035 
     | 
    
         
            -
                * 
         
     | 
| 
       2036 
     | 
    
         
            -
                * Removes the `range` from the document.
         
     | 
| 
       2037 
     | 
    
         
            -
                *
         
     | 
| 
       2038 
     | 
    
         
            -
                *
         
     | 
| 
       2039 
     | 
    
         
            -
                **/
         
     | 
| 
       2040 
1719 
     | 
    
         
             
                this.remove = function(range) {
         
     | 
| 
       2041 
1720 
     | 
    
         
             
                    // clip to document
         
     | 
| 
       2042 
1721 
     | 
    
         
             
                    range.start = this.$clipPosition(range.start);
         
     | 
| 
         @@ -2068,18 +1747,6 @@ var Document = function(text) { 
     | 
|
| 
       2068 
1747 
     | 
    
         
             
                    }
         
     | 
| 
       2069 
1748 
     | 
    
         
             
                    return range.start;
         
     | 
| 
       2070 
1749 
     | 
    
         
             
                };
         
     | 
| 
       2071 
     | 
    
         
            -
             
     | 
| 
       2072 
     | 
    
         
            -
                /**
         
     | 
| 
       2073 
     | 
    
         
            -
                * Document.removeInLine(row, startColumn, endColumn) -> Object
         
     | 
| 
       2074 
     | 
    
         
            -
                * - row (Number): The row to remove from
         
     | 
| 
       2075 
     | 
    
         
            -
                * - startColumn (Number): The column to start removing at 
         
     | 
| 
       2076 
     | 
    
         
            -
                * - endColumn (Number): The column to stop removing at
         
     | 
| 
       2077 
     | 
    
         
            -
                * + (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.
         
     | 
| 
       2078 
     | 
    
         
            -
                *
         
     | 
| 
       2079 
     | 
    
         
            -
                * Removes the specified columns from the `row`. This method also triggers the `'change'` event.
         
     | 
| 
       2080 
     | 
    
         
            -
                *
         
     | 
| 
       2081 
     | 
    
         
            -
                * 
         
     | 
| 
       2082 
     | 
    
         
            -
                **/
         
     | 
| 
       2083 
1750 
     | 
    
         
             
                this.removeInLine = function(row, startColumn, endColumn) {
         
     | 
| 
       2084 
1751 
     | 
    
         
             
                    if (startColumn == endColumn)
         
     | 
| 
       2085 
1752 
     | 
    
         
             
                        return;
         
     | 
| 
         @@ -2098,17 +1765,6 @@ var Document = function(text) { 
     | 
|
| 
       2098 
1765 
     | 
    
         
             
                    this._emit("change", { data: delta });
         
     | 
| 
       2099 
1766 
     | 
    
         
             
                    return range.start;
         
     | 
| 
       2100 
1767 
     | 
    
         
             
                };
         
     | 
| 
       2101 
     | 
    
         
            -
             
     | 
| 
       2102 
     | 
    
         
            -
                /**
         
     | 
| 
       2103 
     | 
    
         
            -
                * Document.removeLines(firstRow, lastRow) -> [String]
         
     | 
| 
       2104 
     | 
    
         
            -
                * - firstRow (Number): The first row to be removed
         
     | 
| 
       2105 
     | 
    
         
            -
                * - lastRow (Number): The last row to be removed
         
     | 
| 
       2106 
     | 
    
         
            -
                * + ([String]): Returns all the removed lines.
         
     | 
| 
       2107 
     | 
    
         
            -
                * 
         
     | 
| 
       2108 
     | 
    
         
            -
                * Removes a range of full lines. This method also triggers the `'change'` event.
         
     | 
| 
       2109 
     | 
    
         
            -
                * 
         
     | 
| 
       2110 
     | 
    
         
            -
                *
         
     | 
| 
       2111 
     | 
    
         
            -
                **/
         
     | 
| 
       2112 
1768 
     | 
    
         
             
                this.removeLines = function(firstRow, lastRow) {
         
     | 
| 
       2113 
1769 
     | 
    
         
             
                    var range = new Range(firstRow, 0, lastRow + 1, 0);
         
     | 
| 
       2114 
1770 
     | 
    
         
             
                    var removed = this.$lines.splice(firstRow, lastRow - firstRow + 1);
         
     | 
| 
         @@ -2122,14 +1778,6 @@ var Document = function(text) { 
     | 
|
| 
       2122 
1778 
     | 
    
         
             
                    this._emit("change", { data: delta });
         
     | 
| 
       2123 
1779 
     | 
    
         
             
                    return removed;
         
     | 
| 
       2124 
1780 
     | 
    
         
             
                };
         
     | 
| 
       2125 
     | 
    
         
            -
             
     | 
| 
       2126 
     | 
    
         
            -
                /**
         
     | 
| 
       2127 
     | 
    
         
            -
                * Document.removeNewLine(row) -> Void
         
     | 
| 
       2128 
     | 
    
         
            -
                * - row (Number): The row to check
         
     | 
| 
       2129 
     | 
    
         
            -
                * 
         
     | 
| 
       2130 
     | 
    
         
            -
                * Removes the new line between `row` and the row immediately following it. This method also triggers the `'change'` event.
         
     | 
| 
       2131 
     | 
    
         
            -
                *
         
     | 
| 
       2132 
     | 
    
         
            -
                **/
         
     | 
| 
       2133 
1781 
     | 
    
         
             
                this.removeNewLine = function(row) {
         
     | 
| 
       2134 
1782 
     | 
    
         
             
                    var firstLine = this.getLine(row);
         
     | 
| 
       2135 
1783 
     | 
    
         
             
                    var secondLine = this.getLine(row+1);
         
     | 
| 
         @@ -2146,19 +1794,6 @@ var Document = function(text) { 
     | 
|
| 
       2146 
1794 
     | 
    
         
             
                    };
         
     | 
| 
       2147 
1795 
     | 
    
         
             
                    this._emit("change", { data: delta });
         
     | 
| 
       2148 
1796 
     | 
    
         
             
                };
         
     | 
| 
       2149 
     | 
    
         
            -
             
     | 
| 
       2150 
     | 
    
         
            -
                /**
         
     | 
| 
       2151 
     | 
    
         
            -
                * Document.replace(range, text) -> Object
         
     | 
| 
       2152 
     | 
    
         
            -
                * - range (Range): A specified Range to replace
         
     | 
| 
       2153 
     | 
    
         
            -
                * - text (String): The new text to use as a replacement
         
     | 
| 
       2154 
     | 
    
         
            -
                * + (Object): Returns an object containing the final row and column, like this:
         
     | 
| 
       2155 
     | 
    
         
            -
                *     {row: endRow, column: 0}
         
     | 
| 
       2156 
     | 
    
         
            -
                * If the text and range are empty, this function returns an object containing the current `range.start` value.
         
     | 
| 
       2157 
     | 
    
         
            -
                * If the text is the exact same as what currently exists, this function returns an object containing the current `range.end` value.
         
     | 
| 
       2158 
     | 
    
         
            -
                *
         
     | 
| 
       2159 
     | 
    
         
            -
                * Replaces a range in the document with the new `text`.
         
     | 
| 
       2160 
     | 
    
         
            -
                *
         
     | 
| 
       2161 
     | 
    
         
            -
                **/
         
     | 
| 
       2162 
1797 
     | 
    
         
             
                this.replace = function(range, text) {
         
     | 
| 
       2163 
1798 
     | 
    
         
             
                    if (text.length == 0 && range.isEmpty())
         
     | 
| 
       2164 
1799 
     | 
    
         
             
                        return range.start;
         
     | 
| 
         @@ -2178,12 +1813,6 @@ var Document = function(text) { 
     | 
|
| 
       2178 
1813 
     | 
    
         | 
| 
       2179 
1814 
     | 
    
         
             
                    return end;
         
     | 
| 
       2180 
1815 
     | 
    
         
             
                };
         
     | 
| 
       2181 
     | 
    
         
            -
             
     | 
| 
       2182 
     | 
    
         
            -
                /**
         
     | 
| 
       2183 
     | 
    
         
            -
                * Document.applyDeltas(deltas) -> Void
         
     | 
| 
       2184 
     | 
    
         
            -
                * 
         
     | 
| 
       2185 
     | 
    
         
            -
                * Applies all the changes previously accumulated. These can be either `'includeText'`, `'insertLines'`, `'removeText'`, and `'removeLines'`.
         
     | 
| 
       2186 
     | 
    
         
            -
                **/
         
     | 
| 
       2187 
1816 
     | 
    
         
             
                this.applyDeltas = function(deltas) {
         
     | 
| 
       2188 
1817 
     | 
    
         
             
                    for (var i=0; i<deltas.length; i++) {
         
     | 
| 
       2189 
1818 
     | 
    
         
             
                        var delta = deltas[i];
         
     | 
| 
         @@ -2199,12 +1828,6 @@ var Document = function(text) { 
     | 
|
| 
       2199 
1828 
     | 
    
         
             
                            this.remove(range);
         
     | 
| 
       2200 
1829 
     | 
    
         
             
                    }
         
     | 
| 
       2201 
1830 
     | 
    
         
             
                };
         
     | 
| 
       2202 
     | 
    
         
            -
             
     | 
| 
       2203 
     | 
    
         
            -
                /**
         
     | 
| 
       2204 
     | 
    
         
            -
                * Document.revertDeltas(deltas) -> Void
         
     | 
| 
       2205 
     | 
    
         
            -
                * 
         
     | 
| 
       2206 
     | 
    
         
            -
                * Reverts any changes previously applied. These can be either `'includeText'`, `'insertLines'`, `'removeText'`, and `'removeLines'`.
         
     | 
| 
       2207 
     | 
    
         
            -
                **/
         
     | 
| 
       2208 
1831 
     | 
    
         
             
                this.revertDeltas = function(deltas) {
         
     | 
| 
       2209 
1832 
     | 
    
         
             
                    for (var i=deltas.length-1; i>=0; i--) {
         
     | 
| 
       2210 
1833 
     | 
    
         
             
                        var delta = deltas[i];
         
     | 
| 
         @@ -2226,45 +1849,9 @@ var Document = function(text) { 
     | 
|
| 
       2226 
1849 
     | 
    
         | 
| 
       2227 
1850 
     | 
    
         
             
            exports.Document = Document;
         
     | 
| 
       2228 
1851 
     | 
    
         
             
            });
         
     | 
| 
       2229 
     | 
    
         
            -
            /* ***** BEGIN LICENSE BLOCK *****
         
     | 
| 
       2230 
     | 
    
         
            -
             * Version: MPL 1.1/GPL 2.0/LGPL 2.1
         
     | 
| 
       2231 
     | 
    
         
            -
             *
         
     | 
| 
       2232 
     | 
    
         
            -
             * The contents of this file are subject to the Mozilla Public License Version
         
     | 
| 
       2233 
     | 
    
         
            -
             * 1.1 (the "License"); you may not use this file except in compliance with
         
     | 
| 
       2234 
     | 
    
         
            -
             * the License. You may obtain a copy of the License at
         
     | 
| 
       2235 
     | 
    
         
            -
             * http://www.mozilla.org/MPL/
         
     | 
| 
       2236 
     | 
    
         
            -
             *
         
     | 
| 
       2237 
     | 
    
         
            -
             * Software distributed under the License is distributed on an "AS IS" basis,
         
     | 
| 
       2238 
     | 
    
         
            -
             * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
         
     | 
| 
       2239 
     | 
    
         
            -
             * for the specific language governing rights and limitations under the
         
     | 
| 
       2240 
     | 
    
         
            -
             * License.
         
     | 
| 
       2241 
     | 
    
         
            -
             *
         
     | 
| 
       2242 
     | 
    
         
            -
             * The Original Code is Ajax.org Code Editor (ACE).
         
     | 
| 
       2243 
     | 
    
         
            -
             *
         
     | 
| 
       2244 
     | 
    
         
            -
             * The Initial Developer of the Original Code is
         
     | 
| 
       2245 
     | 
    
         
            -
             * Ajax.org B.V.
         
     | 
| 
       2246 
     | 
    
         
            -
             * Portions created by the Initial Developer are Copyright (C) 2010
         
     | 
| 
       2247 
     | 
    
         
            -
             * the Initial Developer. All Rights Reserved.
         
     | 
| 
       2248 
     | 
    
         
            -
             *
         
     | 
| 
       2249 
     | 
    
         
            -
             * Contributor(s):
         
     | 
| 
       2250 
     | 
    
         
            -
             *      Fabian Jakobs <fabian AT ajax DOT org>
         
     | 
| 
       2251 
     | 
    
         
            -
             *
         
     | 
| 
       2252 
     | 
    
         
            -
             * Alternatively, the contents of this file may be used under the terms of
         
     | 
| 
       2253 
     | 
    
         
            -
             * either the GNU General Public License Version 2 or later (the "GPL"), or
         
     | 
| 
       2254 
     | 
    
         
            -
             * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
         
     | 
| 
       2255 
     | 
    
         
            -
             * in which case the provisions of the GPL or the LGPL are applicable instead
         
     | 
| 
       2256 
     | 
    
         
            -
             * of those above. If you wish to allow use of your version of this file only
         
     | 
| 
       2257 
     | 
    
         
            -
             * under the terms of either the GPL or the LGPL, and not to allow others to
         
     | 
| 
       2258 
     | 
    
         
            -
             * use your version of this file under the terms of the MPL, indicate your
         
     | 
| 
       2259 
     | 
    
         
            -
             * decision by deleting the provisions above and replace them with the notice
         
     | 
| 
       2260 
     | 
    
         
            -
             * and other provisions required by the GPL or the LGPL. If you do not delete
         
     | 
| 
       2261 
     | 
    
         
            -
             * the provisions above, a recipient may use your version of this file under
         
     | 
| 
       2262 
     | 
    
         
            -
             * the terms of any one of the MPL, the GPL or the LGPL.
         
     | 
| 
       2263 
     | 
    
         
            -
             *
         
     | 
| 
       2264 
     | 
    
         
            -
             * ***** END LICENSE BLOCK ***** */
         
     | 
| 
       2265 
1852 
     | 
    
         | 
| 
       2266 
1853 
     | 
    
         
             
            define('ace/range', ['require', 'exports', 'module' ], function(require, exports, module) {
         
     | 
| 
       2267 
     | 
    
         
            -
             
     | 
| 
      
 1854 
     | 
    
         
            +
             
     | 
| 
       2268 
1855 
     | 
    
         | 
| 
       2269 
1856 
     | 
    
         
             
            /**
         
     | 
| 
       2270 
1857 
     | 
    
         
             
             * class Range
         
     | 
| 
         @@ -2308,53 +1895,15 @@ var Range = function(startRow, startColumn, endRow, endColumn) { 
     | 
|
| 
       2308 
1895 
     | 
    
         
             
                        this.end.row == range.end.row &&
         
     | 
| 
       2309 
1896 
     | 
    
         
             
                        this.start.column == range.start.column &&
         
     | 
| 
       2310 
1897 
     | 
    
         
             
                        this.end.column == range.end.column
         
     | 
| 
       2311 
     | 
    
         
            -
                };
         
     | 
| 
       2312 
     | 
    
         
            -
             
     | 
| 
       2313 
     | 
    
         
            -
                /**
         
     | 
| 
       2314 
     | 
    
         
            -
                 * Range.toString() -> String
         
     | 
| 
       2315 
     | 
    
         
            -
                 *
         
     | 
| 
       2316 
     | 
    
         
            -
                 * Returns a string containing the range's row and column information, given like this:
         
     | 
| 
       2317 
     | 
    
         
            -
                 *
         
     | 
| 
       2318 
     | 
    
         
            -
                 *    [start.row/start.column] -> [end.row/end.column]
         
     | 
| 
       2319 
     | 
    
         
            -
                 *
         
     | 
| 
       2320 
     | 
    
         
            -
                 **/ 
         
     | 
| 
       2321 
     | 
    
         
            -
             
     | 
| 
      
 1898 
     | 
    
         
            +
                }; 
         
     | 
| 
       2322 
1899 
     | 
    
         
             
                this.toString = function() {
         
     | 
| 
       2323 
1900 
     | 
    
         
             
                    return ("Range: [" + this.start.row + "/" + this.start.column +
         
     | 
| 
       2324 
1901 
     | 
    
         
             
                        "] -> [" + this.end.row + "/" + this.end.column + "]");
         
     | 
| 
       2325 
     | 
    
         
            -
                };
         
     | 
| 
       2326 
     | 
    
         
            -
             
     | 
| 
       2327 
     | 
    
         
            -
                /** related to: Range.compare
         
     | 
| 
       2328 
     | 
    
         
            -
                 * Range.contains(row, column) -> Boolean
         
     | 
| 
       2329 
     | 
    
         
            -
                 * - row (Number): A row to check for
         
     | 
| 
       2330 
     | 
    
         
            -
                 * - column (Number): A column to check for
         
     | 
| 
       2331 
     | 
    
         
            -
                 *
         
     | 
| 
       2332 
     | 
    
         
            -
                 * Returns `true` if the `row` and `column` provided are within the given range. This can better be expressed as returning `true` if:
         
     | 
| 
       2333 
     | 
    
         
            -
                 *
         
     | 
| 
       2334 
     | 
    
         
            -
                 *    this.start.row <= row <= this.end.row &&
         
     | 
| 
       2335 
     | 
    
         
            -
                 *    this.start.column <= column <= this.end.column
         
     | 
| 
       2336 
     | 
    
         
            -
                 *
         
     | 
| 
       2337 
     | 
    
         
            -
                 **/ 
         
     | 
| 
      
 1902 
     | 
    
         
            +
                }; 
         
     | 
| 
       2338 
1903 
     | 
    
         | 
| 
       2339 
1904 
     | 
    
         
             
                this.contains = function(row, column) {
         
     | 
| 
       2340 
1905 
     | 
    
         
             
                    return this.compare(row, column) == 0;
         
     | 
| 
       2341 
     | 
    
         
            -
                };
         
     | 
| 
       2342 
     | 
    
         
            -
             
     | 
| 
       2343 
     | 
    
         
            -
                /** related to: Range.compare
         
     | 
| 
       2344 
     | 
    
         
            -
                 * Range.compareRange(range) -> Number
         
     | 
| 
       2345 
     | 
    
         
            -
                 * - range (Range): A range to compare with
         
     | 
| 
       2346 
     | 
    
         
            -
                 * + (Number): This method returns one of the following numbers:<br/>
         
     | 
| 
       2347 
     | 
    
         
            -
                 * <br/>
         
     | 
| 
       2348 
     | 
    
         
            -
                 * * `-2`: (B) is in front of (A), and doesn't intersect with (A)<br/>
         
     | 
| 
       2349 
     | 
    
         
            -
                 * * `-1`: (B) begins before (A) but ends inside of (A)<br/>
         
     | 
| 
       2350 
     | 
    
         
            -
                 * * `0`: (B) is completely inside of (A) OR (A) is completely inside of (B)<br/>
         
     | 
| 
       2351 
     | 
    
         
            -
                 * * `+1`: (B) begins inside of (A) but ends outside of (A)<br/>
         
     | 
| 
       2352 
     | 
    
         
            -
                 * * `+2`: (B) is after (A) and doesn't intersect with (A)<br/>
         
     | 
| 
       2353 
     | 
    
         
            -
                 * * `42`: FTW state: (B) ends in (A) but starts outside of (A)
         
     | 
| 
       2354 
     | 
    
         
            -
                 * 
         
     | 
| 
       2355 
     | 
    
         
            -
                 * Compares `this` range (A) with another range (B).
         
     | 
| 
       2356 
     | 
    
         
            -
                 *
         
     | 
| 
       2357 
     | 
    
         
            -
                 **/ 
         
     | 
| 
      
 1906 
     | 
    
         
            +
                }; 
         
     | 
| 
       2358 
1907 
     | 
    
         
             
                this.compareRange = function(range) {
         
     | 
| 
       2359 
1908 
     | 
    
         
             
                    var cmp,
         
     | 
| 
       2360 
1909 
     | 
    
         
             
                        end = range.end,
         
     | 
| 
         @@ -2591,30 +2140,6 @@ var Range = function(startRow, startColumn, endRow, endColumn) { 
     | 
|
| 
       2591 
2140 
     | 
    
         | 
| 
       2592 
2141 
     | 
    
         
             
                    return 0;
         
     | 
| 
       2593 
2142 
     | 
    
         
             
                };
         
     | 
| 
       2594 
     | 
    
         
            -
             
     | 
| 
       2595 
     | 
    
         
            -
                /**
         
     | 
| 
       2596 
     | 
    
         
            -
                 * Range.compareStart(row, column) -> Number
         
     | 
| 
       2597 
     | 
    
         
            -
                 * - row (Number): A row point to compare with
         
     | 
| 
       2598 
     | 
    
         
            -
                 * - column (Number): A column point to compare with
         
     | 
| 
       2599 
     | 
    
         
            -
                 * + (Number): This method returns one of the following numbers:<br/>
         
     | 
| 
       2600 
     | 
    
         
            -
                 * <br/>
         
     | 
| 
       2601 
     | 
    
         
            -
                 * * `0` if the two points are exactly equal<br/>
         
     | 
| 
       2602 
     | 
    
         
            -
                 * * `-1` if `p.row` is less then the calling range<br/>
         
     | 
| 
       2603 
     | 
    
         
            -
                 * * `1` if `p.row` is greater than the calling range, or if `isStart` is `true`.<br/>
         
     | 
| 
       2604 
     | 
    
         
            -
                 * <br/>
         
     | 
| 
       2605 
     | 
    
         
            -
                 * If the starting row of the calling range is equal to `p.row`, and:<br/>
         
     | 
| 
       2606 
     | 
    
         
            -
                 * * `p.column` is greater than or equal to the calling range's starting column, this returns `0`<br/>
         
     | 
| 
       2607 
     | 
    
         
            -
                 * * Otherwise, it returns -1<br/>
         
     | 
| 
       2608 
     | 
    
         
            -
                 * <br/>
         
     | 
| 
       2609 
     | 
    
         
            -
                 * If the ending row of the calling range is equal to `p.row`, and:<br/>
         
     | 
| 
       2610 
     | 
    
         
            -
                 * * `p.column` is less than or equal to the calling range's ending column, this returns `0`<br/>
         
     | 
| 
       2611 
     | 
    
         
            -
                 * * Otherwise, it returns 1
         
     | 
| 
       2612 
     | 
    
         
            -
                 *
         
     | 
| 
       2613 
     | 
    
         
            -
                 * Checks the row and column points with the row and column points of the calling range.
         
     | 
| 
       2614 
     | 
    
         
            -
                 *
         
     | 
| 
       2615 
     | 
    
         
            -
                 *
         
     | 
| 
       2616 
     | 
    
         
            -
                 *
         
     | 
| 
       2617 
     | 
    
         
            -
                 **/
         
     | 
| 
       2618 
2143 
     | 
    
         
             
                this.compareStart = function(row, column) {
         
     | 
| 
       2619 
2144 
     | 
    
         
             
                    if (this.start.row == row && this.start.column == column) {
         
     | 
| 
       2620 
2145 
     | 
    
         
             
                        return -1;
         
     | 
| 
         @@ -2652,7 +2177,7 @@ var Range = function(startRow, startColumn, endRow, endColumn) { 
     | 
|
| 
       2652 
2177 
     | 
    
         
             
                    }
         
     | 
| 
       2653 
2178 
     | 
    
         
             
                }
         
     | 
| 
       2654 
2179 
     | 
    
         | 
| 
       2655 
     | 
    
         
            -
             
     | 
| 
      
 2180 
     | 
    
         
            +
                /** 
         
     | 
| 
       2656 
2181 
     | 
    
         
             
                 * Range.compareInside(row, column) -> Number
         
     | 
| 
       2657 
2182 
     | 
    
         
             
                 * - row (Number): A row point to compare with
         
     | 
| 
       2658 
2183 
     | 
    
         
             
                 * - column (Number): A column point to compare with
         
     | 
| 
         @@ -2677,7 +2202,7 @@ var Range = function(startRow, startColumn, endRow, endColumn) { 
     | 
|
| 
       2677 
2202 
     | 
    
         
             
                    }
         
     | 
| 
       2678 
2203 
     | 
    
         
             
                }
         
     | 
| 
       2679 
2204 
     | 
    
         | 
| 
       2680 
     | 
    
         
            -
             
     | 
| 
      
 2205 
     | 
    
         
            +
                /** 
         
     | 
| 
       2681 
2206 
     | 
    
         
             
                 * Range.clipRows(firstRow, lastRow) -> Range
         
     | 
| 
       2682 
2207 
     | 
    
         
             
                 * - firstRow (Number): The starting row
         
     | 
| 
       2683 
2208 
     | 
    
         
             
                 * - lastRow (Number): The ending row
         
     | 
| 
         @@ -2715,15 +2240,6 @@ var Range = function(startRow, startColumn, endRow, endColumn) { 
     | 
|
| 
       2715 
2240 
     | 
    
         
             
                    }
         
     | 
| 
       2716 
2241 
     | 
    
         
             
                    return Range.fromPoints(start || this.start, end || this.end);
         
     | 
| 
       2717 
2242 
     | 
    
         
             
                };
         
     | 
| 
       2718 
     | 
    
         
            -
             
     | 
| 
       2719 
     | 
    
         
            -
               /** 
         
     | 
| 
       2720 
     | 
    
         
            -
                 * Range.extend(row, column) -> Range
         
     | 
| 
       2721 
     | 
    
         
            -
                 * - row (Number): A new row to extend to
         
     | 
| 
       2722 
     | 
    
         
            -
                 * - column (Number): A new column to extend to
         
     | 
| 
       2723 
     | 
    
         
            -
                 *
         
     | 
| 
       2724 
     | 
    
         
            -
                 *  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.
         
     | 
| 
       2725 
     | 
    
         
            -
                 *
         
     | 
| 
       2726 
     | 
    
         
            -
                **/
         
     | 
| 
       2727 
2243 
     | 
    
         
             
                this.extend = function(row, column) {
         
     | 
| 
       2728 
2244 
     | 
    
         
             
                    var cmp = this.compare(row, column);
         
     | 
| 
       2729 
2245 
     | 
    
         | 
| 
         @@ -2740,46 +2256,18 @@ var Range = function(startRow, startColumn, endRow, endColumn) { 
     | 
|
| 
       2740 
2256 
     | 
    
         
             
                this.isEmpty = function() {
         
     | 
| 
       2741 
2257 
     | 
    
         
             
                    return (this.start.row == this.end.row && this.start.column == this.end.column);
         
     | 
| 
       2742 
2258 
     | 
    
         
             
                };
         
     | 
| 
       2743 
     | 
    
         
            -
             
     | 
| 
       2744 
     | 
    
         
            -
               /** 
         
     | 
| 
       2745 
     | 
    
         
            -
                 * Range.isMultiLine() -> Boolean
         
     | 
| 
       2746 
     | 
    
         
            -
                 *
         
     | 
| 
       2747 
     | 
    
         
            -
                 * Returns true if the range spans across multiple lines.
         
     | 
| 
       2748 
     | 
    
         
            -
                 *
         
     | 
| 
       2749 
     | 
    
         
            -
                **/
         
     | 
| 
       2750 
2259 
     | 
    
         
             
                this.isMultiLine = function() {
         
     | 
| 
       2751 
2260 
     | 
    
         
             
                    return (this.start.row !== this.end.row);
         
     | 
| 
       2752 
2261 
     | 
    
         
             
                };
         
     | 
| 
       2753 
     | 
    
         
            -
             
     | 
| 
       2754 
     | 
    
         
            -
               /** 
         
     | 
| 
       2755 
     | 
    
         
            -
                 * Range.clone() -> Range
         
     | 
| 
       2756 
     | 
    
         
            -
                 *
         
     | 
| 
       2757 
     | 
    
         
            -
                 * Returns a duplicate of the calling range.
         
     | 
| 
       2758 
     | 
    
         
            -
                 *
         
     | 
| 
       2759 
     | 
    
         
            -
                **/
         
     | 
| 
       2760 
2262 
     | 
    
         
             
                this.clone = function() {
         
     | 
| 
       2761 
2263 
     | 
    
         
             
                    return Range.fromPoints(this.start, this.end);
         
     | 
| 
       2762 
2264 
     | 
    
         
             
                };
         
     | 
| 
       2763 
     | 
    
         
            -
             
     | 
| 
       2764 
     | 
    
         
            -
               /** 
         
     | 
| 
       2765 
     | 
    
         
            -
                 * Range.collapseRows() -> Range
         
     | 
| 
       2766 
     | 
    
         
            -
                 *
         
     | 
| 
       2767 
     | 
    
         
            -
                 * Returns a range containing the starting and ending rows of the original range, but with a column value of `0`.
         
     | 
| 
       2768 
     | 
    
         
            -
                 *
         
     | 
| 
       2769 
     | 
    
         
            -
                **/
         
     | 
| 
       2770 
2265 
     | 
    
         
             
                this.collapseRows = function() {
         
     | 
| 
       2771 
2266 
     | 
    
         
             
                    if (this.end.column == 0)
         
     | 
| 
       2772 
2267 
     | 
    
         
             
                        return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0)
         
     | 
| 
       2773 
2268 
     | 
    
         
             
                    else
         
     | 
| 
       2774 
2269 
     | 
    
         
             
                        return new Range(this.start.row, 0, this.end.row, 0)
         
     | 
| 
       2775 
2270 
     | 
    
         
             
                };
         
     | 
| 
       2776 
     | 
    
         
            -
             
     | 
| 
       2777 
     | 
    
         
            -
               /** 
         
     | 
| 
       2778 
     | 
    
         
            -
                 * Range.toScreenRange(session) -> Range
         
     | 
| 
       2779 
     | 
    
         
            -
                 * - session (EditSession): The `EditSession` to retrieve coordinates from
         
     | 
| 
       2780 
     | 
    
         
            -
                 * 
         
     | 
| 
       2781 
     | 
    
         
            -
                 * Given the current `Range`, this function converts those starting and ending points into screen positions, and then returns a new `Range` object.
         
     | 
| 
       2782 
     | 
    
         
            -
                **/
         
     | 
| 
       2783 
2271 
     | 
    
         
             
                this.toScreenRange = function(session) {
         
     | 
| 
       2784 
2272 
     | 
    
         
             
                    var screenPosStart =
         
     | 
| 
       2785 
2273 
     | 
    
         
             
                        session.documentToScreenPosition(this.start);
         
     | 
| 
         @@ -2793,71 +2281,19 @@ var Range = function(startRow, startColumn, endRow, endColumn) { 
     | 
|
| 
       2793 
2281 
     | 
    
         
             
                };
         
     | 
| 
       2794 
2282 
     | 
    
         | 
| 
       2795 
2283 
     | 
    
         
             
            }).call(Range.prototype);
         
     | 
| 
       2796 
     | 
    
         
            -
             
     | 
| 
       2797 
     | 
    
         
            -
            /** 
         
     | 
| 
       2798 
     | 
    
         
            -
             * Range.fromPoints(start, end) -> Range
         
     | 
| 
       2799 
     | 
    
         
            -
             * - start (Range): A starting point to use
         
     | 
| 
       2800 
     | 
    
         
            -
             * - end (Range): An ending point to use
         
     | 
| 
       2801 
     | 
    
         
            -
             * 
         
     | 
| 
       2802 
     | 
    
         
            -
             * Creates and returns a new `Range` based on the row and column of the given parameters.
         
     | 
| 
       2803 
     | 
    
         
            -
             *
         
     | 
| 
       2804 
     | 
    
         
            -
            **/
         
     | 
| 
       2805 
2284 
     | 
    
         
             
            Range.fromPoints = function(start, end) {
         
     | 
| 
       2806 
2285 
     | 
    
         
             
                return new Range(start.row, start.column, end.row, end.column);
         
     | 
| 
       2807 
2286 
     | 
    
         
             
            };
         
     | 
| 
       2808 
2287 
     | 
    
         | 
| 
       2809 
2288 
     | 
    
         
             
            exports.Range = Range;
         
     | 
| 
       2810 
2289 
     | 
    
         
             
            });
         
     | 
| 
       2811 
     | 
    
         
            -
            /* ***** BEGIN LICENSE BLOCK *****
         
     | 
| 
       2812 
     | 
    
         
            -
             * Version: MPL 1.1/GPL 2.0/LGPL 2.1
         
     | 
| 
       2813 
     | 
    
         
            -
             *
         
     | 
| 
       2814 
     | 
    
         
            -
             * The contents of this file are subject to the Mozilla Public License Version
         
     | 
| 
       2815 
     | 
    
         
            -
             * 1.1 (the "License"); you may not use this file except in compliance with
         
     | 
| 
       2816 
     | 
    
         
            -
             * the License. You may obtain a copy of the License at
         
     | 
| 
       2817 
     | 
    
         
            -
             * http://www.mozilla.org/MPL/
         
     | 
| 
       2818 
     | 
    
         
            -
             *
         
     | 
| 
       2819 
     | 
    
         
            -
             * Software distributed under the License is distributed on an "AS IS" basis,
         
     | 
| 
       2820 
     | 
    
         
            -
             * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
         
     | 
| 
       2821 
     | 
    
         
            -
             * for the specific language governing rights and limitations under the
         
     | 
| 
       2822 
     | 
    
         
            -
             * License.
         
     | 
| 
       2823 
     | 
    
         
            -
             *
         
     | 
| 
       2824 
     | 
    
         
            -
             * The Original Code is Ajax.org Code Editor (ACE).
         
     | 
| 
       2825 
     | 
    
         
            -
             *
         
     | 
| 
       2826 
     | 
    
         
            -
             * The Initial Developer of the Original Code is
         
     | 
| 
       2827 
     | 
    
         
            -
             * Ajax.org B.V.
         
     | 
| 
       2828 
     | 
    
         
            -
             * Portions created by the Initial Developer are Copyright (C) 2010
         
     | 
| 
       2829 
     | 
    
         
            -
             * the Initial Developer. All Rights Reserved.
         
     | 
| 
       2830 
     | 
    
         
            -
             *
         
     | 
| 
       2831 
     | 
    
         
            -
             * Contributor(s):
         
     | 
| 
       2832 
     | 
    
         
            -
             *      Fabian Jakobs <fabian AT ajax DOT org>
         
     | 
| 
       2833 
     | 
    
         
            -
             *
         
     | 
| 
       2834 
     | 
    
         
            -
             * Alternatively, the contents of this file may be used under the terms of
         
     | 
| 
       2835 
     | 
    
         
            -
             * either the GNU General Public License Version 2 or later (the "GPL"), or
         
     | 
| 
       2836 
     | 
    
         
            -
             * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
         
     | 
| 
       2837 
     | 
    
         
            -
             * in which case the provisions of the GPL or the LGPL are applicable instead
         
     | 
| 
       2838 
     | 
    
         
            -
             * of those above. If you wish to allow use of your version of this file only
         
     | 
| 
       2839 
     | 
    
         
            -
             * under the terms of either the GPL or the LGPL, and not to allow others to
         
     | 
| 
       2840 
     | 
    
         
            -
             * use your version of this file under the terms of the MPL, indicate your
         
     | 
| 
       2841 
     | 
    
         
            -
             * decision by deleting the provisions above and replace them with the notice
         
     | 
| 
       2842 
     | 
    
         
            -
             * and other provisions required by the GPL or the LGPL. If you do not delete
         
     | 
| 
       2843 
     | 
    
         
            -
             * the provisions above, a recipient may use your version of this file under
         
     | 
| 
       2844 
     | 
    
         
            -
             * the terms of any one of the MPL, the GPL or the LGPL.
         
     | 
| 
       2845 
     | 
    
         
            -
             *
         
     | 
| 
       2846 
     | 
    
         
            -
             * ***** END LICENSE BLOCK ***** */
         
     | 
| 
       2847 
2290 
     | 
    
         | 
| 
       2848 
2291 
     | 
    
         
             
            define('ace/anchor', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter'], function(require, exports, module) {
         
     | 
| 
       2849 
     | 
    
         
            -
             
     | 
| 
      
 2292 
     | 
    
         
            +
             
     | 
| 
       2850 
2293 
     | 
    
         | 
| 
       2851 
2294 
     | 
    
         
             
            var oop = require("./lib/oop");
         
     | 
| 
       2852 
2295 
     | 
    
         
             
            var EventEmitter = require("./lib/event_emitter").EventEmitter;
         
     | 
| 
       2853 
2296 
     | 
    
         | 
| 
       2854 
     | 
    
         
            -
            /**
         
     | 
| 
       2855 
     | 
    
         
            -
             * class Anchor
         
     | 
| 
       2856 
     | 
    
         
            -
             *
         
     | 
| 
       2857 
     | 
    
         
            -
             * Defines the floating pointer in the document. Whenever text is inserted or deleted before the cursor, the position of the cursor is updated
         
     | 
| 
       2858 
     | 
    
         
            -
             *
         
     | 
| 
       2859 
     | 
    
         
            -
             **/
         
     | 
| 
       2860 
     | 
    
         
            -
             
     | 
| 
       2861 
2297 
     | 
    
         
             
            /**
         
     | 
| 
       2862 
2298 
     | 
    
         
             
             * new Anchor(doc, row, column)
         
     | 
| 
       2863 
2299 
     | 
    
         
             
             * - doc (Document): The document to associate with the anchor
         
     | 
| 
         @@ -2883,36 +2319,14 @@ var Anchor = exports.Anchor = function(doc, row, column) { 
     | 
|
| 
       2883 
2319 
     | 
    
         
             
            (function() {
         
     | 
| 
       2884 
2320 
     | 
    
         | 
| 
       2885 
2321 
     | 
    
         
             
                oop.implement(this, EventEmitter);
         
     | 
| 
       2886 
     | 
    
         
            -
                
         
     | 
| 
       2887 
     | 
    
         
            -
                /**
         
     | 
| 
       2888 
     | 
    
         
            -
                 * Anchor.getPosition() -> Object
         
     | 
| 
       2889 
     | 
    
         
            -
                 *
         
     | 
| 
       2890 
     | 
    
         
            -
                 * Returns an object identifying the `row` and `column` position of the current anchor.
         
     | 
| 
       2891 
     | 
    
         
            -
                 *
         
     | 
| 
       2892 
     | 
    
         
            -
                 **/
         
     | 
| 
       2893 
2322 
     | 
    
         | 
| 
       2894 
2323 
     | 
    
         
             
                this.getPosition = function() {
         
     | 
| 
       2895 
2324 
     | 
    
         
             
                    return this.$clipPositionToDocument(this.row, this.column);
         
     | 
| 
       2896 
2325 
     | 
    
         
             
                };
         
     | 
| 
       2897 
     | 
    
         
            -
             
         
     | 
| 
       2898 
     | 
    
         
            -
                 /**
         
     | 
| 
       2899 
     | 
    
         
            -
                 * Anchor.getDocument() -> Document
         
     | 
| 
       2900 
     | 
    
         
            -
                 *
         
     | 
| 
       2901 
     | 
    
         
            -
                 * Returns the current document.
         
     | 
| 
       2902 
     | 
    
         
            -
                 *
         
     | 
| 
       2903 
     | 
    
         
            -
                 **/
         
     | 
| 
       2904 
2326 
     | 
    
         | 
| 
       2905 
2327 
     | 
    
         
             
                this.getDocument = function() {
         
     | 
| 
       2906 
2328 
     | 
    
         
             
                    return this.document;
         
     | 
| 
       2907 
2329 
     | 
    
         
             
                };
         
     | 
| 
       2908 
     | 
    
         
            -
                
         
     | 
| 
       2909 
     | 
    
         
            -
                 /**
         
     | 
| 
       2910 
     | 
    
         
            -
                 * Anchor@onChange(e)
         
     | 
| 
       2911 
     | 
    
         
            -
                 * - e (Event): Contains data about the event
         
     | 
| 
       2912 
     | 
    
         
            -
                 *
         
     | 
| 
       2913 
     | 
    
         
            -
                 * Fires whenever the anchor position changes. Events that can trigger this function include `'includeText'`, `'insertLines'`, `'removeText'`, and `'removeLines'`.
         
     | 
| 
       2914 
     | 
    
         
            -
                 *
         
     | 
| 
       2915 
     | 
    
         
            -
                 **/
         
     | 
| 
       2916 
2330 
     | 
    
         | 
| 
       2917 
2331 
     | 
    
         
             
                this.onChange = function(e) {
         
     | 
| 
       2918 
2332 
     | 
    
         
             
                    var delta = e.data;
         
     | 
| 
         @@ -2979,16 +2393,6 @@ var Anchor = exports.Anchor = function(doc, row, column) { 
     | 
|
| 
       2979 
2393 
     | 
    
         
             
                    this.setPosition(row, column, true);
         
     | 
| 
       2980 
2394 
     | 
    
         
             
                };
         
     | 
| 
       2981 
2395 
     | 
    
         | 
| 
       2982 
     | 
    
         
            -
                 /**
         
     | 
| 
       2983 
     | 
    
         
            -
                 * Anchor.setPosition(row, column, noClip)
         
     | 
| 
       2984 
     | 
    
         
            -
                 * - row (Number): The row index to move the anchor to
         
     | 
| 
       2985 
     | 
    
         
            -
                 * - column (Number): The column index to move the anchor to
         
     | 
| 
       2986 
     | 
    
         
            -
                 * - noClip (Boolean): Identifies if you want the position to be clipped
         
     | 
| 
       2987 
     | 
    
         
            -
                 *
         
     | 
| 
       2988 
     | 
    
         
            -
                 * Sets the anchor position to the specified row and column. If `noClip` is `true`, the position is not clipped.
         
     | 
| 
       2989 
     | 
    
         
            -
                 *
         
     | 
| 
       2990 
     | 
    
         
            -
                 **/
         
     | 
| 
       2991 
     | 
    
         
            -
             
     | 
| 
       2992 
2396 
     | 
    
         
             
                this.setPosition = function(row, column, noClip) {
         
     | 
| 
       2993 
2397 
     | 
    
         
             
                    var pos;
         
     | 
| 
       2994 
2398 
     | 
    
         
             
                    if (noClip) {
         
     | 
| 
         @@ -3016,26 +2420,10 @@ var Anchor = exports.Anchor = function(doc, row, column) { 
     | 
|
| 
       3016 
2420 
     | 
    
         
             
                        value: pos
         
     | 
| 
       3017 
2421 
     | 
    
         
             
                    });
         
     | 
| 
       3018 
2422 
     | 
    
         
             
                };
         
     | 
| 
       3019 
     | 
    
         
            -
                
         
     | 
| 
       3020 
     | 
    
         
            -
                /**
         
     | 
| 
       3021 
     | 
    
         
            -
                 * Anchor.detach()
         
     | 
| 
       3022 
     | 
    
         
            -
                 *
         
     | 
| 
       3023 
     | 
    
         
            -
                 * When called, the `'change'` event listener is removed.
         
     | 
| 
       3024 
     | 
    
         
            -
                 *
         
     | 
| 
       3025 
     | 
    
         
            -
                 **/
         
     | 
| 
       3026 
2423 
     | 
    
         | 
| 
       3027 
2424 
     | 
    
         
             
                this.detach = function() {
         
     | 
| 
       3028 
2425 
     | 
    
         
             
                    this.document.removeEventListener("change", this.$onChange);
         
     | 
| 
       3029 
2426 
     | 
    
         
             
                };
         
     | 
| 
       3030 
     | 
    
         
            -
                
         
     | 
| 
       3031 
     | 
    
         
            -
                /** internal, hide
         
     | 
| 
       3032 
     | 
    
         
            -
                 * Anchor.clipPositionToDocument(row, column)
         
     | 
| 
       3033 
     | 
    
         
            -
                 * - row (Number): The row index to clip the anchor to
         
     | 
| 
       3034 
     | 
    
         
            -
                 * - column (Number): The column index to clip the anchor to
         
     | 
| 
       3035 
     | 
    
         
            -
                 *
         
     | 
| 
       3036 
     | 
    
         
            -
                 * Clips the anchor position to the specified row and column.
         
     | 
| 
       3037 
     | 
    
         
            -
                 *
         
     | 
| 
       3038 
     | 
    
         
            -
                 **/
         
     | 
| 
       3039 
2427 
     | 
    
         | 
| 
       3040 
2428 
     | 
    
         
             
                this.$clipPositionToDocument = function(row, column) {
         
     | 
| 
       3041 
2429 
     | 
    
         
             
                    var pos = {};
         
     | 
| 
         @@ -3062,45 +2450,9 @@ var Anchor = exports.Anchor = function(doc, row, column) { 
     | 
|
| 
       3062 
2450 
     | 
    
         
             
            }).call(Anchor.prototype);
         
     | 
| 
       3063 
2451 
     | 
    
         | 
| 
       3064 
2452 
     | 
    
         
             
            });
         
     | 
| 
       3065 
     | 
    
         
            -
            /* ***** BEGIN LICENSE BLOCK *****
         
     | 
| 
       3066 
     | 
    
         
            -
             * Version: MPL 1.1/GPL 2.0/LGPL 2.1
         
     | 
| 
       3067 
     | 
    
         
            -
             *
         
     | 
| 
       3068 
     | 
    
         
            -
             * The contents of this file are subject to the Mozilla Public License Version
         
     | 
| 
       3069 
     | 
    
         
            -
             * 1.1 (the "License"); you may not use this file except in compliance with
         
     | 
| 
       3070 
     | 
    
         
            -
             * the License. You may obtain a copy of the License at
         
     | 
| 
       3071 
     | 
    
         
            -
             * http://www.mozilla.org/MPL/
         
     | 
| 
       3072 
     | 
    
         
            -
             *
         
     | 
| 
       3073 
     | 
    
         
            -
             * Software distributed under the License is distributed on an "AS IS" basis,
         
     | 
| 
       3074 
     | 
    
         
            -
             * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
         
     | 
| 
       3075 
     | 
    
         
            -
             * for the specific language governing rights and limitations under the
         
     | 
| 
       3076 
     | 
    
         
            -
             * License.
         
     | 
| 
       3077 
     | 
    
         
            -
             *
         
     | 
| 
       3078 
     | 
    
         
            -
             * The Original Code is Ajax.org Code Editor (ACE).
         
     | 
| 
       3079 
     | 
    
         
            -
             *
         
     | 
| 
       3080 
     | 
    
         
            -
             * The Initial Developer of the Original Code is
         
     | 
| 
       3081 
     | 
    
         
            -
             * Ajax.org B.V.
         
     | 
| 
       3082 
     | 
    
         
            -
             * Portions created by the Initial Developer are Copyright (C) 2010
         
     | 
| 
       3083 
     | 
    
         
            -
             * the Initial Developer. All Rights Reserved.
         
     | 
| 
       3084 
     | 
    
         
            -
             *
         
     | 
| 
       3085 
     | 
    
         
            -
             * Contributor(s):
         
     | 
| 
       3086 
     | 
    
         
            -
             *      Fabian Jakobs <fabian AT ajax DOT org>
         
     | 
| 
       3087 
     | 
    
         
            -
             *
         
     | 
| 
       3088 
     | 
    
         
            -
             * Alternatively, the contents of this file may be used under the terms of
         
     | 
| 
       3089 
     | 
    
         
            -
             * either the GNU General Public License Version 2 or later (the "GPL"), or
         
     | 
| 
       3090 
     | 
    
         
            -
             * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
         
     | 
| 
       3091 
     | 
    
         
            -
             * in which case the provisions of the GPL or the LGPL are applicable instead
         
     | 
| 
       3092 
     | 
    
         
            -
             * of those above. If you wish to allow use of your version of this file only
         
     | 
| 
       3093 
     | 
    
         
            -
             * under the terms of either the GPL or the LGPL, and not to allow others to
         
     | 
| 
       3094 
     | 
    
         
            -
             * use your version of this file under the terms of the MPL, indicate your
         
     | 
| 
       3095 
     | 
    
         
            -
             * decision by deleting the provisions above and replace them with the notice
         
     | 
| 
       3096 
     | 
    
         
            -
             * and other provisions required by the GPL or the LGPL. If you do not delete
         
     | 
| 
       3097 
     | 
    
         
            -
             * the provisions above, a recipient may use your version of this file under
         
     | 
| 
       3098 
     | 
    
         
            -
             * the terms of any one of the MPL, the GPL or the LGPL.
         
     | 
| 
       3099 
     | 
    
         
            -
             *
         
     | 
| 
       3100 
     | 
    
         
            -
             * ***** END LICENSE BLOCK ***** */
         
     | 
| 
       3101 
2453 
     | 
    
         | 
| 
       3102 
2454 
     | 
    
         
             
            define('ace/lib/lang', ['require', 'exports', 'module' ], function(require, exports, module) {
         
     | 
| 
       3103 
     | 
    
         
            -
             
     | 
| 
      
 2455 
     | 
    
         
            +
             
     | 
| 
       3104 
2456 
     | 
    
         | 
| 
       3105 
2457 
     | 
    
         
             
            exports.stringReverse = function(string) {
         
     | 
| 
       3106 
2458 
     | 
    
         
             
                return string.split("").reverse().join("");
         
     | 
| 
         @@ -3165,9 +2517,13 @@ exports.arrayToMap = function(arr) { 
     | 
|
| 
       3165 
2517 
     | 
    
         | 
| 
       3166 
2518 
     | 
    
         
             
            };
         
     | 
| 
       3167 
2519 
     | 
    
         | 
| 
       3168 
     | 
    
         
            -
             
     | 
| 
       3169 
     | 
    
         
            -
              
     | 
| 
       3170 
     | 
    
         
            -
              
     | 
| 
      
 2520 
     | 
    
         
            +
            exports.createMap = function(props) {
         
     | 
| 
      
 2521 
     | 
    
         
            +
                var map = Object.create(null);
         
     | 
| 
      
 2522 
     | 
    
         
            +
                for (var i in props) {
         
     | 
| 
      
 2523 
     | 
    
         
            +
                    map[i] = props[i];
         
     | 
| 
      
 2524 
     | 
    
         
            +
                }
         
     | 
| 
      
 2525 
     | 
    
         
            +
                return map;
         
     | 
| 
      
 2526 
     | 
    
         
            +
            };
         
     | 
| 
       3171 
2527 
     | 
    
         
             
            exports.arrayRemove = function(array, value) {
         
     | 
| 
       3172 
2528 
     | 
    
         
             
              for (var i = 0; i <= array.length; i++) {
         
     | 
| 
       3173 
2529 
     | 
    
         
             
                if (value === array[i]) {
         
     | 
| 
         @@ -3180,6 +2536,20 @@ exports.escapeRegExp = function(str) { 
     | 
|
| 
       3180 
2536 
     | 
    
         
             
                return str.replace(/([.*+?^${}()|[\]\/\\])/g, '\\$1');
         
     | 
| 
       3181 
2537 
     | 
    
         
             
            };
         
     | 
| 
       3182 
2538 
     | 
    
         | 
| 
      
 2539 
     | 
    
         
            +
            exports.getMatchOffsets = function(string, regExp) {
         
     | 
| 
      
 2540 
     | 
    
         
            +
                var matches = [];
         
     | 
| 
      
 2541 
     | 
    
         
            +
             
     | 
| 
      
 2542 
     | 
    
         
            +
                string.replace(regExp, function(str) {
         
     | 
| 
      
 2543 
     | 
    
         
            +
                    matches.push({
         
     | 
| 
      
 2544 
     | 
    
         
            +
                        offset: arguments[arguments.length-2],
         
     | 
| 
      
 2545 
     | 
    
         
            +
                        length: str.length
         
     | 
| 
      
 2546 
     | 
    
         
            +
                    });
         
     | 
| 
      
 2547 
     | 
    
         
            +
                });
         
     | 
| 
      
 2548 
     | 
    
         
            +
             
     | 
| 
      
 2549 
     | 
    
         
            +
                return matches;
         
     | 
| 
      
 2550 
     | 
    
         
            +
            };
         
     | 
| 
      
 2551 
     | 
    
         
            +
             
     | 
| 
      
 2552 
     | 
    
         
            +
             
     | 
| 
       3183 
2553 
     | 
    
         
             
            exports.deferredCall = function(fcn) {
         
     | 
| 
       3184 
2554 
     | 
    
         | 
| 
       3185 
2555 
     | 
    
         
             
                var timer = null;
         
     | 
| 
         @@ -3353,13 +2723,6 @@ EventTarget.prototype = { 
     | 
|
| 
       3353 
2723 
     | 
    
         
             
                    }            
         
     | 
| 
       3354 
2724 
     | 
    
         
             
                }
         
     | 
| 
       3355 
2725 
     | 
    
         
             
            };
         
     | 
| 
       3356 
     | 
    
         
            -
            /**
         
     | 
| 
       3357 
     | 
    
         
            -
             * Convenient way to read through strings.
         
     | 
| 
       3358 
     | 
    
         
            -
             * @namespace parserlib.util
         
     | 
| 
       3359 
     | 
    
         
            -
             * @class StringReader
         
     | 
| 
       3360 
     | 
    
         
            -
             * @constructor
         
     | 
| 
       3361 
     | 
    
         
            -
             * @param {String} text The text to read.
         
     | 
| 
       3362 
     | 
    
         
            -
             */
         
     | 
| 
       3363 
2726 
     | 
    
         
             
            function StringReader(text){
         
     | 
| 
       3364 
2727 
     | 
    
         | 
| 
       3365 
2728 
     | 
    
         
             
                /**
         
     | 
| 
         @@ -3369,31 +2732,8 @@ function StringReader(text){ 
     | 
|
| 
       3369 
2732 
     | 
    
         
             
                 * @private
         
     | 
| 
       3370 
2733 
     | 
    
         
             
                 */
         
     | 
| 
       3371 
2734 
     | 
    
         
             
                this._input = text.replace(/\n\r?/g, "\n");
         
     | 
| 
       3372 
     | 
    
         
            -
             
     | 
| 
       3373 
     | 
    
         
            -
             
     | 
| 
       3374 
     | 
    
         
            -
                /**
         
     | 
| 
       3375 
     | 
    
         
            -
                 * The row for the character to be read next.
         
     | 
| 
       3376 
     | 
    
         
            -
                 * @property _line
         
     | 
| 
       3377 
     | 
    
         
            -
                 * @type int
         
     | 
| 
       3378 
     | 
    
         
            -
                 * @private
         
     | 
| 
       3379 
     | 
    
         
            -
                 */
         
     | 
| 
       3380 
2735 
     | 
    
         
             
                this._line = 1;
         
     | 
| 
       3381 
     | 
    
         
            -
             
     | 
| 
       3382 
     | 
    
         
            -
             
     | 
| 
       3383 
     | 
    
         
            -
                /**
         
     | 
| 
       3384 
     | 
    
         
            -
                 * The column for the character to be read next.
         
     | 
| 
       3385 
     | 
    
         
            -
                 * @property _col
         
     | 
| 
       3386 
     | 
    
         
            -
                 * @type int
         
     | 
| 
       3387 
     | 
    
         
            -
                 * @private
         
     | 
| 
       3388 
     | 
    
         
            -
                 */
         
     | 
| 
       3389 
2736 
     | 
    
         
             
                this._col = 1;
         
     | 
| 
       3390 
     | 
    
         
            -
             
     | 
| 
       3391 
     | 
    
         
            -
                /**
         
     | 
| 
       3392 
     | 
    
         
            -
                 * The index of the character in the input to be read next.
         
     | 
| 
       3393 
     | 
    
         
            -
                 * @property _cursor
         
     | 
| 
       3394 
     | 
    
         
            -
                 * @type int
         
     | 
| 
       3395 
     | 
    
         
            -
                 * @private
         
     | 
| 
       3396 
     | 
    
         
            -
                 */
         
     | 
| 
       3397 
2737 
     | 
    
         
             
                this._cursor = 0;
         
     | 
| 
       3398 
2738 
     | 
    
         
             
            }
         
     | 
| 
       3399 
2739 
     | 
    
         | 
| 
         @@ -3527,12 +2867,6 @@ StringReader.prototype = { 
     | 
|
| 
       3527 
2867 
     | 
    
         | 
| 
       3528 
2868 
     | 
    
         
             
                    var buffer = "",
         
     | 
| 
       3529 
2869 
     | 
    
         
             
                        c;
         
     | 
| 
       3530 
     | 
    
         
            -
             
     | 
| 
       3531 
     | 
    
         
            -
                    /*
         
     | 
| 
       3532 
     | 
    
         
            -
                     * First, buffer must be the same length as the pattern.
         
     | 
| 
       3533 
     | 
    
         
            -
                     * Then, buffer must end with the pattern or else reach the
         
     | 
| 
       3534 
     | 
    
         
            -
                     * end of the input.
         
     | 
| 
       3535 
     | 
    
         
            -
                     */
         
     | 
| 
       3536 
2870 
     | 
    
         
             
                    while (buffer.length < pattern.length || buffer.lastIndexOf(pattern) != buffer.length - pattern.length){
         
     | 
| 
       3537 
2871 
     | 
    
         
             
                        c = this.read();
         
     | 
| 
       3538 
2872 
     | 
    
         
             
                        if (c){
         
     | 
| 
         @@ -3620,15 +2954,6 @@ StringReader.prototype = { 
     | 
|
| 
       3620 
2954 
     | 
    
         
             
                }
         
     | 
| 
       3621 
2955 
     | 
    
         | 
| 
       3622 
2956 
     | 
    
         
             
            };
         
     | 
| 
       3623 
     | 
    
         
            -
            /**
         
     | 
| 
       3624 
     | 
    
         
            -
             * Type to use when a syntax error occurs.
         
     | 
| 
       3625 
     | 
    
         
            -
             * @class SyntaxError
         
     | 
| 
       3626 
     | 
    
         
            -
             * @namespace parserlib.util
         
     | 
| 
       3627 
     | 
    
         
            -
             * @constructor
         
     | 
| 
       3628 
     | 
    
         
            -
             * @param {String} message The error message.
         
     | 
| 
       3629 
     | 
    
         
            -
             * @param {int} line The line at which the error occurred.
         
     | 
| 
       3630 
     | 
    
         
            -
             * @param {int} col The column at which the error occurred.
         
     | 
| 
       3631 
     | 
    
         
            -
             */
         
     | 
| 
       3632 
2957 
     | 
    
         
             
            function SyntaxError(message, line, col){
         
     | 
| 
       3633 
2958 
     | 
    
         | 
| 
       3634 
2959 
     | 
    
         
             
                /**
         
     | 
| 
         @@ -3637,34 +2962,13 @@ function SyntaxError(message, line, col){ 
     | 
|
| 
       3637 
2962 
     | 
    
         
             
                 * @property col
         
     | 
| 
       3638 
2963 
     | 
    
         
             
                 */
         
     | 
| 
       3639 
2964 
     | 
    
         
             
                this.col = col;
         
     | 
| 
       3640 
     | 
    
         
            -
             
     | 
| 
       3641 
     | 
    
         
            -
                /**
         
     | 
| 
       3642 
     | 
    
         
            -
                 * The line at which the error occurred.
         
     | 
| 
       3643 
     | 
    
         
            -
                 * @type int
         
     | 
| 
       3644 
     | 
    
         
            -
                 * @property line
         
     | 
| 
       3645 
     | 
    
         
            -
                 */
         
     | 
| 
       3646 
2965 
     | 
    
         
             
                this.line = line;
         
     | 
| 
       3647 
     | 
    
         
            -
             
     | 
| 
       3648 
     | 
    
         
            -
                /**
         
     | 
| 
       3649 
     | 
    
         
            -
                 * The text representation of the unit.
         
     | 
| 
       3650 
     | 
    
         
            -
                 * @type String
         
     | 
| 
       3651 
     | 
    
         
            -
                 * @property text
         
     | 
| 
       3652 
     | 
    
         
            -
                 */
         
     | 
| 
       3653 
2966 
     | 
    
         
             
                this.message = message;
         
     | 
| 
       3654 
2967 
     | 
    
         | 
| 
       3655 
2968 
     | 
    
         
             
            }
         
     | 
| 
       3656 
2969 
     | 
    
         | 
| 
       3657 
2970 
     | 
    
         
             
            //inherit from Error
         
     | 
| 
       3658 
2971 
     | 
    
         
             
            SyntaxError.prototype = new Error();
         
     | 
| 
       3659 
     | 
    
         
            -
            /**
         
     | 
| 
       3660 
     | 
    
         
            -
             * Base type to represent a single syntactic unit.
         
     | 
| 
       3661 
     | 
    
         
            -
             * @class SyntaxUnit
         
     | 
| 
       3662 
     | 
    
         
            -
             * @namespace parserlib.util
         
     | 
| 
       3663 
     | 
    
         
            -
             * @constructor
         
     | 
| 
       3664 
     | 
    
         
            -
             * @param {String} text The text of the unit.
         
     | 
| 
       3665 
     | 
    
         
            -
             * @param {int} line The line of text on which the unit resides.
         
     | 
| 
       3666 
     | 
    
         
            -
             * @param {int} col The column of text on which the unit resides.
         
     | 
| 
       3667 
     | 
    
         
            -
             */
         
     | 
| 
       3668 
2972 
     | 
    
         
             
            function SyntaxUnit(text, line, col, type){
         
     | 
| 
       3669 
2973 
     | 
    
         | 
| 
       3670 
2974 
     | 
    
         | 
| 
         @@ -3674,26 +2978,8 @@ function SyntaxUnit(text, line, col, type){ 
     | 
|
| 
       3674 
2978 
     | 
    
         
             
                 * @property col
         
     | 
| 
       3675 
2979 
     | 
    
         
             
                 */
         
     | 
| 
       3676 
2980 
     | 
    
         
             
                this.col = col;
         
     | 
| 
       3677 
     | 
    
         
            -
             
     | 
| 
       3678 
     | 
    
         
            -
                /**
         
     | 
| 
       3679 
     | 
    
         
            -
                 * The line of text on which the unit resides.
         
     | 
| 
       3680 
     | 
    
         
            -
                 * @type int
         
     | 
| 
       3681 
     | 
    
         
            -
                 * @property line
         
     | 
| 
       3682 
     | 
    
         
            -
                 */
         
     | 
| 
       3683 
2981 
     | 
    
         
             
                this.line = line;
         
     | 
| 
       3684 
     | 
    
         
            -
             
     | 
| 
       3685 
     | 
    
         
            -
                /**
         
     | 
| 
       3686 
     | 
    
         
            -
                 * The text representation of the unit.
         
     | 
| 
       3687 
     | 
    
         
            -
                 * @type String
         
     | 
| 
       3688 
     | 
    
         
            -
                 * @property text
         
     | 
| 
       3689 
     | 
    
         
            -
                 */
         
     | 
| 
       3690 
2982 
     | 
    
         
             
                this.text = text;
         
     | 
| 
       3691 
     | 
    
         
            -
             
     | 
| 
       3692 
     | 
    
         
            -
                /**
         
     | 
| 
       3693 
     | 
    
         
            -
                 * The type of syntax unit.
         
     | 
| 
       3694 
     | 
    
         
            -
                 * @type int
         
     | 
| 
       3695 
     | 
    
         
            -
                 * @property type
         
     | 
| 
       3696 
     | 
    
         
            -
                 */
         
     | 
| 
       3697 
2983 
     | 
    
         
             
                this.type = type;
         
     | 
| 
       3698 
2984 
     | 
    
         
             
            }
         
     | 
| 
       3699 
2985 
     | 
    
         | 
| 
         @@ -3734,7 +3020,6 @@ SyntaxUnit.prototype = { 
     | 
|
| 
       3734 
3020 
     | 
    
         
             
                }
         
     | 
| 
       3735 
3021 
     | 
    
         | 
| 
       3736 
3022 
     | 
    
         
             
            };
         
     | 
| 
       3737 
     | 
    
         
            -
            /*global StringReader, SyntaxError*/
         
     | 
| 
       3738 
3023 
     | 
    
         | 
| 
       3739 
3024 
     | 
    
         
             
            /**
         
     | 
| 
       3740 
3025 
     | 
    
         
             
             * Generic TokenStream providing base functionality.
         
     | 
| 
         @@ -3753,37 +3038,9 @@ function TokenStreamBase(input, tokenData){ 
     | 
|
| 
       3753 
3038 
     | 
    
         
             
                 * @private
         
     | 
| 
       3754 
3039 
     | 
    
         
             
                 */
         
     | 
| 
       3755 
3040 
     | 
    
         
             
                this._reader = input ? new StringReader(input.toString()) : null;
         
     | 
| 
       3756 
     | 
    
         
            -
                
         
     | 
| 
       3757 
     | 
    
         
            -
                /**
         
     | 
| 
       3758 
     | 
    
         
            -
                 * Token object for the last consumed token.
         
     | 
| 
       3759 
     | 
    
         
            -
                 * @type Token
         
     | 
| 
       3760 
     | 
    
         
            -
                 * @property _token
         
     | 
| 
       3761 
     | 
    
         
            -
                 * @private
         
     | 
| 
       3762 
     | 
    
         
            -
                 */
         
     | 
| 
       3763 
     | 
    
         
            -
                this._token = null;    
         
     | 
| 
       3764 
     | 
    
         
            -
                
         
     | 
| 
       3765 
     | 
    
         
            -
                /**
         
     | 
| 
       3766 
     | 
    
         
            -
                 * The array of token information.
         
     | 
| 
       3767 
     | 
    
         
            -
                 * @type Array
         
     | 
| 
       3768 
     | 
    
         
            -
                 * @property _tokenData
         
     | 
| 
       3769 
     | 
    
         
            -
                 * @private
         
     | 
| 
       3770 
     | 
    
         
            -
                 */
         
     | 
| 
      
 3041 
     | 
    
         
            +
                this._token = null;
         
     | 
| 
       3771 
3042 
     | 
    
         
             
                this._tokenData = tokenData;
         
     | 
| 
       3772 
     | 
    
         
            -
                
         
     | 
| 
       3773 
     | 
    
         
            -
                /**
         
     | 
| 
       3774 
     | 
    
         
            -
                 * Lookahead token buffer.
         
     | 
| 
       3775 
     | 
    
         
            -
                 * @type Array
         
     | 
| 
       3776 
     | 
    
         
            -
                 * @property _lt
         
     | 
| 
       3777 
     | 
    
         
            -
                 * @private
         
     | 
| 
       3778 
     | 
    
         
            -
                 */
         
     | 
| 
       3779 
3043 
     | 
    
         
             
                this._lt = [];
         
     | 
| 
       3780 
     | 
    
         
            -
                
         
     | 
| 
       3781 
     | 
    
         
            -
                /**
         
     | 
| 
       3782 
     | 
    
         
            -
                 * Lookahead token buffer index.
         
     | 
| 
       3783 
     | 
    
         
            -
                 * @type int
         
     | 
| 
       3784 
     | 
    
         
            -
                 * @property _ltIndex
         
     | 
| 
       3785 
     | 
    
         
            -
                 * @private
         
     | 
| 
       3786 
     | 
    
         
            -
                 */
         
     | 
| 
       3787 
3044 
     | 
    
         
             
                this._ltIndex = 0;
         
     | 
| 
       3788 
3045 
     | 
    
         | 
| 
       3789 
3046 
     | 
    
         
             
                this._ltIndexCache = [];
         
     | 
| 
         @@ -4146,31 +3403,6 @@ EventTarget : EventTarget, 
     | 
|
| 
       4146 
3403 
     | 
    
         
             
            TokenStreamBase : TokenStreamBase
         
     | 
| 
       4147 
3404 
     | 
    
         
             
            };
         
     | 
| 
       4148 
3405 
     | 
    
         
             
            })();
         
     | 
| 
       4149 
     | 
    
         
            -
             
     | 
| 
       4150 
     | 
    
         
            -
             
     | 
| 
       4151 
     | 
    
         
            -
            /* 
         
     | 
| 
       4152 
     | 
    
         
            -
            Parser-Lib
         
     | 
| 
       4153 
     | 
    
         
            -
            Copyright (c) 2009-2011 Nicholas C. Zakas. All rights reserved.
         
     | 
| 
       4154 
     | 
    
         
            -
             
     | 
| 
       4155 
     | 
    
         
            -
            Permission is hereby granted, free of charge, to any person obtaining a copy
         
     | 
| 
       4156 
     | 
    
         
            -
            of this software and associated documentation files (the "Software"), to deal
         
     | 
| 
       4157 
     | 
    
         
            -
            in the Software without restriction, including without limitation the rights
         
     | 
| 
       4158 
     | 
    
         
            -
            to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
         
     | 
| 
       4159 
     | 
    
         
            -
            copies of the Software, and to permit persons to whom the Software is
         
     | 
| 
       4160 
     | 
    
         
            -
            furnished to do so, subject to the following conditions:
         
     | 
| 
       4161 
     | 
    
         
            -
             
     | 
| 
       4162 
     | 
    
         
            -
            The above copyright notice and this permission notice shall be included in
         
     | 
| 
       4163 
     | 
    
         
            -
            all copies or substantial portions of the Software.
         
     | 
| 
       4164 
     | 
    
         
            -
             
     | 
| 
       4165 
     | 
    
         
            -
            THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
         
     | 
| 
       4166 
     | 
    
         
            -
            IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
         
     | 
| 
       4167 
     | 
    
         
            -
            FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
         
     | 
| 
       4168 
     | 
    
         
            -
            AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
         
     | 
| 
       4169 
     | 
    
         
            -
            LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
         
     | 
| 
       4170 
     | 
    
         
            -
            OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
         
     | 
| 
       4171 
     | 
    
         
            -
            THE SOFTWARE.
         
     | 
| 
       4172 
     | 
    
         
            -
             
     | 
| 
       4173 
     | 
    
         
            -
            */
         
     | 
| 
       4174 
3406 
     | 
    
         
             
            /* Version v0.1.6, Build time: 2-March-2012 02:44:32 */
         
     | 
| 
       4175 
3407 
     | 
    
         
             
            (function(){
         
     | 
| 
       4176 
3408 
     | 
    
         
             
            var EventTarget = parserlib.util.EventTarget,
         
     | 
| 
         @@ -4322,7 +3554,6 @@ var Colors = { 
     | 
|
| 
       4322 
3554 
     | 
    
         
             
                yellow          :"#ffff00",
         
     | 
| 
       4323 
3555 
     | 
    
         
             
                yellowgreen     :"#9acd32"
         
     | 
| 
       4324 
3556 
     | 
    
         
             
            };
         
     | 
| 
       4325 
     | 
    
         
            -
            /*global SyntaxUnit, Parser*/
         
     | 
| 
       4326 
3557 
     | 
    
         
             
            /**
         
     | 
| 
       4327 
3558 
     | 
    
         
             
             * Represents a selector combinator (whitespace, +, >).
         
     | 
| 
       4328 
3559 
     | 
    
         
             
             * @namespace parserlib.css
         
     | 
| 
         @@ -4336,12 +3567,6 @@ var Colors = { 
     | 
|
| 
       4336 
3567 
     | 
    
         
             
            function Combinator(text, line, col){
         
     | 
| 
       4337 
3568 
     | 
    
         | 
| 
       4338 
3569 
     | 
    
         
             
                SyntaxUnit.call(this, text, line, col, Parser.COMBINATOR_TYPE);
         
     | 
| 
       4339 
     | 
    
         
            -
             
     | 
| 
       4340 
     | 
    
         
            -
                /**
         
     | 
| 
       4341 
     | 
    
         
            -
                 * The type of modifier.
         
     | 
| 
       4342 
     | 
    
         
            -
                 * @type String
         
     | 
| 
       4343 
     | 
    
         
            -
                 * @property type
         
     | 
| 
       4344 
     | 
    
         
            -
                 */
         
     | 
| 
       4345 
3570 
     | 
    
         
             
                this.type = "unknown";
         
     | 
| 
       4346 
3571 
     | 
    
         | 
| 
       4347 
3572 
     | 
    
         
             
                //pretty simple
         
     | 
| 
         @@ -4359,9 +3584,6 @@ function Combinator(text, line, col){ 
     | 
|
| 
       4359 
3584 
     | 
    
         | 
| 
       4360 
3585 
     | 
    
         
             
            Combinator.prototype = new SyntaxUnit();
         
     | 
| 
       4361 
3586 
     | 
    
         
             
            Combinator.prototype.constructor = Combinator;
         
     | 
| 
       4362 
     | 
    
         
            -
             
     | 
| 
       4363 
     | 
    
         
            -
             
     | 
| 
       4364 
     | 
    
         
            -
            /*global SyntaxUnit, Parser*/
         
     | 
| 
       4365 
3587 
     | 
    
         
             
            /**
         
     | 
| 
       4366 
3588 
     | 
    
         
             
             * Represents a media feature, such as max-width:500.
         
     | 
| 
       4367 
3589 
     | 
    
         
             
             * @namespace parserlib.css
         
     | 
| 
         @@ -4374,27 +3596,12 @@ Combinator.prototype.constructor = Combinator; 
     | 
|
| 
       4374 
3596 
     | 
    
         
             
            function MediaFeature(name, value){
         
     | 
| 
       4375 
3597 
     | 
    
         | 
| 
       4376 
3598 
     | 
    
         
             
                SyntaxUnit.call(this, "(" + name + (value !== null ? ":" + value : "") + ")", name.startLine, name.startCol, Parser.MEDIA_FEATURE_TYPE);
         
     | 
| 
       4377 
     | 
    
         
            -
             
     | 
| 
       4378 
     | 
    
         
            -
                /**
         
     | 
| 
       4379 
     | 
    
         
            -
                 * The name of the media feature
         
     | 
| 
       4380 
     | 
    
         
            -
                 * @type String
         
     | 
| 
       4381 
     | 
    
         
            -
                 * @property name
         
     | 
| 
       4382 
     | 
    
         
            -
                 */
         
     | 
| 
       4383 
3599 
     | 
    
         
             
                this.name = name;
         
     | 
| 
       4384 
     | 
    
         
            -
             
     | 
| 
       4385 
     | 
    
         
            -
                /**
         
     | 
| 
       4386 
     | 
    
         
            -
                 * The value for the feature or null if there is none.
         
     | 
| 
       4387 
     | 
    
         
            -
                 * @type SyntaxUnit
         
     | 
| 
       4388 
     | 
    
         
            -
                 * @property value
         
     | 
| 
       4389 
     | 
    
         
            -
                 */
         
     | 
| 
       4390 
3600 
     | 
    
         
             
                this.value = value;
         
     | 
| 
       4391 
3601 
     | 
    
         
             
            }
         
     | 
| 
       4392 
3602 
     | 
    
         | 
| 
       4393 
3603 
     | 
    
         
             
            MediaFeature.prototype = new SyntaxUnit();
         
     | 
| 
       4394 
3604 
     | 
    
         
             
            MediaFeature.prototype.constructor = MediaFeature;
         
     | 
| 
       4395 
     | 
    
         
            -
             
     | 
| 
       4396 
     | 
    
         
            -
             
     | 
| 
       4397 
     | 
    
         
            -
            /*global SyntaxUnit, Parser*/
         
     | 
| 
       4398 
3605 
     | 
    
         
             
            /**
         
     | 
| 
       4399 
3606 
     | 
    
         
             
             * Represents an individual media query.
         
     | 
| 
       4400 
3607 
     | 
    
         
             
             * @namespace parserlib.css
         
     | 
| 
         @@ -4410,26 +3617,8 @@ MediaFeature.prototype.constructor = MediaFeature; 
     | 
|
| 
       4410 
3617 
     | 
    
         
             
            function MediaQuery(modifier, mediaType, features, line, col){
         
     | 
| 
       4411 
3618 
     | 
    
         | 
| 
       4412 
3619 
     | 
    
         
             
                SyntaxUnit.call(this, (modifier ? modifier + " ": "") + (mediaType ? mediaType + " " : "") + features.join(" and "), line, col, Parser.MEDIA_QUERY_TYPE);
         
     | 
| 
       4413 
     | 
    
         
            -
             
     | 
| 
       4414 
     | 
    
         
            -
                /**
         
     | 
| 
       4415 
     | 
    
         
            -
                 * The media modifier ("not" or "only")
         
     | 
| 
       4416 
     | 
    
         
            -
                 * @type String
         
     | 
| 
       4417 
     | 
    
         
            -
                 * @property modifier
         
     | 
| 
       4418 
     | 
    
         
            -
                 */
         
     | 
| 
       4419 
3620 
     | 
    
         
             
                this.modifier = modifier;
         
     | 
| 
       4420 
     | 
    
         
            -
             
     | 
| 
       4421 
     | 
    
         
            -
                /**
         
     | 
| 
       4422 
     | 
    
         
            -
                 * The mediaType (i.e., "print")
         
     | 
| 
       4423 
     | 
    
         
            -
                 * @type String
         
     | 
| 
       4424 
     | 
    
         
            -
                 * @property mediaType
         
     | 
| 
       4425 
     | 
    
         
            -
                 */
         
     | 
| 
       4426 
     | 
    
         
            -
                this.mediaType = mediaType;    
         
     | 
| 
       4427 
     | 
    
         
            -
                
         
     | 
| 
       4428 
     | 
    
         
            -
                /**
         
     | 
| 
       4429 
     | 
    
         
            -
                 * The parts that make up the selector.
         
     | 
| 
       4430 
     | 
    
         
            -
                 * @type Array
         
     | 
| 
       4431 
     | 
    
         
            -
                 * @property features
         
     | 
| 
       4432 
     | 
    
         
            -
                 */
         
     | 
| 
      
 3621 
     | 
    
         
            +
                this.mediaType = mediaType;
         
     | 
| 
       4433 
3622 
     | 
    
         
             
                this.features = features;
         
     | 
| 
       4434 
3623 
     | 
    
         | 
| 
       4435 
3624 
     | 
    
         
             
            }
         
     | 
| 
         @@ -4437,11 +3626,6 @@ function MediaQuery(modifier, mediaType, features, line, col){ 
     | 
|
| 
       4437 
3626 
     | 
    
         
             
            MediaQuery.prototype = new SyntaxUnit();
         
     | 
| 
       4438 
3627 
     | 
    
         
             
            MediaQuery.prototype.constructor = MediaQuery;
         
     | 
| 
       4439 
3628 
     | 
    
         | 
| 
       4440 
     | 
    
         
            -
             
     | 
| 
       4441 
     | 
    
         
            -
            /*global Tokens, TokenStream, SyntaxError, Properties, Validation, ValidationError, SyntaxUnit,
         
     | 
| 
       4442 
     | 
    
         
            -
                PropertyValue, PropertyValuePart, SelectorPart, SelectorSubPart, Selector,
         
     | 
| 
       4443 
     | 
    
         
            -
                PropertyName, Combinator, MediaFeature, MediaQuery, EventTarget */
         
     | 
| 
       4444 
     | 
    
         
            -
             
     | 
| 
       4445 
3629 
     | 
    
         
             
            /**
         
     | 
| 
       4446 
3630 
     | 
    
         
             
             * A CSS3 parser.
         
     | 
| 
       4447 
3631 
     | 
    
         
             
             * @namespace parserlib.css
         
     | 
| 
         @@ -4742,9 +3926,6 @@ Parser.prototype = function(){ 
     | 
|
| 
       4742 
3926 
     | 
    
         
             
                            }
         
     | 
| 
       4743 
3927 
     | 
    
         | 
| 
       4744 
3928 
     | 
    
         
             
                            tokenStream.mustMatch([Tokens.STRING, Tokens.URI]);
         
     | 
| 
       4745 
     | 
    
         
            -
                            /*if (!tokenStream.match(Tokens.STRING)){
         
     | 
| 
       4746 
     | 
    
         
            -
                                tokenStream.mustMatch(Tokens.URI);
         
     | 
| 
       4747 
     | 
    
         
            -
                            }*/
         
     | 
| 
       4748 
3929 
     | 
    
         | 
| 
       4749 
3930 
     | 
    
         
             
                            //grab the URI value
         
     | 
| 
       4750 
3931 
     | 
    
         
             
                            uri = tokenStream.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/, "$1");                
         
     | 
| 
         @@ -5259,12 +4440,6 @@ Parser.prototype = function(){ 
     | 
|
| 
       5259 
4440 
     | 
    
         
             
                            var tokenStream = this._tokenStream,
         
     | 
| 
       5260 
4441 
     | 
    
         
             
                                tt,
         
     | 
| 
       5261 
4442 
     | 
    
         
             
                                selectors;
         
     | 
| 
       5262 
     | 
    
         
            -
             
     | 
| 
       5263 
     | 
    
         
            -
             
     | 
| 
       5264 
     | 
    
         
            -
                            /*
         
     | 
| 
       5265 
     | 
    
         
            -
                             * Error Recovery: If even a single selector fails to parse,
         
     | 
| 
       5266 
     | 
    
         
            -
                             * then the entire ruleset should be thrown away.
         
     | 
| 
       5267 
     | 
    
         
            -
                             */
         
     | 
| 
       5268 
4443 
     | 
    
         
             
                            try {
         
     | 
| 
       5269 
4444 
     | 
    
         
             
                                selectors = this._selectors_group();
         
     | 
| 
       5270 
4445 
     | 
    
         
             
                            } catch (ex){
         
     | 
| 
         @@ -6643,14 +5818,6 @@ Parser.prototype = function(){ 
     | 
|
| 
       6643 
5818 
     | 
    
         | 
| 
       6644 
5819 
     | 
    
         
             
                return proto;
         
     | 
| 
       6645 
5820 
     | 
    
         
             
            }();
         
     | 
| 
       6646 
     | 
    
         
            -
             
     | 
| 
       6647 
     | 
    
         
            -
             
     | 
| 
       6648 
     | 
    
         
            -
            /*
         
     | 
| 
       6649 
     | 
    
         
            -
            nth
         
     | 
| 
       6650 
     | 
    
         
            -
              : S* [ ['-'|'+']? INTEGER? {N} [ S* ['-'|'+'] S* INTEGER ]? |
         
     | 
| 
       6651 
     | 
    
         
            -
                     ['-'|'+']? INTEGER | {O}{D}{D} | {E}{V}{E}{N} ] S*
         
     | 
| 
       6652 
     | 
    
         
            -
              ;
         
     | 
| 
       6653 
     | 
    
         
            -
            */
         
     | 
| 
       6654 
5821 
     | 
    
         
             
            /*global Validation, ValidationTypes, ValidationError*/
         
     | 
| 
       6655 
5822 
     | 
    
         
             
            var Properties = {
         
     | 
| 
       6656 
5823 
     | 
    
         | 
| 
         @@ -7129,7 +6296,6 @@ var Properties = { 
     | 
|
| 
       7129 
6296 
     | 
    
         
             
                "z-index"                       : "<integer> | auto | inherit",
         
     | 
| 
       7130 
6297 
     | 
    
         
             
                "zoom"                          : "<number> | <percentage> | normal"
         
     | 
| 
       7131 
6298 
     | 
    
         
             
            };
         
     | 
| 
       7132 
     | 
    
         
            -
            /*global SyntaxUnit, Parser*/
         
     | 
| 
       7133 
6299 
     | 
    
         
             
            /**
         
     | 
| 
       7134 
6300 
     | 
    
         
             
             * Represents a selector combinator (whitespace, +, >).
         
     | 
| 
       7135 
6301 
     | 
    
         
             
             * @namespace parserlib.css
         
     | 
| 
         @@ -7141,15 +6307,9 @@ var Properties = { 
     | 
|
| 
       7141 
6307 
     | 
    
         
             
             * @param {int} line The line of text on which the unit resides.
         
     | 
| 
       7142 
6308 
     | 
    
         
             
             * @param {int} col The column of text on which the unit resides.
         
     | 
| 
       7143 
6309 
     | 
    
         
             
             */
         
     | 
| 
       7144 
     | 
    
         
            -
            function PropertyName(text, hack, line, col){
         
     | 
| 
       7145 
     | 
    
         
            -
                
         
     | 
| 
       7146 
     | 
    
         
            -
                SyntaxUnit.call(this, text, line, col, Parser.PROPERTY_NAME_TYPE);
         
     | 
| 
       7147 
     | 
    
         
            -
             
     | 
| 
       7148 
     | 
    
         
            -
                /**
         
     | 
| 
       7149 
     | 
    
         
            -
                 * The type of IE hack applied ("*", "_", or null).
         
     | 
| 
       7150 
     | 
    
         
            -
                 * @type String
         
     | 
| 
       7151 
     | 
    
         
            -
                 * @property hack
         
     | 
| 
       7152 
     | 
    
         
            -
                 */
         
     | 
| 
      
 6310 
     | 
    
         
            +
            function PropertyName(text, hack, line, col){
         
     | 
| 
      
 6311 
     | 
    
         
            +
                
         
     | 
| 
      
 6312 
     | 
    
         
            +
                SyntaxUnit.call(this, text, line, col, Parser.PROPERTY_NAME_TYPE);
         
     | 
| 
       7153 
6313 
     | 
    
         
             
                this.hack = hack;
         
     | 
| 
       7154 
6314 
     | 
    
         | 
| 
       7155 
6315 
     | 
    
         
             
            }
         
     | 
| 
         @@ -7159,8 +6319,6 @@ PropertyName.prototype.constructor = PropertyName; 
     | 
|
| 
       7159 
6319 
     | 
    
         
             
            PropertyName.prototype.toString = function(){
         
     | 
| 
       7160 
6320 
     | 
    
         
             
                return (this.hack ? this.hack : "") + this.text;
         
     | 
| 
       7161 
6321 
     | 
    
         
             
            };
         
     | 
| 
       7162 
     | 
    
         
            -
             
     | 
| 
       7163 
     | 
    
         
            -
            /*global SyntaxUnit, Parser*/
         
     | 
| 
       7164 
6322 
     | 
    
         
             
            /**
         
     | 
| 
       7165 
6323 
     | 
    
         
             
             * Represents a single part of a CSS property value, meaning that it represents
         
     | 
| 
       7166 
6324 
     | 
    
         
             
             * just everything single part between ":" and ";". If there are multiple values
         
     | 
| 
         @@ -7176,21 +6334,12 @@ PropertyName.prototype.toString = function(){ 
     | 
|
| 
       7176 
6334 
     | 
    
         
             
            function PropertyValue(parts, line, col){
         
     | 
| 
       7177 
6335 
     | 
    
         | 
| 
       7178 
6336 
     | 
    
         
             
                SyntaxUnit.call(this, parts.join(" "), line, col, Parser.PROPERTY_VALUE_TYPE);
         
     | 
| 
       7179 
     | 
    
         
            -
                
         
     | 
| 
       7180 
     | 
    
         
            -
                /**
         
     | 
| 
       7181 
     | 
    
         
            -
                 * The parts that make up the selector.
         
     | 
| 
       7182 
     | 
    
         
            -
                 * @type Array
         
     | 
| 
       7183 
     | 
    
         
            -
                 * @property parts
         
     | 
| 
       7184 
     | 
    
         
            -
                 */
         
     | 
| 
       7185 
6337 
     | 
    
         
             
                this.parts = parts;
         
     | 
| 
       7186 
6338 
     | 
    
         | 
| 
       7187 
6339 
     | 
    
         
             
            }
         
     | 
| 
       7188 
6340 
     | 
    
         | 
| 
       7189 
6341 
     | 
    
         
             
            PropertyValue.prototype = new SyntaxUnit();
         
     | 
| 
       7190 
6342 
     | 
    
         
             
            PropertyValue.prototype.constructor = PropertyValue;
         
     | 
| 
       7191 
     | 
    
         
            -
             
     | 
| 
       7192 
     | 
    
         
            -
             
     | 
| 
       7193 
     | 
    
         
            -
            /*global SyntaxUnit, Parser*/
         
     | 
| 
       7194 
6343 
     | 
    
         
             
            /**
         
     | 
| 
       7195 
6344 
     | 
    
         
             
             * A utility class that allows for easy iteration over the various parts of a
         
     | 
| 
       7196 
6345 
     | 
    
         
             
             * property value.
         
     | 
| 
         @@ -7208,28 +6357,8 @@ function PropertyValueIterator(value){ 
     | 
|
| 
       7208 
6357 
     | 
    
         
             
                 * @private
         
     | 
| 
       7209 
6358 
     | 
    
         
             
                 */
         
     | 
| 
       7210 
6359 
     | 
    
         
             
                this._i = 0;
         
     | 
| 
       7211 
     | 
    
         
            -
                
         
     | 
| 
       7212 
     | 
    
         
            -
                /**
         
     | 
| 
       7213 
     | 
    
         
            -
                 * The parts that make up the value.
         
     | 
| 
       7214 
     | 
    
         
            -
                 * @type Array
         
     | 
| 
       7215 
     | 
    
         
            -
                 * @property _parts
         
     | 
| 
       7216 
     | 
    
         
            -
                 * @private
         
     | 
| 
       7217 
     | 
    
         
            -
                 */
         
     | 
| 
       7218 
6360 
     | 
    
         
             
                this._parts = value.parts;
         
     | 
| 
       7219 
     | 
    
         
            -
                
         
     | 
| 
       7220 
     | 
    
         
            -
                /**
         
     | 
| 
       7221 
     | 
    
         
            -
                 * Keeps track of bookmarks along the way.
         
     | 
| 
       7222 
     | 
    
         
            -
                 * @type Array
         
     | 
| 
       7223 
     | 
    
         
            -
                 * @property _marks
         
     | 
| 
       7224 
     | 
    
         
            -
                 * @private
         
     | 
| 
       7225 
     | 
    
         
            -
                 */
         
     | 
| 
       7226 
6361 
     | 
    
         
             
                this._marks = [];
         
     | 
| 
       7227 
     | 
    
         
            -
                
         
     | 
| 
       7228 
     | 
    
         
            -
                /**
         
     | 
| 
       7229 
     | 
    
         
            -
                 * Holds the original property value.
         
     | 
| 
       7230 
     | 
    
         
            -
                 * @type parserlib.css.PropertyValue
         
     | 
| 
       7231 
     | 
    
         
            -
                 * @property value
         
     | 
| 
       7232 
     | 
    
         
            -
                 */
         
     | 
| 
       7233 
6362 
     | 
    
         
             
                this.value = value;
         
     | 
| 
       7234 
6363 
     | 
    
         | 
| 
       7235 
6364 
     | 
    
         
             
            }
         
     | 
| 
         @@ -7242,81 +6371,29 @@ function PropertyValueIterator(value){ 
     | 
|
| 
       7242 
6371 
     | 
    
         
             
            PropertyValueIterator.prototype.count = function(){
         
     | 
| 
       7243 
6372 
     | 
    
         
             
                return this._parts.length;
         
     | 
| 
       7244 
6373 
     | 
    
         
             
            };
         
     | 
| 
       7245 
     | 
    
         
            -
             
     | 
| 
       7246 
     | 
    
         
            -
            /**
         
     | 
| 
       7247 
     | 
    
         
            -
             * Indicates if the iterator is positioned at the first item.
         
     | 
| 
       7248 
     | 
    
         
            -
             * @return {Boolean} True if positioned at first item, false if not.
         
     | 
| 
       7249 
     | 
    
         
            -
             * @method isFirst
         
     | 
| 
       7250 
     | 
    
         
            -
             */
         
     | 
| 
       7251 
6374 
     | 
    
         
             
            PropertyValueIterator.prototype.isFirst = function(){
         
     | 
| 
       7252 
6375 
     | 
    
         
             
                return this._i === 0;
         
     | 
| 
       7253 
6376 
     | 
    
         
             
            };
         
     | 
| 
       7254 
     | 
    
         
            -
             
     | 
| 
       7255 
     | 
    
         
            -
            /**
         
     | 
| 
       7256 
     | 
    
         
            -
             * Indicates if there are more parts of the property value.
         
     | 
| 
       7257 
     | 
    
         
            -
             * @return {Boolean} True if there are more parts, false if not.
         
     | 
| 
       7258 
     | 
    
         
            -
             * @method hasNext
         
     | 
| 
       7259 
     | 
    
         
            -
             */
         
     | 
| 
       7260 
6377 
     | 
    
         
             
            PropertyValueIterator.prototype.hasNext = function(){
         
     | 
| 
       7261 
6378 
     | 
    
         
             
                return (this._i < this._parts.length);
         
     | 
| 
       7262 
6379 
     | 
    
         
             
            };
         
     | 
| 
       7263 
     | 
    
         
            -
             
     | 
| 
       7264 
     | 
    
         
            -
            /**
         
     | 
| 
       7265 
     | 
    
         
            -
             * Marks the current spot in the iteration so it can be restored to
         
     | 
| 
       7266 
     | 
    
         
            -
             * later on.
         
     | 
| 
       7267 
     | 
    
         
            -
             * @return {void}
         
     | 
| 
       7268 
     | 
    
         
            -
             * @method mark
         
     | 
| 
       7269 
     | 
    
         
            -
             */
         
     | 
| 
       7270 
6380 
     | 
    
         
             
            PropertyValueIterator.prototype.mark = function(){
         
     | 
| 
       7271 
6381 
     | 
    
         
             
                this._marks.push(this._i);
         
     | 
| 
       7272 
6382 
     | 
    
         
             
            };
         
     | 
| 
       7273 
     | 
    
         
            -
             
     | 
| 
       7274 
     | 
    
         
            -
            /**
         
     | 
| 
       7275 
     | 
    
         
            -
             * Returns the next part of the property value or null if there is no next
         
     | 
| 
       7276 
     | 
    
         
            -
             * part. Does not move the internal counter forward.
         
     | 
| 
       7277 
     | 
    
         
            -
             * @return {parserlib.css.PropertyValuePart} The next part of the property value or null if there is no next
         
     | 
| 
       7278 
     | 
    
         
            -
             * part.
         
     | 
| 
       7279 
     | 
    
         
            -
             * @method peek
         
     | 
| 
       7280 
     | 
    
         
            -
             */
         
     | 
| 
       7281 
6383 
     | 
    
         
             
            PropertyValueIterator.prototype.peek = function(count){
         
     | 
| 
       7282 
6384 
     | 
    
         
             
                return this.hasNext() ? this._parts[this._i + (count || 0)] : null;
         
     | 
| 
       7283 
6385 
     | 
    
         
             
            };
         
     | 
| 
       7284 
     | 
    
         
            -
             
     | 
| 
       7285 
     | 
    
         
            -
            /**
         
     | 
| 
       7286 
     | 
    
         
            -
             * Returns the next part of the property value or null if there is no next
         
     | 
| 
       7287 
     | 
    
         
            -
             * part.
         
     | 
| 
       7288 
     | 
    
         
            -
             * @return {parserlib.css.PropertyValuePart} The next part of the property value or null if there is no next
         
     | 
| 
       7289 
     | 
    
         
            -
             * part.
         
     | 
| 
       7290 
     | 
    
         
            -
             * @method next
         
     | 
| 
       7291 
     | 
    
         
            -
             */
         
     | 
| 
       7292 
6386 
     | 
    
         
             
            PropertyValueIterator.prototype.next = function(){
         
     | 
| 
       7293 
6387 
     | 
    
         
             
                return this.hasNext() ? this._parts[this._i++] : null;
         
     | 
| 
       7294 
6388 
     | 
    
         
             
            };
         
     | 
| 
       7295 
     | 
    
         
            -
             
     | 
| 
       7296 
     | 
    
         
            -
            /**
         
     | 
| 
       7297 
     | 
    
         
            -
             * Returns the previous part of the property value or null if there is no
         
     | 
| 
       7298 
     | 
    
         
            -
             * previous part.
         
     | 
| 
       7299 
     | 
    
         
            -
             * @return {parserlib.css.PropertyValuePart} The previous part of the 
         
     | 
| 
       7300 
     | 
    
         
            -
             * property value or null if there is no next part.
         
     | 
| 
       7301 
     | 
    
         
            -
             * @method previous
         
     | 
| 
       7302 
     | 
    
         
            -
             */
         
     | 
| 
       7303 
6389 
     | 
    
         
             
            PropertyValueIterator.prototype.previous = function(){
         
     | 
| 
       7304 
6390 
     | 
    
         
             
                return this._i > 0 ? this._parts[--this._i] : null;
         
     | 
| 
       7305 
6391 
     | 
    
         
             
            };
         
     | 
| 
       7306 
     | 
    
         
            -
             
     | 
| 
       7307 
     | 
    
         
            -
            /**
         
     | 
| 
       7308 
     | 
    
         
            -
             * Restores the last saved bookmark.
         
     | 
| 
       7309 
     | 
    
         
            -
             * @return {void}
         
     | 
| 
       7310 
     | 
    
         
            -
             * @method restore
         
     | 
| 
       7311 
     | 
    
         
            -
             */
         
     | 
| 
       7312 
6392 
     | 
    
         
             
            PropertyValueIterator.prototype.restore = function(){
         
     | 
| 
       7313 
6393 
     | 
    
         
             
                if (this._marks.length){
         
     | 
| 
       7314 
6394 
     | 
    
         
             
                    this._i = this._marks.pop();
         
     | 
| 
       7315 
6395 
     | 
    
         
             
                }
         
     | 
| 
       7316 
6396 
     | 
    
         
             
            };
         
     | 
| 
       7317 
     | 
    
         
            -
             
     | 
| 
       7318 
     | 
    
         
            -
             
     | 
| 
       7319 
     | 
    
         
            -
            /*global SyntaxUnit, Parser, Colors*/
         
     | 
| 
       7320 
6397 
     | 
    
         
             
            /**
         
     | 
| 
       7321 
6398 
     | 
    
         
             
             * Represents a single part of a CSS property value, meaning that it represents
         
     | 
| 
       7322 
6399 
     | 
    
         
             
             * just one part of the data between ":" and ";".
         
     | 
| 
         @@ -7331,12 +6408,6 @@ PropertyValueIterator.prototype.restore = function(){ 
     | 
|
| 
       7331 
6408 
     | 
    
         
             
            function PropertyValuePart(text, line, col){
         
     | 
| 
       7332 
6409 
     | 
    
         | 
| 
       7333 
6410 
     | 
    
         
             
                SyntaxUnit.call(this, text, line, col, Parser.PROPERTY_VALUE_PART_TYPE);
         
     | 
| 
       7334 
     | 
    
         
            -
                
         
     | 
| 
       7335 
     | 
    
         
            -
                /**
         
     | 
| 
       7336 
     | 
    
         
            -
                 * Indicates the type of value unit.
         
     | 
| 
       7337 
     | 
    
         
            -
                 * @type String
         
     | 
| 
       7338 
     | 
    
         
            -
                 * @property type
         
     | 
| 
       7339 
     | 
    
         
            -
                 */
         
     | 
| 
       7340 
6411 
     | 
    
         
             
                this.type = "unknown";
         
     | 
| 
       7341 
6412 
     | 
    
         | 
| 
       7342 
6413 
     | 
    
         
             
                //figure out what type of data it is
         
     | 
| 
         @@ -7476,16 +6547,6 @@ function PropertyValuePart(text, line, col){ 
     | 
|
| 
       7476 
6547 
     | 
    
         | 
| 
       7477 
6548 
     | 
    
         
             
            PropertyValuePart.prototype = new SyntaxUnit();
         
     | 
| 
       7478 
6549 
     | 
    
         
             
            PropertyValuePart.prototype.constructor = PropertyValuePart;
         
     | 
| 
       7479 
     | 
    
         
            -
             
     | 
| 
       7480 
     | 
    
         
            -
            /**
         
     | 
| 
       7481 
     | 
    
         
            -
             * Create a new syntax unit based solely on the given token.
         
     | 
| 
       7482 
     | 
    
         
            -
             * Convenience method for creating a new syntax unit when
         
     | 
| 
       7483 
     | 
    
         
            -
             * it represents a single token instead of multiple.
         
     | 
| 
       7484 
     | 
    
         
            -
             * @param {Object} token The token object to represent.
         
     | 
| 
       7485 
     | 
    
         
            -
             * @return {parserlib.css.PropertyValuePart} The object representing the token.
         
     | 
| 
       7486 
     | 
    
         
            -
             * @static
         
     | 
| 
       7487 
     | 
    
         
            -
             * @method fromToken
         
     | 
| 
       7488 
     | 
    
         
            -
             */
         
     | 
| 
       7489 
6550 
     | 
    
         
             
            PropertyValuePart.fromToken = function(token){
         
     | 
| 
       7490 
6551 
     | 
    
         
             
                return new PropertyValuePart(token.value, token.startLine, token.startCol);
         
     | 
| 
       7491 
6552 
     | 
    
         
             
            };
         
     | 
| 
         @@ -7502,7 +6563,6 @@ Pseudos.CLASS = 2; 
     | 
|
| 
       7502 
6563 
     | 
    
         
             
            Pseudos.isElement = function(pseudo){
         
     | 
| 
       7503 
6564 
     | 
    
         
             
                return pseudo.indexOf("::") === 0 || Pseudos[pseudo.toLowerCase()] == Pseudos.ELEMENT;
         
     | 
| 
       7504 
6565 
     | 
    
         
             
            };
         
     | 
| 
       7505 
     | 
    
         
            -
            /*global SyntaxUnit, Parser, Specificity*/
         
     | 
| 
       7506 
6566 
     | 
    
         
             
            /**
         
     | 
| 
       7507 
6567 
     | 
    
         
             
             * Represents an entire single selector, including all parts but not
         
     | 
| 
       7508 
6568 
     | 
    
         
             
             * including multiple selectors (those separated by commas).
         
     | 
| 
         @@ -7517,28 +6577,13 @@ Pseudos.isElement = function(pseudo){ 
     | 
|
| 
       7517 
6577 
     | 
    
         
             
            function Selector(parts, line, col){
         
     | 
| 
       7518 
6578 
     | 
    
         | 
| 
       7519 
6579 
     | 
    
         
             
                SyntaxUnit.call(this, parts.join(" "), line, col, Parser.SELECTOR_TYPE);
         
     | 
| 
       7520 
     | 
    
         
            -
                
         
     | 
| 
       7521 
     | 
    
         
            -
                /**
         
     | 
| 
       7522 
     | 
    
         
            -
                 * The parts that make up the selector.
         
     | 
| 
       7523 
     | 
    
         
            -
                 * @type Array
         
     | 
| 
       7524 
     | 
    
         
            -
                 * @property parts
         
     | 
| 
       7525 
     | 
    
         
            -
                 */
         
     | 
| 
       7526 
6580 
     | 
    
         
             
                this.parts = parts;
         
     | 
| 
       7527 
     | 
    
         
            -
                
         
     | 
| 
       7528 
     | 
    
         
            -
                /**
         
     | 
| 
       7529 
     | 
    
         
            -
                 * The specificity of the selector.
         
     | 
| 
       7530 
     | 
    
         
            -
                 * @type parserlib.css.Specificity
         
     | 
| 
       7531 
     | 
    
         
            -
                 * @property specificity
         
     | 
| 
       7532 
     | 
    
         
            -
                 */
         
     | 
| 
       7533 
6581 
     | 
    
         
             
                this.specificity = Specificity.calculate(this);
         
     | 
| 
       7534 
6582 
     | 
    
         | 
| 
       7535 
6583 
     | 
    
         
             
            }
         
     | 
| 
       7536 
6584 
     | 
    
         | 
| 
       7537 
6585 
     | 
    
         
             
            Selector.prototype = new SyntaxUnit();
         
     | 
| 
       7538 
6586 
     | 
    
         
             
            Selector.prototype.constructor = Selector;
         
     | 
| 
       7539 
     | 
    
         
            -
             
     | 
| 
       7540 
     | 
    
         
            -
             
     | 
| 
       7541 
     | 
    
         
            -
            /*global SyntaxUnit, Parser*/
         
     | 
| 
       7542 
6587 
     | 
    
         
             
            /**
         
     | 
| 
       7543 
6588 
     | 
    
         
             
             * Represents a single part of a selector string, meaning a single set of
         
     | 
| 
       7544 
6589 
     | 
    
         
             
             * element name and modifiers. This does not include combinators such as
         
     | 
| 
         @@ -7558,30 +6603,13 @@ Selector.prototype.constructor = Selector; 
     | 
|
| 
       7558 
6603 
     | 
    
         
             
            function SelectorPart(elementName, modifiers, text, line, col){
         
     | 
| 
       7559 
6604 
     | 
    
         | 
| 
       7560 
6605 
     | 
    
         
             
                SyntaxUnit.call(this, text, line, col, Parser.SELECTOR_PART_TYPE);
         
     | 
| 
       7561 
     | 
    
         
            -
             
     | 
| 
       7562 
     | 
    
         
            -
                /**
         
     | 
| 
       7563 
     | 
    
         
            -
                 * The tag name of the element to which this part
         
     | 
| 
       7564 
     | 
    
         
            -
                 * of the selector affects.
         
     | 
| 
       7565 
     | 
    
         
            -
                 * @type String
         
     | 
| 
       7566 
     | 
    
         
            -
                 * @property elementName
         
     | 
| 
       7567 
     | 
    
         
            -
                 */
         
     | 
| 
       7568 
6606 
     | 
    
         
             
                this.elementName = elementName;
         
     | 
| 
       7569 
     | 
    
         
            -
                
         
     | 
| 
       7570 
     | 
    
         
            -
                /**
         
     | 
| 
       7571 
     | 
    
         
            -
                 * The parts that come after the element name, such as class names, IDs,
         
     | 
| 
       7572 
     | 
    
         
            -
                 * pseudo classes/elements, etc.
         
     | 
| 
       7573 
     | 
    
         
            -
                 * @type Array
         
     | 
| 
       7574 
     | 
    
         
            -
                 * @property modifiers
         
     | 
| 
       7575 
     | 
    
         
            -
                 */
         
     | 
| 
       7576 
6607 
     | 
    
         
             
                this.modifiers = modifiers;
         
     | 
| 
       7577 
6608 
     | 
    
         | 
| 
       7578 
6609 
     | 
    
         
             
            }
         
     | 
| 
       7579 
6610 
     | 
    
         | 
| 
       7580 
6611 
     | 
    
         
             
            SelectorPart.prototype = new SyntaxUnit();
         
     | 
| 
       7581 
6612 
     | 
    
         
             
            SelectorPart.prototype.constructor = SelectorPart;
         
     | 
| 
       7582 
     | 
    
         
            -
             
     | 
| 
       7583 
     | 
    
         
            -
             
     | 
| 
       7584 
     | 
    
         
            -
            /*global SyntaxUnit, Parser*/
         
     | 
| 
       7585 
6613 
     | 
    
         
             
            /**
         
     | 
| 
       7586 
6614 
     | 
    
         
             
             * Represents a selector modifier string, meaning a class name, element name,
         
     | 
| 
       7587 
6615 
     | 
    
         
             
             * element ID, pseudo rule, etc.
         
     | 
| 
         @@ -7597,28 +6625,13 @@ SelectorPart.prototype.constructor = SelectorPart; 
     | 
|
| 
       7597 
6625 
     | 
    
         
             
            function SelectorSubPart(text, type, line, col){
         
     | 
| 
       7598 
6626 
     | 
    
         | 
| 
       7599 
6627 
     | 
    
         
             
                SyntaxUnit.call(this, text, line, col, Parser.SELECTOR_SUB_PART_TYPE);
         
     | 
| 
       7600 
     | 
    
         
            -
             
     | 
| 
       7601 
     | 
    
         
            -
                /**
         
     | 
| 
       7602 
     | 
    
         
            -
                 * The type of modifier.
         
     | 
| 
       7603 
     | 
    
         
            -
                 * @type String
         
     | 
| 
       7604 
     | 
    
         
            -
                 * @property type
         
     | 
| 
       7605 
     | 
    
         
            -
                 */
         
     | 
| 
       7606 
6628 
     | 
    
         
             
                this.type = type;
         
     | 
| 
       7607 
     | 
    
         
            -
                
         
     | 
| 
       7608 
     | 
    
         
            -
                /**
         
     | 
| 
       7609 
     | 
    
         
            -
                 * Some subparts have arguments, this represents them.
         
     | 
| 
       7610 
     | 
    
         
            -
                 * @type Array
         
     | 
| 
       7611 
     | 
    
         
            -
                 * @property args
         
     | 
| 
       7612 
     | 
    
         
            -
                 */
         
     | 
| 
       7613 
6629 
     | 
    
         
             
                this.args = [];
         
     | 
| 
       7614 
6630 
     | 
    
         | 
| 
       7615 
6631 
     | 
    
         
             
            }
         
     | 
| 
       7616 
6632 
     | 
    
         | 
| 
       7617 
6633 
     | 
    
         
             
            SelectorSubPart.prototype = new SyntaxUnit();
         
     | 
| 
       7618 
6634 
     | 
    
         
             
            SelectorSubPart.prototype.constructor = SelectorSubPart;
         
     | 
| 
       7619 
     | 
    
         
            -
             
     | 
| 
       7620 
     | 
    
         
            -
             
     | 
| 
       7621 
     | 
    
         
            -
            /*global Pseudos, SelectorPart*/
         
     | 
| 
       7622 
6635 
     | 
    
         
             
            /**
         
     | 
| 
       7623 
6636 
     | 
    
         
             
             * Represents a selector's specificity.
         
     | 
| 
       7624 
6637 
     | 
    
         
             
             * @namespace parserlib.css
         
     | 
| 
         @@ -7679,14 +6692,6 @@ Specificity.prototype = { 
     | 
|
| 
       7679 
6692 
     | 
    
         
             
                }
         
     | 
| 
       7680 
6693 
     | 
    
         | 
| 
       7681 
6694 
     | 
    
         
             
            };
         
     | 
| 
       7682 
     | 
    
         
            -
             
     | 
| 
       7683 
     | 
    
         
            -
            /**
         
     | 
| 
       7684 
     | 
    
         
            -
             * Calculates the specificity of the given selector.
         
     | 
| 
       7685 
     | 
    
         
            -
             * @param {parserlib.css.Selector} The selector to calculate specificity for.
         
     | 
| 
       7686 
     | 
    
         
            -
             * @return {parserlib.css.Specificity} The specificity of the selector.
         
     | 
| 
       7687 
     | 
    
         
            -
             * @static
         
     | 
| 
       7688 
     | 
    
         
            -
             * @method calculate
         
     | 
| 
       7689 
     | 
    
         
            -
             */
         
     | 
| 
       7690 
6695 
     | 
    
         
             
            Specificity.calculate = function(selector){
         
     | 
| 
       7691 
6696 
     | 
    
         | 
| 
       7692 
6697 
     | 
    
         
             
                var i, len,
         
     | 
| 
         @@ -7742,8 +6747,6 @@ Specificity.calculate = function(selector){ 
     | 
|
| 
       7742 
6747 
     | 
    
         
             
                return new Specificity(0, b, c, d);
         
     | 
| 
       7743 
6748 
     | 
    
         
             
            };
         
     | 
| 
       7744 
6749 
     | 
    
         | 
| 
       7745 
     | 
    
         
            -
            /*global Tokens, TokenStreamBase*/
         
     | 
| 
       7746 
     | 
    
         
            -
             
     | 
| 
       7747 
6750 
     | 
    
         
             
            var h = /^[0-9a-fA-F]$/,
         
     | 
| 
       7748 
6751 
     | 
    
         
             
                nonascii = /^[\u0080-\uFFFF]$/,
         
     | 
| 
       7749 
6752 
     | 
    
         
             
                nl = /\n|\r\n|\r|\f/;
         
     | 
| 
         @@ -7845,16 +6848,6 @@ TokenStream.prototype = mix(new TokenStreamBase(), { 
     | 
|
| 
       7845 
6848 
     | 
    
         
             
                                    token = this.charToken(c, startLine, startCol);
         
     | 
| 
       7846 
6849 
     | 
    
         
             
                                }
         
     | 
| 
       7847 
6850 
     | 
    
         
             
                                break;
         
     | 
| 
       7848 
     | 
    
         
            -
             
     | 
| 
       7849 
     | 
    
         
            -
                            /*
         
     | 
| 
       7850 
     | 
    
         
            -
                             * Potential tokens:
         
     | 
| 
       7851 
     | 
    
         
            -
                             * - DASHMATCH
         
     | 
| 
       7852 
     | 
    
         
            -
                             * - INCLUDES
         
     | 
| 
       7853 
     | 
    
         
            -
                             * - PREFIXMATCH
         
     | 
| 
       7854 
     | 
    
         
            -
                             * - SUFFIXMATCH
         
     | 
| 
       7855 
     | 
    
         
            -
                             * - SUBSTRINGMATCH
         
     | 
| 
       7856 
     | 
    
         
            -
                             * - CHAR
         
     | 
| 
       7857 
     | 
    
         
            -
                             */
         
     | 
| 
       7858 
6851 
     | 
    
         
             
                            case "|":
         
     | 
| 
       7859 
6852 
     | 
    
         
             
                            case "~":
         
     | 
| 
       7860 
6853 
     | 
    
         
             
                            case "^":
         
     | 
| 
         @@ -7866,22 +6859,10 @@ TokenStream.prototype = mix(new TokenStreamBase(), { 
     | 
|
| 
       7866 
6859 
     | 
    
         
             
                                    token = this.charToken(c, startLine, startCol);
         
     | 
| 
       7867 
6860 
     | 
    
         
             
                                }
         
     | 
| 
       7868 
6861 
     | 
    
         
             
                                break;
         
     | 
| 
       7869 
     | 
    
         
            -
             
     | 
| 
       7870 
     | 
    
         
            -
                            /*
         
     | 
| 
       7871 
     | 
    
         
            -
                             * Potential tokens:
         
     | 
| 
       7872 
     | 
    
         
            -
                             * - STRING
         
     | 
| 
       7873 
     | 
    
         
            -
                             * - INVALID
         
     | 
| 
       7874 
     | 
    
         
            -
                             */
         
     | 
| 
       7875 
6862 
     | 
    
         
             
                            case "\"":
         
     | 
| 
       7876 
6863 
     | 
    
         
             
                            case "'":
         
     | 
| 
       7877 
6864 
     | 
    
         
             
                                token = this.stringToken(c, startLine, startCol);
         
     | 
| 
       7878 
6865 
     | 
    
         
             
                                break;
         
     | 
| 
       7879 
     | 
    
         
            -
             
     | 
| 
       7880 
     | 
    
         
            -
                            /*
         
     | 
| 
       7881 
     | 
    
         
            -
                             * Potential tokens:
         
     | 
| 
       7882 
     | 
    
         
            -
                             * - HASH
         
     | 
| 
       7883 
     | 
    
         
            -
                             * - CHAR
         
     | 
| 
       7884 
     | 
    
         
            -
                             */
         
     | 
| 
       7885 
6866 
     | 
    
         
             
                            case "#":
         
     | 
| 
       7886 
6867 
     | 
    
         
             
                                if (isNameChar(reader.peek())){
         
     | 
| 
       7887 
6868 
     | 
    
         
             
                                    token = this.hashToken(c, startLine, startCol);
         
     | 
| 
         @@ -7889,14 +6870,6 @@ TokenStream.prototype = mix(new TokenStreamBase(), { 
     | 
|
| 
       7889 
6870 
     | 
    
         
             
                                    token = this.charToken(c, startLine, startCol);
         
     | 
| 
       7890 
6871 
     | 
    
         
             
                                }
         
     | 
| 
       7891 
6872 
     | 
    
         
             
                                break;
         
     | 
| 
       7892 
     | 
    
         
            -
             
     | 
| 
       7893 
     | 
    
         
            -
                            /*
         
     | 
| 
       7894 
     | 
    
         
            -
                             * Potential tokens:
         
     | 
| 
       7895 
     | 
    
         
            -
                             * - DOT
         
     | 
| 
       7896 
     | 
    
         
            -
                             * - NUMBER
         
     | 
| 
       7897 
     | 
    
         
            -
                             * - DIMENSION
         
     | 
| 
       7898 
     | 
    
         
            -
                             * - PERCENTAGE
         
     | 
| 
       7899 
     | 
    
         
            -
                             */
         
     | 
| 
       7900 
6873 
     | 
    
         
             
                            case ".":
         
     | 
| 
       7901 
6874 
     | 
    
         
             
                                if (isDigit(reader.peek())){
         
     | 
| 
       7902 
6875 
     | 
    
         
             
                                    token = this.numberToken(c, startLine, startCol);
         
     | 
| 
         @@ -7904,15 +6877,6 @@ TokenStream.prototype = mix(new TokenStreamBase(), { 
     | 
|
| 
       7904 
6877 
     | 
    
         
             
                                    token = this.charToken(c, startLine, startCol);
         
     | 
| 
       7905 
6878 
     | 
    
         
             
                                }
         
     | 
| 
       7906 
6879 
     | 
    
         
             
                                break;
         
     | 
| 
       7907 
     | 
    
         
            -
             
     | 
| 
       7908 
     | 
    
         
            -
                            /*
         
     | 
| 
       7909 
     | 
    
         
            -
                             * Potential tokens:
         
     | 
| 
       7910 
     | 
    
         
            -
                             * - CDC
         
     | 
| 
       7911 
     | 
    
         
            -
                             * - MINUS
         
     | 
| 
       7912 
     | 
    
         
            -
                             * - NUMBER
         
     | 
| 
       7913 
     | 
    
         
            -
                             * - DIMENSION
         
     | 
| 
       7914 
     | 
    
         
            -
                             * - PERCENTAGE
         
     | 
| 
       7915 
     | 
    
         
            -
                             */
         
     | 
| 
       7916 
6880 
     | 
    
         
             
                            case "-":
         
     | 
| 
       7917 
6881 
     | 
    
         
             
                                if (reader.peek() == "-"){  //could be closing HTML-style comment
         
     | 
| 
       7918 
6882 
     | 
    
         
             
                                    token = this.htmlCommentEndToken(c, startLine, startCol);
         
     | 
| 
         @@ -7922,47 +6886,18 @@ TokenStream.prototype = mix(new TokenStreamBase(), { 
     | 
|
| 
       7922 
6886 
     | 
    
         
             
                                    token = this.charToken(c, startLine, startCol);
         
     | 
| 
       7923 
6887 
     | 
    
         
             
                                }
         
     | 
| 
       7924 
6888 
     | 
    
         
             
                                break;
         
     | 
| 
       7925 
     | 
    
         
            -
             
     | 
| 
       7926 
     | 
    
         
            -
                            /*
         
     | 
| 
       7927 
     | 
    
         
            -
                             * Potential tokens:
         
     | 
| 
       7928 
     | 
    
         
            -
                             * - IMPORTANT_SYM
         
     | 
| 
       7929 
     | 
    
         
            -
                             * - CHAR
         
     | 
| 
       7930 
     | 
    
         
            -
                             */
         
     | 
| 
       7931 
6889 
     | 
    
         
             
                            case "!":
         
     | 
| 
       7932 
6890 
     | 
    
         
             
                                token = this.importantToken(c, startLine, startCol);
         
     | 
| 
       7933 
6891 
     | 
    
         
             
                                break;
         
     | 
| 
       7934 
     | 
    
         
            -
             
     | 
| 
       7935 
     | 
    
         
            -
                            /*
         
     | 
| 
       7936 
     | 
    
         
            -
                             * Any at-keyword or CHAR
         
     | 
| 
       7937 
     | 
    
         
            -
                             */
         
     | 
| 
       7938 
6892 
     | 
    
         
             
                            case "@":
         
     | 
| 
       7939 
6893 
     | 
    
         
             
                                token = this.atRuleToken(c, startLine, startCol);
         
     | 
| 
       7940 
6894 
     | 
    
         
             
                                break;
         
     | 
| 
       7941 
     | 
    
         
            -
             
     | 
| 
       7942 
     | 
    
         
            -
                            /*
         
     | 
| 
       7943 
     | 
    
         
            -
                             * Potential tokens:
         
     | 
| 
       7944 
     | 
    
         
            -
                             * - NOT
         
     | 
| 
       7945 
     | 
    
         
            -
                             * - CHAR
         
     | 
| 
       7946 
     | 
    
         
            -
                             */
         
     | 
| 
       7947 
6895 
     | 
    
         
             
                            case ":":
         
     | 
| 
       7948 
6896 
     | 
    
         
             
                                token = this.notToken(c, startLine, startCol);
         
     | 
| 
       7949 
6897 
     | 
    
         
             
                                break;
         
     | 
| 
       7950 
     | 
    
         
            -
             
     | 
| 
       7951 
     | 
    
         
            -
                            /*
         
     | 
| 
       7952 
     | 
    
         
            -
                             * Potential tokens:
         
     | 
| 
       7953 
     | 
    
         
            -
                             * - CDO
         
     | 
| 
       7954 
     | 
    
         
            -
                             * - CHAR
         
     | 
| 
       7955 
     | 
    
         
            -
                             */
         
     | 
| 
       7956 
6898 
     | 
    
         
             
                            case "<":
         
     | 
| 
       7957 
6899 
     | 
    
         
             
                                token = this.htmlCommentStartToken(c, startLine, startCol);
         
     | 
| 
       7958 
6900 
     | 
    
         
             
                                break;
         
     | 
| 
       7959 
     | 
    
         
            -
             
     | 
| 
       7960 
     | 
    
         
            -
                            /*
         
     | 
| 
       7961 
     | 
    
         
            -
                             * Potential tokens:
         
     | 
| 
       7962 
     | 
    
         
            -
                             * - UNICODE_RANGE
         
     | 
| 
       7963 
     | 
    
         
            -
                             * - URL
         
     | 
| 
       7964 
     | 
    
         
            -
                             * - CHAR
         
     | 
| 
       7965 
     | 
    
         
            -
                             */
         
     | 
| 
       7966 
6901 
     | 
    
         
             
                            case "U":
         
     | 
| 
       7967 
6902 
     | 
    
         
             
                            case "u":
         
     | 
| 
       7968 
6903 
     | 
    
         
             
                                if (reader.peek() == "+"){
         
     | 
| 
         @@ -8086,14 +7021,6 @@ TokenStream.prototype = mix(new TokenStreamBase(), { 
     | 
|
| 
       8086 
7021 
     | 
    
         
             
                        valid   = false,
         
     | 
| 
       8087 
7022 
     | 
    
         
             
                        ident,
         
     | 
| 
       8088 
7023 
     | 
    
         
             
                        c;
         
     | 
| 
       8089 
     | 
    
         
            -
             
     | 
| 
       8090 
     | 
    
         
            -
                    /*
         
     | 
| 
       8091 
     | 
    
         
            -
                     * First, mark where we are. There are only four @ rules,
         
     | 
| 
       8092 
     | 
    
         
            -
                     * so anything else is really just an invalid token.
         
     | 
| 
       8093 
     | 
    
         
            -
                     * Basically, if this doesn't match one of the known @
         
     | 
| 
       8094 
     | 
    
         
            -
                     * rules, just return '@' as an unknown token and allow
         
     | 
| 
       8095 
     | 
    
         
            -
                     * parsing to continue after that point.
         
     | 
| 
       8096 
     | 
    
         
            -
                     */
         
     | 
| 
       8097 
7024 
     | 
    
         
             
                    reader.mark();
         
     | 
| 
       8098 
7025 
     | 
    
         | 
| 
       8099 
7026 
     | 
    
         
             
                    //try to find the at-keyword
         
     | 
| 
         @@ -9118,15 +8045,6 @@ var Validation = { 
     | 
|
| 
       9118 
8045 
     | 
    
         | 
| 
       9119 
8046 
     | 
    
         | 
| 
       9120 
8047 
     | 
    
         
             
            };
         
     | 
| 
       9121 
     | 
    
         
            -
            /**
         
     | 
| 
       9122 
     | 
    
         
            -
             * Type to use when a validation error occurs.
         
     | 
| 
       9123 
     | 
    
         
            -
             * @class ValidationError
         
     | 
| 
       9124 
     | 
    
         
            -
             * @namespace parserlib.util
         
     | 
| 
       9125 
     | 
    
         
            -
             * @constructor
         
     | 
| 
       9126 
     | 
    
         
            -
             * @param {String} message The error message.
         
     | 
| 
       9127 
     | 
    
         
            -
             * @param {int} line The line at which the error occurred.
         
     | 
| 
       9128 
     | 
    
         
            -
             * @param {int} col The column at which the error occurred.
         
     | 
| 
       9129 
     | 
    
         
            -
             */
         
     | 
| 
       9130 
8048 
     | 
    
         
             
            function ValidationError(message, line, col){
         
     | 
| 
       9131 
8049 
     | 
    
         | 
| 
       9132 
8050 
     | 
    
         
             
                /**
         
     | 
| 
         @@ -9135,19 +8053,7 @@ function ValidationError(message, line, col){ 
     | 
|
| 
       9135 
8053 
     | 
    
         
             
                 * @property col
         
     | 
| 
       9136 
8054 
     | 
    
         
             
                 */
         
     | 
| 
       9137 
8055 
     | 
    
         
             
                this.col = col;
         
     | 
| 
       9138 
     | 
    
         
            -
             
     | 
| 
       9139 
     | 
    
         
            -
                /**
         
     | 
| 
       9140 
     | 
    
         
            -
                 * The line at which the error occurred.
         
     | 
| 
       9141 
     | 
    
         
            -
                 * @type int
         
     | 
| 
       9142 
     | 
    
         
            -
                 * @property line
         
     | 
| 
       9143 
     | 
    
         
            -
                 */
         
     | 
| 
       9144 
8056 
     | 
    
         
             
                this.line = line;
         
     | 
| 
       9145 
     | 
    
         
            -
             
     | 
| 
       9146 
     | 
    
         
            -
                /**
         
     | 
| 
       9147 
     | 
    
         
            -
                 * The text representation of the unit.
         
     | 
| 
       9148 
     | 
    
         
            -
                 * @type String
         
     | 
| 
       9149 
     | 
    
         
            -
                 * @property text
         
     | 
| 
       9150 
     | 
    
         
            -
                 */
         
     | 
| 
       9151 
8057 
     | 
    
         
             
                this.message = message;
         
     | 
| 
       9152 
8058 
     | 
    
         | 
| 
       9153 
8059 
     | 
    
         
             
            }
         
     | 
| 
         @@ -9504,15 +8410,6 @@ Tokens              :Tokens, 
     | 
|
| 
       9504 
8410 
     | 
    
         
             
            ValidationError     :ValidationError
         
     | 
| 
       9505 
8411 
     | 
    
         
             
            };
         
     | 
| 
       9506 
8412 
     | 
    
         
             
            })();
         
     | 
| 
       9507 
     | 
    
         
            -
             
     | 
| 
       9508 
     | 
    
         
            -
             
     | 
| 
       9509 
     | 
    
         
            -
             
     | 
| 
       9510 
     | 
    
         
            -
            /**
         
     | 
| 
       9511 
     | 
    
         
            -
             * Main CSSLint object.
         
     | 
| 
       9512 
     | 
    
         
            -
             * @class CSSLint
         
     | 
| 
       9513 
     | 
    
         
            -
             * @static
         
     | 
| 
       9514 
     | 
    
         
            -
             * @extends parserlib.util.EventTarget
         
     | 
| 
       9515 
     | 
    
         
            -
             */
         
     | 
| 
       9516 
8413 
     | 
    
         
             
            /*global parserlib, Reporter*/
         
     | 
| 
       9517 
8414 
     | 
    
         
             
            var CSSLint = (function(){
         
     | 
| 
       9518 
8415 
     | 
    
         | 
| 
         @@ -9535,20 +8432,9 @@ var CSSLint = (function(){ 
     | 
|
| 
       9535 
8432 
     | 
    
         
             
                    rules.push(rule);
         
     | 
| 
       9536 
8433 
     | 
    
         
             
                    rules[rule.id] = rule;
         
     | 
| 
       9537 
8434 
     | 
    
         
             
                };
         
     | 
| 
       9538 
     | 
    
         
            -
             
     | 
| 
       9539 
     | 
    
         
            -
                /**
         
     | 
| 
       9540 
     | 
    
         
            -
                 * Clears all rule from the engine.
         
     | 
| 
       9541 
     | 
    
         
            -
                 * @method clearRules
         
     | 
| 
       9542 
     | 
    
         
            -
                 */
         
     | 
| 
       9543 
8435 
     | 
    
         
             
                api.clearRules = function(){
         
     | 
| 
       9544 
8436 
     | 
    
         
             
                    rules = [];
         
     | 
| 
       9545 
8437 
     | 
    
         
             
                };
         
     | 
| 
       9546 
     | 
    
         
            -
                
         
     | 
| 
       9547 
     | 
    
         
            -
                /**
         
     | 
| 
       9548 
     | 
    
         
            -
                 * Returns the rule objects.
         
     | 
| 
       9549 
     | 
    
         
            -
                 * @return An array of rule objects.
         
     | 
| 
       9550 
     | 
    
         
            -
                 * @method getRules
         
     | 
| 
       9551 
     | 
    
         
            -
                 */
         
     | 
| 
       9552 
8438 
     | 
    
         
             
                api.getRules = function(){
         
     | 
| 
       9553 
8439 
     | 
    
         
             
                    return [].concat(rules).sort(function(a,b){ 
         
     | 
| 
       9554 
8440 
     | 
    
         
             
                        return a.id > b.id ? 1 : 0;
         
     | 
| 
         @@ -9568,26 +8454,9 @@ var CSSLint = (function(){ 
     | 
|
| 
       9568 
8454 
     | 
    
         
             
                    // formatters.push(formatter);
         
     | 
| 
       9569 
8455 
     | 
    
         
             
                    formatters[formatter.id] = formatter;
         
     | 
| 
       9570 
8456 
     | 
    
         
             
                };
         
     | 
| 
       9571 
     | 
    
         
            -
                
         
     | 
| 
       9572 
     | 
    
         
            -
                /**
         
     | 
| 
       9573 
     | 
    
         
            -
                 * Retrieves a formatter for use.
         
     | 
| 
       9574 
     | 
    
         
            -
                 * @param {String} formatId The name of the format to retrieve.
         
     | 
| 
       9575 
     | 
    
         
            -
                 * @return {Object} The formatter or undefined.
         
     | 
| 
       9576 
     | 
    
         
            -
                 * @method getFormatter
         
     | 
| 
       9577 
     | 
    
         
            -
                 */
         
     | 
| 
       9578 
8457 
     | 
    
         
             
                api.getFormatter = function(formatId){
         
     | 
| 
       9579 
8458 
     | 
    
         
             
                    return formatters[formatId];
         
     | 
| 
       9580 
8459 
     | 
    
         
             
                };
         
     | 
| 
       9581 
     | 
    
         
            -
                
         
     | 
| 
       9582 
     | 
    
         
            -
                /**
         
     | 
| 
       9583 
     | 
    
         
            -
                 * Formats the results in a particular format for a single file.
         
     | 
| 
       9584 
     | 
    
         
            -
                 * @param {Object} result The results returned from CSSLint.verify().
         
     | 
| 
       9585 
     | 
    
         
            -
                 * @param {String} filename The filename for which the results apply.
         
     | 
| 
       9586 
     | 
    
         
            -
                 * @param {String} formatId The name of the formatter to use.
         
     | 
| 
       9587 
     | 
    
         
            -
                 * @param {Object} options (Optional) for special output handling.
         
     | 
| 
       9588 
     | 
    
         
            -
                 * @return {String} A formatted string for the results.
         
     | 
| 
       9589 
     | 
    
         
            -
                 * @method format
         
     | 
| 
       9590 
     | 
    
         
            -
                 */
         
     | 
| 
       9591 
8460 
     | 
    
         
             
                api.format = function(results, filename, formatId, options) {
         
     | 
| 
       9592 
8461 
     | 
    
         
             
                    var formatter = this.getFormatter(formatId),
         
     | 
| 
       9593 
8462 
     | 
    
         
             
                        result = null;
         
     | 
| 
         @@ -9600,13 +8469,6 @@ var CSSLint = (function(){ 
     | 
|
| 
       9600 
8469 
     | 
    
         | 
| 
       9601 
8470 
     | 
    
         
             
                    return result;
         
     | 
| 
       9602 
8471 
     | 
    
         
             
                };
         
     | 
| 
       9603 
     | 
    
         
            -
                
         
     | 
| 
       9604 
     | 
    
         
            -
                /**
         
     | 
| 
       9605 
     | 
    
         
            -
                 * Indicates if the given format is supported.
         
     | 
| 
       9606 
     | 
    
         
            -
                 * @param {String} formatId The ID of the format to check.
         
     | 
| 
       9607 
     | 
    
         
            -
                 * @return {Boolean} True if the format exists, false if not.
         
     | 
| 
       9608 
     | 
    
         
            -
                 * @method hasFormat
         
     | 
| 
       9609 
     | 
    
         
            -
                 */
         
     | 
| 
       9610 
8472 
     | 
    
         
             
                api.hasFormat = function(formatId){
         
     | 
| 
       9611 
8473 
     | 
    
         
             
                    return formatters.hasOwnProperty(formatId);
         
     | 
| 
       9612 
8474 
     | 
    
         
             
                };
         
     | 
| 
         @@ -9688,8 +8550,6 @@ var CSSLint = (function(){ 
     | 
|
| 
       9688 
8550 
     | 
    
         
             
                return api;
         
     | 
| 
       9689 
8551 
     | 
    
         | 
| 
       9690 
8552 
     | 
    
         
             
            })();
         
     | 
| 
       9691 
     | 
    
         
            -
             
     | 
| 
       9692 
     | 
    
         
            -
            /*global CSSLint*/
         
     | 
| 
       9693 
8553 
     | 
    
         
             
            /**
         
     | 
| 
       9694 
8554 
     | 
    
         
             
             * An instance of Report is used to report results of the
         
     | 
| 
       9695 
8555 
     | 
    
         
             
             * verification back to the main API.
         
     | 
| 
         @@ -9707,28 +8567,8 @@ function Reporter(lines, ruleset){ 
     | 
|
| 
       9707 
8567 
     | 
    
         
             
                 * @type String[]
         
     | 
| 
       9708 
8568 
     | 
    
         
             
                 */
         
     | 
| 
       9709 
8569 
     | 
    
         
             
                this.messages = [];
         
     | 
| 
       9710 
     | 
    
         
            -
             
     | 
| 
       9711 
     | 
    
         
            -
                /**
         
     | 
| 
       9712 
     | 
    
         
            -
                 * List of statistics being reported.
         
     | 
| 
       9713 
     | 
    
         
            -
                 * @property stats
         
     | 
| 
       9714 
     | 
    
         
            -
                 * @type String[]
         
     | 
| 
       9715 
     | 
    
         
            -
                 */
         
     | 
| 
       9716 
8570 
     | 
    
         
             
                this.stats = [];
         
     | 
| 
       9717 
     | 
    
         
            -
             
     | 
| 
       9718 
     | 
    
         
            -
                /**
         
     | 
| 
       9719 
     | 
    
         
            -
                 * Lines of code being reported on. Used to provide contextual information
         
     | 
| 
       9720 
     | 
    
         
            -
                 * for messages.
         
     | 
| 
       9721 
     | 
    
         
            -
                 * @property lines
         
     | 
| 
       9722 
     | 
    
         
            -
                 * @type String[]
         
     | 
| 
       9723 
     | 
    
         
            -
                 */
         
     | 
| 
       9724 
8571 
     | 
    
         
             
                this.lines = lines;
         
     | 
| 
       9725 
     | 
    
         
            -
                
         
     | 
| 
       9726 
     | 
    
         
            -
                /**
         
     | 
| 
       9727 
     | 
    
         
            -
                 * Information about the rules. Used to determine whether an issue is an
         
     | 
| 
       9728 
     | 
    
         
            -
                 * error or warning.
         
     | 
| 
       9729 
     | 
    
         
            -
                 * @property ruleset
         
     | 
| 
       9730 
     | 
    
         
            -
                 * @type Object
         
     | 
| 
       9731 
     | 
    
         
            -
                 */
         
     | 
| 
       9732 
8572 
     | 
    
         
             
                this.ruleset = ruleset;
         
     | 
| 
       9733 
8573 
     | 
    
         
             
            }
         
     | 
| 
       9734 
8574 
     | 
    
         | 
| 
         @@ -9851,8 +8691,6 @@ Reporter.prototype = { 
     | 
|
| 
       9851 
8691 
     | 
    
         
             
            //expose for testing purposes
         
     | 
| 
       9852 
8692 
     | 
    
         
             
            CSSLint._Reporter = Reporter;
         
     | 
| 
       9853 
8693 
     | 
    
         | 
| 
       9854 
     | 
    
         
            -
            /*global CSSLint*/
         
     | 
| 
       9855 
     | 
    
         
            -
             
     | 
| 
       9856 
8694 
     | 
    
         
             
            /*
         
     | 
| 
       9857 
8695 
     | 
    
         
             
             * Utility functions that make life easier.
         
     | 
| 
       9858 
8696 
     | 
    
         
             
             */
         
     | 
| 
         @@ -9912,7 +8750,6 @@ CSSLint.Util = { 
     | 
|
| 
       9912 
8750 
     | 
    
         
             
                    }
         
     | 
| 
       9913 
8751 
     | 
    
         
             
                }
         
     | 
| 
       9914 
8752 
     | 
    
         
             
            };
         
     | 
| 
       9915 
     | 
    
         
            -
            /*global CSSLint*/
         
     | 
| 
       9916 
8753 
     | 
    
         
             
            /*
         
     | 
| 
       9917 
8754 
     | 
    
         
             
             * Rule: Don't use adjoining classes (.foo.bar).
         
     | 
| 
       9918 
8755 
     | 
    
         
             
             */
         
     | 
| 
         @@ -9957,7 +8794,6 @@ CSSLint.addRule({ 
     | 
|
| 
       9957 
8794 
     | 
    
         
             
                }
         
     | 
| 
       9958 
8795 
     | 
    
         | 
| 
       9959 
8796 
     | 
    
         
             
            });
         
     | 
| 
       9960 
     | 
    
         
            -
            /*global CSSLint*/
         
     | 
| 
       9961 
8797 
     | 
    
         | 
| 
       9962 
8798 
     | 
    
         
             
            /*
         
     | 
| 
       9963 
8799 
     | 
    
         
             
             * Rule: Don't use width or height when using padding or border. 
         
     | 
| 
         @@ -10050,7 +8886,6 @@ CSSLint.addRule({ 
     | 
|
| 
       10050 
8886 
     | 
    
         
             
                }
         
     | 
| 
       10051 
8887 
     | 
    
         | 
| 
       10052 
8888 
     | 
    
         
             
            });
         
     | 
| 
       10053 
     | 
    
         
            -
            /*global CSSLint*/
         
     | 
| 
       10054 
8889 
     | 
    
         | 
| 
       10055 
8890 
     | 
    
         
             
            /*
         
     | 
| 
       10056 
8891 
     | 
    
         
             
             * Rule: box-sizing doesn't work in IE6 and IE7.
         
     | 
| 
         @@ -10078,10 +8913,6 @@ CSSLint.addRule({ 
     | 
|
| 
       10078 
8913 
     | 
    
         
             
                }
         
     | 
| 
       10079 
8914 
     | 
    
         | 
| 
       10080 
8915 
     | 
    
         
             
            });
         
     | 
| 
       10081 
     | 
    
         
            -
            /*
         
     | 
| 
       10082 
     | 
    
         
            -
             * Rule: Include all compatible vendor prefixes to reach a wider
         
     | 
| 
       10083 
     | 
    
         
            -
             * range of users.
         
     | 
| 
       10084 
     | 
    
         
            -
             */
         
     | 
| 
       10085 
8916 
     | 
    
         
             
            /*global CSSLint*/ 
         
     | 
| 
       10086 
8917 
     | 
    
         
             
            CSSLint.addRule({
         
     | 
| 
       10087 
8918 
     | 
    
         | 
| 
         @@ -10249,13 +9080,6 @@ CSSLint.addRule({ 
     | 
|
| 
       10249 
9080 
     | 
    
         
             
                    });
         
     | 
| 
       10250 
9081 
     | 
    
         
             
                }
         
     | 
| 
       10251 
9082 
     | 
    
         
             
            });
         
     | 
| 
       10252 
     | 
    
         
            -
            /*
         
     | 
| 
       10253 
     | 
    
         
            -
             * Rule: Certain properties don't play well with certain display values. 
         
     | 
| 
       10254 
     | 
    
         
            -
             * - float should not be used with inline-block
         
     | 
| 
       10255 
     | 
    
         
            -
             * - height, width, margin-top, margin-bottom, float should not be used with inline
         
     | 
| 
       10256 
     | 
    
         
            -
             * - vertical-align should not be used with block
         
     | 
| 
       10257 
     | 
    
         
            -
             * - margin, float should not be used with table-*
         
     | 
| 
       10258 
     | 
    
         
            -
             */
         
     | 
| 
       10259 
9083 
     | 
    
         
             
            /*global CSSLint*/
         
     | 
| 
       10260 
9084 
     | 
    
         
             
            CSSLint.addRule({
         
     | 
| 
       10261 
9085 
     | 
    
         | 
| 
         @@ -10366,9 +9190,6 @@ CSSLint.addRule({ 
     | 
|
| 
       10366 
9190 
     | 
    
         
             
                }
         
     | 
| 
       10367 
9191 
     | 
    
         | 
| 
       10368 
9192 
     | 
    
         
             
            });
         
     | 
| 
       10369 
     | 
    
         
            -
            /*
         
     | 
| 
       10370 
     | 
    
         
            -
             * Rule: Disallow duplicate background-images (using url).
         
     | 
| 
       10371 
     | 
    
         
            -
             */
         
     | 
| 
       10372 
9193 
     | 
    
         
             
            /*global CSSLint*/
         
     | 
| 
       10373 
9194 
     | 
    
         
             
            CSSLint.addRule({
         
     | 
| 
       10374 
9195 
     | 
    
         | 
| 
         @@ -10403,10 +9224,6 @@ CSSLint.addRule({ 
     | 
|
| 
       10403 
9224 
     | 
    
         
             
                    });
         
     | 
| 
       10404 
9225 
     | 
    
         
             
                }
         
     | 
| 
       10405 
9226 
     | 
    
         
             
            });
         
     | 
| 
       10406 
     | 
    
         
            -
            /*
         
     | 
| 
       10407 
     | 
    
         
            -
             * Rule: Duplicate properties must appear one after the other. If an already-defined
         
     | 
| 
       10408 
     | 
    
         
            -
             * property appears somewhere else in the rule, then it's likely an error.
         
     | 
| 
       10409 
     | 
    
         
            -
             */
         
     | 
| 
       10410 
9227 
     | 
    
         
             
            /*global CSSLint*/
         
     | 
| 
       10411 
9228 
     | 
    
         
             
            CSSLint.addRule({
         
     | 
| 
       10412 
9229 
     | 
    
         | 
| 
         @@ -10449,9 +9266,6 @@ CSSLint.addRule({ 
     | 
|
| 
       10449 
9266 
     | 
    
         
             
                }
         
     | 
| 
       10450 
9267 
     | 
    
         | 
| 
       10451 
9268 
     | 
    
         
             
            });
         
     | 
| 
       10452 
     | 
    
         
            -
            /*
         
     | 
| 
       10453 
     | 
    
         
            -
             * Rule: Style rules without any properties defined should be removed.
         
     | 
| 
       10454 
     | 
    
         
            -
             */
         
     | 
| 
       10455 
9269 
     | 
    
         
             
            /*global CSSLint*/
         
     | 
| 
       10456 
9270 
     | 
    
         
             
            CSSLint.addRule({
         
     | 
| 
       10457 
9271 
     | 
    
         | 
| 
         @@ -10483,9 +9297,6 @@ CSSLint.addRule({ 
     | 
|
| 
       10483 
9297 
     | 
    
         
             
                }
         
     | 
| 
       10484 
9298 
     | 
    
         | 
| 
       10485 
9299 
     | 
    
         
             
            });
         
     | 
| 
       10486 
     | 
    
         
            -
            /*
         
     | 
| 
       10487 
     | 
    
         
            -
             * Rule: There should be no syntax errors. (Duh.)
         
     | 
| 
       10488 
     | 
    
         
            -
             */
         
     | 
| 
       10489 
9300 
     | 
    
         
             
            /*global CSSLint*/
         
     | 
| 
       10490 
9301 
     | 
    
         
             
            CSSLint.addRule({
         
     | 
| 
       10491 
9302 
     | 
    
         | 
| 
         @@ -10506,8 +9317,6 @@ CSSLint.addRule({ 
     | 
|
| 
       10506 
9317 
     | 
    
         
             
                }
         
     | 
| 
       10507 
9318 
     | 
    
         | 
| 
       10508 
9319 
     | 
    
         
             
            });
         
     | 
| 
       10509 
     | 
    
         
            -
             
     | 
| 
       10510 
     | 
    
         
            -
            /*global CSSLint*/
         
     | 
| 
       10511 
9320 
     | 
    
         
             
            CSSLint.addRule({
         
     | 
| 
       10512 
9321 
     | 
    
         | 
| 
       10513 
9322 
     | 
    
         
             
                //rule information
         
     | 
| 
         @@ -10573,10 +9382,6 @@ CSSLint.addRule({ 
     | 
|
| 
       10573 
9382 
     | 
    
         
             
                }
         
     | 
| 
       10574 
9383 
     | 
    
         | 
| 
       10575 
9384 
     | 
    
         
             
            });
         
     | 
| 
       10576 
     | 
    
         
            -
            /*
         
     | 
| 
       10577 
     | 
    
         
            -
             * Rule: You shouldn't use more than 10 floats. If you do, there's probably
         
     | 
| 
       10578 
     | 
    
         
            -
             * room for some abstraction.
         
     | 
| 
       10579 
     | 
    
         
            -
             */
         
     | 
| 
       10580 
9385 
     | 
    
         
             
            /*global CSSLint*/
         
     | 
| 
       10581 
9386 
     | 
    
         
             
            CSSLint.addRule({
         
     | 
| 
       10582 
9387 
     | 
    
         | 
| 
         @@ -10609,9 +9414,6 @@ CSSLint.addRule({ 
     | 
|
| 
       10609 
9414 
     | 
    
         
             
                }
         
     | 
| 
       10610 
9415 
     | 
    
         | 
| 
       10611 
9416 
     | 
    
         
             
            });
         
     | 
| 
       10612 
     | 
    
         
            -
            /*
         
     | 
| 
       10613 
     | 
    
         
            -
             * Rule: Avoid too many @font-face declarations in the same stylesheet.
         
     | 
| 
       10614 
     | 
    
         
            -
             */
         
     | 
| 
       10615 
9417 
     | 
    
         
             
            /*global CSSLint*/
         
     | 
| 
       10616 
9418 
     | 
    
         
             
            CSSLint.addRule({
         
     | 
| 
       10617 
9419 
     | 
    
         | 
| 
         @@ -10639,9 +9441,6 @@ CSSLint.addRule({ 
     | 
|
| 
       10639 
9441 
     | 
    
         
             
                }
         
     | 
| 
       10640 
9442 
     | 
    
         | 
| 
       10641 
9443 
     | 
    
         
             
            });
         
     | 
| 
       10642 
     | 
    
         
            -
            /*
         
     | 
| 
       10643 
     | 
    
         
            -
             * Rule: You shouldn't need more than 9 font-size declarations.
         
     | 
| 
       10644 
     | 
    
         
            -
             */
         
     | 
| 
       10645 
9444 
     | 
    
         | 
| 
       10646 
9445 
     | 
    
         
             
            /*global CSSLint*/
         
     | 
| 
       10647 
9446 
     | 
    
         
             
            CSSLint.addRule({
         
     | 
| 
         @@ -10674,9 +9473,6 @@ CSSLint.addRule({ 
     | 
|
| 
       10674 
9473 
     | 
    
         
             
                }
         
     | 
| 
       10675 
9474 
     | 
    
         | 
| 
       10676 
9475 
     | 
    
         
             
            });
         
     | 
| 
       10677 
     | 
    
         
            -
            /*
         
     | 
| 
       10678 
     | 
    
         
            -
             * Rule: When using a vendor-prefixed gradient, make sure to use them all.
         
     | 
| 
       10679 
     | 
    
         
            -
             */
         
     | 
| 
       10680 
9476 
     | 
    
         
             
            /*global CSSLint*/
         
     | 
| 
       10681 
9477 
     | 
    
         
             
            CSSLint.addRule({
         
     | 
| 
       10682 
9478 
     | 
    
         | 
| 
         @@ -10743,9 +9539,6 @@ CSSLint.addRule({ 
     | 
|
| 
       10743 
9539 
     | 
    
         
             
                }
         
     | 
| 
       10744 
9540 
     | 
    
         | 
| 
       10745 
9541 
     | 
    
         
             
            });
         
     | 
| 
       10746 
     | 
    
         
            -
            /*
         
     | 
| 
       10747 
     | 
    
         
            -
             * Rule: Don't use IDs for selectors.
         
     | 
| 
       10748 
     | 
    
         
            -
             */
         
     | 
| 
       10749 
9542 
     | 
    
         
             
            /*global CSSLint*/
         
     | 
| 
       10750 
9543 
     | 
    
         
             
            CSSLint.addRule({
         
     | 
| 
       10751 
9544 
     | 
    
         | 
| 
         @@ -10793,9 +9586,6 @@ CSSLint.addRule({ 
     | 
|
| 
       10793 
9586 
     | 
    
         
             
                }
         
     | 
| 
       10794 
9587 
     | 
    
         | 
| 
       10795 
9588 
     | 
    
         
             
            });
         
     | 
| 
       10796 
     | 
    
         
            -
            /*
         
     | 
| 
       10797 
     | 
    
         
            -
             * Rule: Don't use @import, use <link> instead.
         
     | 
| 
       10798 
     | 
    
         
            -
             */
         
     | 
| 
       10799 
9589 
     | 
    
         
             
            /*global CSSLint*/
         
     | 
| 
       10800 
9590 
     | 
    
         
             
            CSSLint.addRule({
         
     | 
| 
       10801 
9591 
     | 
    
         | 
| 
         @@ -10816,11 +9606,6 @@ CSSLint.addRule({ 
     | 
|
| 
       10816 
9606 
     | 
    
         
             
                }
         
     | 
| 
       10817 
9607 
     | 
    
         | 
| 
       10818 
9608 
     | 
    
         
             
            });
         
     | 
| 
       10819 
     | 
    
         
            -
            /*
         
     | 
| 
       10820 
     | 
    
         
            -
             * Rule: Make sure !important is not overused, this could lead to specificity
         
     | 
| 
       10821 
     | 
    
         
            -
             * war. Display a warning on !important declarations, an error if it's
         
     | 
| 
       10822 
     | 
    
         
            -
             * used more at least 10 times.
         
     | 
| 
       10823 
     | 
    
         
            -
             */
         
     | 
| 
       10824 
9609 
     | 
    
         
             
            /*global CSSLint*/
         
     | 
| 
       10825 
9610 
     | 
    
         
             
            CSSLint.addRule({
         
     | 
| 
       10826 
9611 
     | 
    
         | 
| 
         @@ -10853,10 +9638,6 @@ CSSLint.addRule({ 
     | 
|
| 
       10853 
9638 
     | 
    
         
             
                }
         
     | 
| 
       10854 
9639 
     | 
    
         | 
| 
       10855 
9640 
     | 
    
         
             
            });
         
     | 
| 
       10856 
     | 
    
         
            -
            /*
         
     | 
| 
       10857 
     | 
    
         
            -
             * Rule: Properties should be known (listed in CSS3 specification) or
         
     | 
| 
       10858 
     | 
    
         
            -
             * be a vendor-prefixed property.
         
     | 
| 
       10859 
     | 
    
         
            -
             */
         
     | 
| 
       10860 
9641 
     | 
    
         
             
            /*global CSSLint*/
         
     | 
| 
       10861 
9642 
     | 
    
         
             
            CSSLint.addRule({
         
     | 
| 
       10862 
9643 
     | 
    
         | 
| 
         @@ -11170,10 +9951,6 @@ CSSLint.addRule({ 
     | 
|
| 
       11170 
9951 
     | 
    
         
             
                }
         
     | 
| 
       11171 
9952 
     | 
    
         | 
| 
       11172 
9953 
     | 
    
         
             
            });
         
     | 
| 
       11173 
     | 
    
         
            -
            /*
         
     | 
| 
       11174 
     | 
    
         
            -
             * Rule: outline: none or outline: 0 should only be used in a :focus rule
         
     | 
| 
       11175 
     | 
    
         
            -
             *       and only if there are other properties in the same rule.
         
     | 
| 
       11176 
     | 
    
         
            -
             */
         
     | 
| 
       11177 
9954 
     | 
    
         
             
            /*global CSSLint*/
         
     | 
| 
       11178 
9955 
     | 
    
         
             
            CSSLint.addRule({
         
     | 
| 
       11179 
9956 
     | 
    
         | 
| 
         @@ -11243,9 +10020,6 @@ CSSLint.addRule({ 
     | 
|
| 
       11243 
10020 
     | 
    
         
             
                }
         
     | 
| 
       11244 
10021 
     | 
    
         | 
| 
       11245 
10022 
     | 
    
         
             
            });
         
     | 
| 
       11246 
     | 
    
         
            -
            /*
         
     | 
| 
       11247 
     | 
    
         
            -
             * Rule: Don't use classes or IDs with elements (a.foo or a#foo).
         
     | 
| 
       11248 
     | 
    
         
            -
             */
         
     | 
| 
       11249 
10023 
     | 
    
         
             
            /*global CSSLint*/
         
     | 
| 
       11250 
10024 
     | 
    
         
             
            CSSLint.addRule({
         
     | 
| 
       11251 
10025 
     | 
    
         | 
| 
         @@ -11306,9 +10080,6 @@ CSSLint.addRule({ 
     | 
|
| 
       11306 
10080 
     | 
    
         
             
                }
         
     | 
| 
       11307 
10081 
     | 
    
         | 
| 
       11308 
10082 
     | 
    
         
             
            });
         
     | 
| 
       11309 
     | 
    
         
            -
            /*
         
     | 
| 
       11310 
     | 
    
         
            -
             * Rule: Headings (h1-h6) should not be qualified (namespaced).
         
     | 
| 
       11311 
     | 
    
         
            -
             */
         
     | 
| 
       11312 
10083 
     | 
    
         
             
            /*global CSSLint*/
         
     | 
| 
       11313 
10084 
     | 
    
         
             
            CSSLint.addRule({
         
     | 
| 
       11314 
10085 
     | 
    
         | 
| 
         @@ -11344,9 +10115,6 @@ CSSLint.addRule({ 
     | 
|
| 
       11344 
10115 
     | 
    
         
             
                }
         
     | 
| 
       11345 
10116 
     | 
    
         | 
| 
       11346 
10117 
     | 
    
         
             
            });
         
     | 
| 
       11347 
     | 
    
         
            -
            /*
         
     | 
| 
       11348 
     | 
    
         
            -
             * Rule: Selectors that look like regular expressions are slow and should be avoided.
         
     | 
| 
       11349 
     | 
    
         
            -
             */
         
     | 
| 
       11350 
10118 
     | 
    
         
             
            /*global CSSLint*/
         
     | 
| 
       11351 
10119 
     | 
    
         
             
            CSSLint.addRule({
         
     | 
| 
       11352 
10120 
     | 
    
         | 
| 
         @@ -11388,9 +10156,6 @@ CSSLint.addRule({ 
     | 
|
| 
       11388 
10156 
     | 
    
         
             
                }
         
     | 
| 
       11389 
10157 
     | 
    
         | 
| 
       11390 
10158 
     | 
    
         
             
            });
         
     | 
| 
       11391 
     | 
    
         
            -
            /*
         
     | 
| 
       11392 
     | 
    
         
            -
             * Rule: Total number of rules should not exceed x.
         
     | 
| 
       11393 
     | 
    
         
            -
             */
         
     | 
| 
       11394 
10159 
     | 
    
         
             
            /*global CSSLint*/
         
     | 
| 
       11395 
10160 
     | 
    
         
             
            CSSLint.addRule({
         
     | 
| 
       11396 
10161 
     | 
    
         | 
| 
         @@ -11416,10 +10181,6 @@ CSSLint.addRule({ 
     | 
|
| 
       11416 
10181 
     | 
    
         
             
                }
         
     | 
| 
       11417 
10182 
     | 
    
         | 
| 
       11418 
10183 
     | 
    
         
             
            });
         
     | 
| 
       11419 
     | 
    
         
            -
            /*
         
     | 
| 
       11420 
     | 
    
         
            -
             * Rule: Use shorthand properties where possible.
         
     | 
| 
       11421 
     | 
    
         
            -
             * 
         
     | 
| 
       11422 
     | 
    
         
            -
             */
         
     | 
| 
       11423 
10184 
     | 
    
         
             
            /*global CSSLint*/
         
     | 
| 
       11424 
10185 
     | 
    
         
             
            CSSLint.addRule({
         
     | 
| 
       11425 
10186 
     | 
    
         | 
| 
         @@ -11503,10 +10264,6 @@ CSSLint.addRule({ 
     | 
|
| 
       11503 
10264 
     | 
    
         
             
                }
         
     | 
| 
       11504 
10265 
     | 
    
         | 
| 
       11505 
10266 
     | 
    
         
             
            });
         
     | 
| 
       11506 
     | 
    
         
            -
            /*
         
     | 
| 
       11507 
     | 
    
         
            -
             * Rule: Don't use text-indent for image replacement if you need to support rtl. 
         
     | 
| 
       11508 
     | 
    
         
            -
             * 
         
     | 
| 
       11509 
     | 
    
         
            -
             */
         
     | 
| 
       11510 
10267 
     | 
    
         
             
            /*global CSSLint*/
         
     | 
| 
       11511 
10268 
     | 
    
         
             
            CSSLint.addRule({
         
     | 
| 
       11512 
10269 
     | 
    
         | 
| 
         @@ -11554,9 +10311,6 @@ CSSLint.addRule({ 
     | 
|
| 
       11554 
10311 
     | 
    
         
             
                }
         
     | 
| 
       11555 
10312 
     | 
    
         | 
| 
       11556 
10313 
     | 
    
         
             
            });
         
     | 
| 
       11557 
     | 
    
         
            -
            /*
         
     | 
| 
       11558 
     | 
    
         
            -
             * Rule: Headings (h1-h6) should be defined only once.
         
     | 
| 
       11559 
     | 
    
         
            -
             */
         
     | 
| 
       11560 
10314 
     | 
    
         
             
            /*global CSSLint*/
         
     | 
| 
       11561 
10315 
     | 
    
         
             
            CSSLint.addRule({
         
     | 
| 
       11562 
10316 
     | 
    
         | 
| 
         @@ -11628,9 +10382,6 @@ CSSLint.addRule({ 
     | 
|
| 
       11628 
10382 
     | 
    
         
             
                }
         
     | 
| 
       11629 
10383 
     | 
    
         | 
| 
       11630 
10384 
     | 
    
         
             
            });
         
     | 
| 
       11631 
     | 
    
         
            -
            /*
         
     | 
| 
       11632 
     | 
    
         
            -
             * Rule: Don't use universal selector because it's slow.
         
     | 
| 
       11633 
     | 
    
         
            -
             */
         
     | 
| 
       11634 
10385 
     | 
    
         
             
            /*global CSSLint*/
         
     | 
| 
       11635 
10386 
     | 
    
         
             
            CSSLint.addRule({
         
     | 
| 
       11636 
10387 
     | 
    
         | 
| 
         @@ -11663,9 +10414,6 @@ CSSLint.addRule({ 
     | 
|
| 
       11663 
10414 
     | 
    
         
             
                }
         
     | 
| 
       11664 
10415 
     | 
    
         | 
| 
       11665 
10416 
     | 
    
         
             
            });
         
     | 
| 
       11666 
     | 
    
         
            -
            /*
         
     | 
| 
       11667 
     | 
    
         
            -
             * Rule: Don't use unqualified attribute selectors because they're just like universal selectors.
         
     | 
| 
       11668 
     | 
    
         
            -
             */
         
     | 
| 
       11669 
10417 
     | 
    
         
             
            /*global CSSLint*/
         
     | 
| 
       11670 
10418 
     | 
    
         
             
            CSSLint.addRule({
         
     | 
| 
       11671 
10419 
     | 
    
         | 
| 
         @@ -11705,10 +10453,6 @@ CSSLint.addRule({ 
     | 
|
| 
       11705 
10453 
     | 
    
         
             
                }
         
     | 
| 
       11706 
10454 
     | 
    
         | 
| 
       11707 
10455 
     | 
    
         
             
            });
         
     | 
| 
       11708 
     | 
    
         
            -
            /*
         
     | 
| 
       11709 
     | 
    
         
            -
             * Rule: When using a vendor-prefixed property, make sure to
         
     | 
| 
       11710 
     | 
    
         
            -
             * include the standard one.
         
     | 
| 
       11711 
     | 
    
         
            -
             */
         
     | 
| 
       11712 
10456 
     | 
    
         
             
            /*global CSSLint*/
         
     | 
| 
       11713 
10457 
     | 
    
         
             
            CSSLint.addRule({
         
     | 
| 
       11714 
10458 
     | 
    
         | 
| 
         @@ -11848,9 +10592,6 @@ CSSLint.addRule({ 
     | 
|
| 
       11848 
10592 
     | 
    
         
             
                }
         
     | 
| 
       11849 
10593 
     | 
    
         | 
| 
       11850 
10594 
     | 
    
         
             
            });
         
     | 
| 
       11851 
     | 
    
         
            -
            /*
         
     | 
| 
       11852 
     | 
    
         
            -
             * Rule: You don't need to specify units when a value is 0.
         
     | 
| 
       11853 
     | 
    
         
            -
             */
         
     | 
| 
       11854 
10595 
     | 
    
         
             
            /*global CSSLint*/
         
     | 
| 
       11855 
10596 
     | 
    
         
             
            CSSLint.addRule({
         
     | 
| 
       11856 
10597 
     | 
    
         | 
| 
         @@ -11882,7 +10623,6 @@ CSSLint.addRule({ 
     | 
|
| 
       11882 
10623 
     | 
    
         
             
                }
         
     | 
| 
       11883 
10624 
     | 
    
         | 
| 
       11884 
10625 
     | 
    
         
             
            });
         
     | 
| 
       11885 
     | 
    
         
            -
            /*global CSSLint*/
         
     | 
| 
       11886 
10626 
     | 
    
         
             
            CSSLint.addFormatter({
         
     | 
| 
       11887 
10627 
     | 
    
         
             
                //format information
         
     | 
| 
       11888 
10628 
     | 
    
         
             
                id: "checkstyle-xml",
         
     | 
| 
         @@ -11914,32 +10654,12 @@ CSSLint.addFormatter({ 
     | 
|
| 
       11914 
10654 
     | 
    
         
             
                formatResults: function(results, filename, options) {
         
     | 
| 
       11915 
10655 
     | 
    
         
             
                    var messages = results.messages,
         
     | 
| 
       11916 
10656 
     | 
    
         
             
                        output = [];
         
     | 
| 
       11917 
     | 
    
         
            -
             
     | 
| 
       11918 
     | 
    
         
            -
                    /**
         
     | 
| 
       11919 
     | 
    
         
            -
                     * Generate a source string for a rule.
         
     | 
| 
       11920 
     | 
    
         
            -
                     * Checkstyle source strings usually resemble Java class names e.g
         
     | 
| 
       11921 
     | 
    
         
            -
                     * net.csslint.SomeRuleName
         
     | 
| 
       11922 
     | 
    
         
            -
                     * @param {Object} rule
         
     | 
| 
       11923 
     | 
    
         
            -
                     * @return rule source as {String}
         
     | 
| 
       11924 
     | 
    
         
            -
                     */
         
     | 
| 
       11925 
10657 
     | 
    
         
             
                    var generateSource = function(rule) {
         
     | 
| 
       11926 
10658 
     | 
    
         
             
                        if (!rule || !('name' in rule)) {
         
     | 
| 
       11927 
10659 
     | 
    
         
             
                            return "";
         
     | 
| 
       11928 
10660 
     | 
    
         
             
                        }
         
     | 
| 
       11929 
10661 
     | 
    
         
             
                        return 'net.csslint.' + rule.name.replace(/\s/g,'');
         
     | 
| 
       11930 
10662 
     | 
    
         
             
                    };
         
     | 
| 
       11931 
     | 
    
         
            -
             
     | 
| 
       11932 
     | 
    
         
            -
                    /**
         
     | 
| 
       11933 
     | 
    
         
            -
                     * Replace special characters before write to output.
         
     | 
| 
       11934 
     | 
    
         
            -
                     *
         
     | 
| 
       11935 
     | 
    
         
            -
                     * Rules:
         
     | 
| 
       11936 
     | 
    
         
            -
                     *  - single quotes is the escape sequence for double-quotes
         
     | 
| 
       11937 
     | 
    
         
            -
                     *  - < is the escape sequence for <
         
     | 
| 
       11938 
     | 
    
         
            -
                     *  - > is the escape sequence for >
         
     | 
| 
       11939 
     | 
    
         
            -
                     *
         
     | 
| 
       11940 
     | 
    
         
            -
                     * @param {String} message to escape
         
     | 
| 
       11941 
     | 
    
         
            -
                     * @return escaped message as {String}
         
     | 
| 
       11942 
     | 
    
         
            -
                     */
         
     | 
| 
       11943 
10663 
     | 
    
         
             
                    var escapeSpecialCharacters = function(str) {
         
     | 
| 
       11944 
10664 
     | 
    
         
             
                        if (!str || str.constructor !== String) {
         
     | 
| 
       11945 
10665 
     | 
    
         
             
                            return "";
         
     | 
| 
         @@ -11962,7 +10682,6 @@ CSSLint.addFormatter({ 
     | 
|
| 
       11962 
10682 
     | 
    
         
             
                    return output.join("");
         
     | 
| 
       11963 
10683 
     | 
    
         
             
                }
         
     | 
| 
       11964 
10684 
     | 
    
         
             
            });
         
     | 
| 
       11965 
     | 
    
         
            -
            /*global CSSLint*/
         
     | 
| 
       11966 
10685 
     | 
    
         
             
            CSSLint.addFormatter({
         
     | 
| 
       11967 
10686 
     | 
    
         
             
                //format information
         
     | 
| 
       11968 
10687 
     | 
    
         
             
                id: "compact",
         
     | 
| 
         @@ -11995,12 +10714,6 @@ CSSLint.addFormatter({ 
     | 
|
| 
       11995 
10714 
     | 
    
         
             
                    var messages = results.messages,
         
     | 
| 
       11996 
10715 
     | 
    
         
             
                        output = "";
         
     | 
| 
       11997 
10716 
     | 
    
         
             
                    options = options || {};
         
     | 
| 
       11998 
     | 
    
         
            -
             
     | 
| 
       11999 
     | 
    
         
            -
                    /**
         
     | 
| 
       12000 
     | 
    
         
            -
                     * Capitalize and return given string.
         
     | 
| 
       12001 
     | 
    
         
            -
                     * @param str {String} to capitalize
         
     | 
| 
       12002 
     | 
    
         
            -
                     * @return {String} capitalized
         
     | 
| 
       12003 
     | 
    
         
            -
                     */
         
     | 
| 
       12004 
10717 
     | 
    
         
             
                    var capitalize = function(str) {
         
     | 
| 
       12005 
10718 
     | 
    
         
             
                        return str.charAt(0).toUpperCase() + str.slice(1);
         
     | 
| 
       12006 
10719 
     | 
    
         
             
                    };
         
     | 
| 
         @@ -12021,7 +10734,6 @@ CSSLint.addFormatter({ 
     | 
|
| 
       12021 
10734 
     | 
    
         
             
                    return output;
         
     | 
| 
       12022 
10735 
     | 
    
         
             
                }
         
     | 
| 
       12023 
10736 
     | 
    
         
             
            });
         
     | 
| 
       12024 
     | 
    
         
            -
            /*global CSSLint*/
         
     | 
| 
       12025 
10737 
     | 
    
         
             
            CSSLint.addFormatter({
         
     | 
| 
       12026 
10738 
     | 
    
         
             
                //format information
         
     | 
| 
       12027 
10739 
     | 
    
         
             
                id: "csslint-xml",
         
     | 
| 
         @@ -12053,18 +10765,6 @@ CSSLint.addFormatter({ 
     | 
|
| 
       12053 
10765 
     | 
    
         
             
                formatResults: function(results, filename, options) {
         
     | 
| 
       12054 
10766 
     | 
    
         
             
                    var messages = results.messages,
         
     | 
| 
       12055 
10767 
     | 
    
         
             
                        output = [];
         
     | 
| 
       12056 
     | 
    
         
            -
             
     | 
| 
       12057 
     | 
    
         
            -
                    /**
         
     | 
| 
       12058 
     | 
    
         
            -
                     * Replace special characters before write to output.
         
     | 
| 
       12059 
     | 
    
         
            -
                     *
         
     | 
| 
       12060 
     | 
    
         
            -
                     * Rules:
         
     | 
| 
       12061 
     | 
    
         
            -
                     *  - single quotes is the escape sequence for double-quotes
         
     | 
| 
       12062 
     | 
    
         
            -
                     *  - < is the escape sequence for <
         
     | 
| 
       12063 
     | 
    
         
            -
                     *  - > is the escape sequence for >
         
     | 
| 
       12064 
     | 
    
         
            -
                     * 
         
     | 
| 
       12065 
     | 
    
         
            -
                     * @param {String} message to escape
         
     | 
| 
       12066 
     | 
    
         
            -
                     * @return escaped message as {String}
         
     | 
| 
       12067 
     | 
    
         
            -
                     */
         
     | 
| 
       12068 
10768 
     | 
    
         
             
                    var escapeSpecialCharacters = function(str) {
         
     | 
| 
       12069 
10769 
     | 
    
         
             
                        if (!str || str.constructor !== String) {
         
     | 
| 
       12070 
10770 
     | 
    
         
             
                            return "";
         
     | 
| 
         @@ -12088,7 +10788,6 @@ CSSLint.addFormatter({ 
     | 
|
| 
       12088 
10788 
     | 
    
         
             
                    return output.join("");
         
     | 
| 
       12089 
10789 
     | 
    
         
             
                }
         
     | 
| 
       12090 
10790 
     | 
    
         
             
            });
         
     | 
| 
       12091 
     | 
    
         
            -
            /*global CSSLint*/
         
     | 
| 
       12092 
10791 
     | 
    
         
             
            CSSLint.addFormatter({
         
     | 
| 
       12093 
10792 
     | 
    
         
             
                //format information
         
     | 
| 
       12094 
10793 
     | 
    
         
             
                id: "lint-xml",
         
     | 
| 
         @@ -12120,18 +10819,6 @@ CSSLint.addFormatter({ 
     | 
|
| 
       12120 
10819 
     | 
    
         
             
                formatResults: function(results, filename, options) {
         
     | 
| 
       12121 
10820 
     | 
    
         
             
                    var messages = results.messages,
         
     | 
| 
       12122 
10821 
     | 
    
         
             
                        output = [];
         
     | 
| 
       12123 
     | 
    
         
            -
             
     | 
| 
       12124 
     | 
    
         
            -
                    /**
         
     | 
| 
       12125 
     | 
    
         
            -
                     * Replace special characters before write to output.
         
     | 
| 
       12126 
     | 
    
         
            -
                     *
         
     | 
| 
       12127 
     | 
    
         
            -
                     * Rules:
         
     | 
| 
       12128 
     | 
    
         
            -
                     *  - single quotes is the escape sequence for double-quotes
         
     | 
| 
       12129 
     | 
    
         
            -
                     *  - < is the escape sequence for <
         
     | 
| 
       12130 
     | 
    
         
            -
                     *  - > is the escape sequence for >
         
     | 
| 
       12131 
     | 
    
         
            -
                     * 
         
     | 
| 
       12132 
     | 
    
         
            -
                     * @param {String} message to escape
         
     | 
| 
       12133 
     | 
    
         
            -
                     * @return escaped message as {String}
         
     | 
| 
       12134 
     | 
    
         
            -
                     */
         
     | 
| 
       12135 
10822 
     | 
    
         
             
                    var escapeSpecialCharacters = function(str) {
         
     | 
| 
       12136 
10823 
     | 
    
         
             
                        if (!str || str.constructor !== String) {
         
     | 
| 
       12137 
10824 
     | 
    
         
             
                            return "";
         
     | 
| 
         @@ -12156,7 +10843,6 @@ CSSLint.addFormatter({ 
     | 
|
| 
       12156 
10843 
     | 
    
         
             
                    return output.join("");
         
     | 
| 
       12157 
10844 
     | 
    
         
             
                }
         
     | 
| 
       12158 
10845 
     | 
    
         
             
            });
         
     | 
| 
       12159 
     | 
    
         
            -
            /*global CSSLint*/
         
     | 
| 
       12160 
10846 
     | 
    
         
             
            CSSLint.addFormatter({
         
     | 
| 
       12161 
10847 
     | 
    
         
             
                //format information
         
     | 
| 
       12162 
10848 
     | 
    
         
             
                id: "text",
         
     |