You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by ga...@apache.org on 2013/10/30 14:43:08 UTC

[14/52] [partial] Remove unneeded ace files and codemirror

http://git-wip-us.apache.org/repos/asf/couchdb/blob/5b8fb9c3/src/fauxton/assets/js/libs/ace/mode/dot_highlight_rules.js
----------------------------------------------------------------------
diff --git a/src/fauxton/assets/js/libs/ace/mode/dot_highlight_rules.js b/src/fauxton/assets/js/libs/ace/mode/dot_highlight_rules.js
deleted file mode 100644
index a4fe3b0..0000000
--- a/src/fauxton/assets/js/libs/ace/mode/dot_highlight_rules.js
+++ /dev/null
@@ -1,126 +0,0 @@
-define(function(require, exports, module) {
-"use strict";
-
-var oop = require("../lib/oop");
-var lang = require("../lib/lang");
-var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
-var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules;
-
-var DotHighlightRules = function() {
-
-   var keywords = lang.arrayToMap(
-        ("strict|node|edge|graph|digraph|subgraph").split("|")
-   );
-
-   var attributes = lang.arrayToMap(
-        ("damping|k|url|area|arrowhead|arrowsize|arrowtail|aspect|bb|bgcolor|center|charset|clusterrank|color|colorscheme|comment|compound|concentrate|constraint|decorate|defaultdist|dim|dimen|dir|diredgeconstraints|distortion|dpi|edgeurl|edgehref|edgetarget|edgetooltip|epsilon|esep|fillcolor|fixedsize|fontcolor|fontname|fontnames|fontpath|fontsize|forcelabels|gradientangle|group|headurl|head_lp|headclip|headhref|headlabel|headport|headtarget|headtooltip|height|href|id|image|imagepath|imagescale|label|labelurl|label_scheme|labelangle|labeldistance|labelfloat|labelfontcolor|labelfontname|labelfontsize|labelhref|labeljust|labelloc|labeltarget|labeltooltip|landscape|layer|layerlistsep|layers|layerselect|layersep|layout|len|levels|levelsgap|lhead|lheight|lp|ltail|lwidth|margin|maxiter|mclimit|mindist|minlen|mode|model|mosek|nodesep|nojustify|normalize|nslimit|nslimit1|ordering|orientation|outputorder|overlap|overlap_scaling|pack|packmode|pad|page|pagedir|pencolor|penwidth|peripheries|pi
 n|pos|quadtree|quantum|rank|rankdir|ranksep|ratio|rects|regular|remincross|repulsiveforce|resolution|root|rotate|rotation|samehead|sametail|samplepoints|scale|searchsize|sep|shape|shapefile|showboxes|sides|size|skew|smoothing|sortv|splines|start|style|stylesheet|tailurl|tail_lp|tailclip|tailhref|taillabel|tailport|tailtarget|tailtooltip|target|tooltip|truecolor|vertices|viewport|voro_margin|weight|width|xlabel|xlp|z").split("|")
-   );
-
-   this.$rules = {
-        "start" : [
-            {
-                token : "comment",
-                regex : /\/\/.*$/
-            }, {
-                token : "comment",
-                regex : /#.*$/
-            }, {
-                token : "comment", // multi line comment
-                merge : true,
-                regex : /\/\*/,
-                next : "comment"
-            }, {
-                token : "string",
-                regex : "'(?=.)",
-                next  : "qstring"
-            }, {
-                token : "string",
-                regex : '"(?=.)',
-                next  : "qqstring"
-            }, {
-                token : "constant.numeric",
-                regex : /[+\-]?\d+(?:(?:\.\d*)?(?:[eE][+\-]?\d+)?)?\b/
-            }, {
-                token : "keyword.operator",
-                regex : /\+|=|\->/
-            }, {
-                token : "punctuation.operator",
-                regex : /,|;/
-            }, {
-                token : "paren.lparen",
-                regex : /[\[{]/
-            }, {
-                token : "paren.rparen",
-                regex : /[\]}]/
-            }, {
-                token: "comment",
-                regex: /^#!.*$/
-            }, {
-                token: function(value) {
-                    if (keywords.hasOwnProperty(value.toLowerCase())) {
-                        return "keyword";
-                    }
-                    else if (attributes.hasOwnProperty(value.toLowerCase())) {
-                        return "variable";
-                    }
-                    else {
-                        return "text";
-                    }
-                },
-                regex: "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"
-           }
-        ],
-        "comment" : [
-            {
-                token : "comment", // closing comment
-                regex : ".*?\\*\\/",
-                merge : true,
-                next : "start"
-            }, {
-                token : "comment", // comment spanning whole line
-                merge : true,
-                regex : ".+"
-            }
-        ],
-        "qqstring" : [
-            {
-                token : "string",
-                regex : '[^"\\\\]+',
-                merge : true
-            }, {
-                token : "string",
-                regex : "\\\\$",
-                next  : "qqstring",
-                merge : true
-            }, {
-                token : "string",
-                regex : '"|$',
-                next  : "start",
-                merge : true
-            }
-        ],
-        "qstring" : [
-            {
-                token : "string",
-                regex : "[^'\\\\]+",
-                merge : true
-            }, {
-                token : "string",
-                regex : "\\\\$",
-                next  : "qstring",
-                merge : true
-            }, {
-                token : "string",
-                regex : "'|$",
-                next  : "start",
-                merge : true
-            }
-        ]
-   };
-};
-
-oop.inherits(DotHighlightRules, TextHighlightRules);
-
-exports.DotHighlightRules = DotHighlightRules;
-
-});

http://git-wip-us.apache.org/repos/asf/couchdb/blob/5b8fb9c3/src/fauxton/assets/js/libs/ace/mode/ejs.js
----------------------------------------------------------------------
diff --git a/src/fauxton/assets/js/libs/ace/mode/ejs.js b/src/fauxton/assets/js/libs/ace/mode/ejs.js
deleted file mode 100644
index 50293e9..0000000
--- a/src/fauxton/assets/js/libs/ace/mode/ejs.js
+++ /dev/null
@@ -1,109 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
- * Distributed under the BSD license:
- *
- * Copyright (c) 2012, Ajax.org B.V.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *     * Redistributions of source code must retain the above copyright
- *       notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright
- *       notice, this list of conditions and the following disclaimer in the
- *       documentation and/or other materials provided with the distribution.
- *     * Neither the name of Ajax.org B.V. nor the
- *       names of its contributors may be used to endorse or promote products
- *       derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ***** END LICENSE BLOCK ***** */
-
-
-define(function(require, exports, module) {
-"use strict";
-
-var oop = require("../lib/oop");
-var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules;
-var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
-
-var EjsHighlightRules = function(start, end) {
-    HtmlHighlightRules.call(this);
-    
-    if (!start)
-        start = "(?:<%|<\\?|{{)";
-    if (!end)
-        end = "(?:%>|\\?>|}})";
-
-    for (var i in this.$rules) {
-        this.$rules[i].unshift({
-            token : "markup.list.meta.tag",
-            regex : start + "(?![>}])[-=]?",
-            push  : "ejs-start"
-        });
-    }
-    
-    this.embedRules(JavaScriptHighlightRules, "ejs-");
-    
-    this.$rules["ejs-start"].unshift({
-        token : "markup.list.meta.tag",
-        regex : "-?" + end,
-        next  : "pop"
-    }, {
-        token: "comment",
-        regex: "//.*?" + end,
-        next: "pop"
-    });
-
-    this.$rules["ejs-no_regex"].unshift({
-        token : "markup.list.meta.tag",
-        regex : "-?" + end,
-        next  : "pop"
-    }, {
-        token: "comment",
-        regex: "//.*?" + end,
-        next: "pop"
-    });
-    
-    this.normalizeRules();
-};
-
-
-oop.inherits(EjsHighlightRules, HtmlHighlightRules);
-
-exports.EjsHighlightRules = EjsHighlightRules;
-
-
-var oop = require("../lib/oop");
-var Tokenizer = require("../tokenizer").Tokenizer;
-var HtmlMode = require("./html").Mode;
-var JavaScriptMode = require("./javascript").Mode;
-var CssMode = require("./css").Mode;
-var RubyMode = require("./ruby").Mode;
-
-var Mode = function() {
-    HtmlMode.call(this);
-    this.HighlightRules = EjsHighlightRules;    
-    this.createModeDelegates({
-        "js-": JavaScriptMode,
-        "css-": CssMode,
-        "ejs-": JavaScriptMode
-    });
-};
-oop.inherits(Mode, HtmlMode);
-
-(function() {
-
-}).call(Mode.prototype);
-
-exports.Mode = Mode;
-});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/couchdb/blob/5b8fb9c3/src/fauxton/assets/js/libs/ace/mode/erlang.js
----------------------------------------------------------------------
diff --git a/src/fauxton/assets/js/libs/ace/mode/erlang.js b/src/fauxton/assets/js/libs/ace/mode/erlang.js
deleted file mode 100644
index d3d2e42..0000000
--- a/src/fauxton/assets/js/libs/ace/mode/erlang.js
+++ /dev/null
@@ -1,57 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
- * Distributed under the BSD license:
- *
- * Copyright (c) 2012, Ajax.org B.V.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *     * Redistributions of source code must retain the above copyright
- *       notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright
- *       notice, this list of conditions and the following disclaimer in the
- *       documentation and/or other materials provided with the distribution.
- *     * Neither the name of Ajax.org B.V. nor the
- *       names of its contributors may be used to endorse or promote products
- *       derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ***** END LICENSE BLOCK ***** */
-
-/*
-  THIS FILE WAS AUTOGENERATED BY mode.tmpl.js
-*/
-
-define(function(require, exports, module) {
-"use strict";
-
-var oop = require("../lib/oop");
-var TextMode = require("./text").Mode;
-var Tokenizer = require("../tokenizer").Tokenizer;
-var ErlangHighlightRules = require("./erlang_highlight_rules").ErlangHighlightRules;
-// TODO: pick appropriate fold mode
-var FoldMode = require("./folding/cstyle").FoldMode;
-
-var Mode = function() {
-    this.HighlightRules = ErlangHighlightRules;
-    this.foldingRules = new FoldMode();
-};
-oop.inherits(Mode, TextMode);
-
-(function() {
-    this.lineCommentStart = "%";
-    this.blockComment = {start: "/*", end: "*/"};
-}).call(Mode.prototype);
-
-exports.Mode = Mode;
-});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/couchdb/blob/5b8fb9c3/src/fauxton/assets/js/libs/ace/mode/erlang_highlight_rules.js
----------------------------------------------------------------------
diff --git a/src/fauxton/assets/js/libs/ace/mode/erlang_highlight_rules.js b/src/fauxton/assets/js/libs/ace/mode/erlang_highlight_rules.js
deleted file mode 100644
index 5ee7bfb..0000000
--- a/src/fauxton/assets/js/libs/ace/mode/erlang_highlight_rules.js
+++ /dev/null
@@ -1,876 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
- * Distributed under the BSD license:
- *
- * Copyright (c) 2012, Ajax.org B.V.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *     * Redistributions of source code must retain the above copyright
- *       notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright
- *       notice, this list of conditions and the following disclaimer in the
- *       documentation and/or other materials provided with the distribution.
- *     * Neither the name of Ajax.org B.V. nor the
- *       names of its contributors may be used to endorse or promote products
- *       derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ***** END LICENSE BLOCK ***** */
-
-/* This file was autogenerated from tm bundles\erlang.tmbundle\Syntaxes\Erlang.plist (uuid: ) */
-/****************************************************************************************
- * IT MIGHT NOT BE PERFECT ...But it's a good start from an existing *.tmlanguage file. *
- * fileTypes                                                                            *
- ****************************************************************************************/
-
-define(function(require, exports, module) {
-"use strict";
-
-var oop = require("../lib/oop");
-var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
-
-var ErlangHighlightRules = function() {
-    // regexp must not have capturing parentheses. Use (?:) instead.
-    // regexps are ordered -> the first match is used
-
-    this.$rules = { start: 
-       [ { include: '#module-directive' },
-         { include: '#import-export-directive' },
-         { include: '#behaviour-directive' },
-         { include: '#record-directive' },
-         { include: '#define-directive' },
-         { include: '#macro-directive' },
-         { include: '#directive' },
-         { include: '#function' },
-         { include: '#everything-else' } ],
-      '#atom': 
-       [ { token: 'punctuation.definition.symbol.begin.erlang',
-           regex: '\'',
-           push: 
-            [ { token: 'punctuation.definition.symbol.end.erlang',
-                regex: '\'',
-                next: 'pop' },
-              { token: 
-                 [ 'punctuation.definition.escape.erlang',
-                   'constant.other.symbol.escape.erlang',
-                   'punctuation.definition.escape.erlang',
-                   'constant.other.symbol.escape.erlang',
-                   'constant.other.symbol.escape.erlang' ],
-                regex: '(\\\\)(?:([bdefnrstv\\\\\'"])|(\\^)([@-_])|([0-7]{1,3}))' },
-              { token: 'invalid.illegal.atom.erlang', regex: '\\\\\\^?.?' },
-              { defaultToken: 'constant.other.symbol.quoted.single.erlang' } ] },
-         { token: 'constant.other.symbol.unquoted.erlang',
-           regex: '[a-z][a-zA-Z\\d@_]*' } ],
-      '#behaviour-directive': 
-       [ { token: 
-            [ 'meta.directive.behaviour.erlang',
-              'punctuation.section.directive.begin.erlang',
-              'meta.directive.behaviour.erlang',
-              'keyword.control.directive.behaviour.erlang',
-              'meta.directive.behaviour.erlang',
-              'punctuation.definition.parameters.begin.erlang',
-              'meta.directive.behaviour.erlang',
-              'entity.name.type.class.behaviour.definition.erlang',
-              'meta.directive.behaviour.erlang',
-              'punctuation.definition.parameters.end.erlang',
-              'meta.directive.behaviour.erlang',
-              'punctuation.section.directive.end.erlang' ],
-           regex: '^(\\s*)(-)(\\s*)(behaviour)(\\s*)(\\()(\\s*)([a-z][a-zA-Z\\d@_]*)(\\s*)(\\))(\\s*)(\\.)' } ],
-      '#binary': 
-       [ { token: 'punctuation.definition.binary.begin.erlang',
-           regex: '<<',
-           push: 
-            [ { token: 'punctuation.definition.binary.end.erlang',
-                regex: '>>',
-                next: 'pop' },
-              { token: 
-                 [ 'punctuation.separator.binary.erlang',
-                   'punctuation.separator.value-size.erlang' ],
-                regex: '(,)|(:)' },
-              { include: '#internal-type-specifiers' },
-              { include: '#everything-else' },
-              { defaultToken: 'meta.structure.binary.erlang' } ] } ],
-      '#character': 
-       [ { token: 
-            [ 'punctuation.definition.character.erlang',
-              'punctuation.definition.escape.erlang',
-              'constant.character.escape.erlang',
-              'punctuation.definition.escape.erlang',
-              'constant.character.escape.erlang',
-              'constant.character.escape.erlang' ],
-           regex: '(\\$)(\\\\)(?:([bdefnrstv\\\\\'"])|(\\^)([@-_])|([0-7]{1,3}))' },
-         { token: 'invalid.illegal.character.erlang',
-           regex: '\\$\\\\\\^?.?' },
-         { token: 
-            [ 'punctuation.definition.character.erlang',
-              'constant.character.erlang' ],
-           regex: '(\\$)(\\S)' },
-         { token: 'invalid.illegal.character.erlang', regex: '\\$.?' } ],
-      '#comment': 
-       [ { token: 'punctuation.definition.comment.erlang',
-           regex: '%.*$',
-           push_: 
-            [ { token: 'comment.line.percentage.erlang',
-                regex: '$',
-                next: 'pop' },
-              { defaultToken: 'comment.line.percentage.erlang' } ] } ],
-      '#define-directive': 
-       [ { token: 
-            [ 'meta.directive.define.erlang',
-              'punctuation.section.directive.begin.erlang',
-              'meta.directive.define.erlang',
-              'keyword.control.directive.define.erlang',
-              'meta.directive.define.erlang',
-              'punctuation.definition.parameters.begin.erlang',
-              'meta.directive.define.erlang',
-              'entity.name.function.macro.definition.erlang',
-              'meta.directive.define.erlang',
-              'punctuation.separator.parameters.erlang' ],
-           regex: '^(\\s*)(-)(\\s*)(define)(\\s*)(\\()(\\s*)([a-zA-Z\\d@_]+)(\\s*)(,)',
-           push: 
-            [ { token: 
-                 [ 'punctuation.definition.parameters.end.erlang',
-                   'meta.directive.define.erlang',
-                   'punctuation.section.directive.end.erlang' ],
-                regex: '(\\))(\\s*)(\\.)',
-                next: 'pop' },
-              { include: '#everything-else' },
-              { defaultToken: 'meta.directive.define.erlang' } ] },
-         { token: 'meta.directive.define.erlang',
-           regex: '(?=^\\s*-\\s*define\\s*\\(\\s*[a-zA-Z\\d@_]+\\s*\\()',
-           push: 
-            [ { token: 
-                 [ 'punctuation.definition.parameters.end.erlang',
-                   'meta.directive.define.erlang',
-                   'punctuation.section.directive.end.erlang' ],
-                regex: '(\\))(\\s*)(\\.)',
-                next: 'pop' },
-              { token: 
-                 [ 'text',
-                   'punctuation.section.directive.begin.erlang',
-                   'text',
-                   'keyword.control.directive.define.erlang',
-                   'text',
-                   'punctuation.definition.parameters.begin.erlang',
-                   'text',
-                   'entity.name.function.macro.definition.erlang',
-                   'text',
-                   'punctuation.definition.parameters.begin.erlang' ],
-                regex: '^(\\s*)(-)(\\s*)(define)(\\s*)(\\()(\\s*)([a-zA-Z\\d@_]+)(\\s*)(\\()',
-                push: 
-                 [ { token: 
-                      [ 'punctuation.definition.parameters.end.erlang',
-                        'text',
-                        'punctuation.separator.parameters.erlang' ],
-                     regex: '(\\))(\\s*)(,)',
-                     next: 'pop' },
-                   { token: 'punctuation.separator.parameters.erlang', regex: ',' },
-                   { include: '#everything-else' } ] },
-              { token: 'punctuation.separator.define.erlang',
-                regex: '\\|\\||\\||:|;|,|\\.|->' },
-              { include: '#everything-else' },
-              { defaultToken: 'meta.directive.define.erlang' } ] } ],
-      '#directive': 
-       [ { token: 
-            [ 'meta.directive.erlang',
-              'punctuation.section.directive.begin.erlang',
-              'meta.directive.erlang',
-              'keyword.control.directive.erlang',
-              'meta.directive.erlang',
-              'punctuation.definition.parameters.begin.erlang' ],
-           regex: '^(\\s*)(-)(\\s*)([a-z][a-zA-Z\\d@_]*)(\\s*)(\\(?)',
-           push: 
-            [ { token: 
-                 [ 'punctuation.definition.parameters.end.erlang',
-                   'meta.directive.erlang',
-                   'punctuation.section.directive.end.erlang' ],
-                regex: '(\\)?)(\\s*)(\\.)',
-                next: 'pop' },
-              { include: '#everything-else' },
-              { defaultToken: 'meta.directive.erlang' } ] },
-         { token: 
-            [ 'meta.directive.erlang',
-              'punctuation.section.directive.begin.erlang',
-              'meta.directive.erlang',
-              'keyword.control.directive.erlang',
-              'meta.directive.erlang',
-              'punctuation.section.directive.end.erlang' ],
-           regex: '^(\\s*)(-)(\\s*)([a-z][a-zA-Z\\d@_]*)(\\s*)(\\.)' } ],
-      '#everything-else': 
-       [ { include: '#comment' },
-         { include: '#record-usage' },
-         { include: '#macro-usage' },
-         { include: '#expression' },
-         { include: '#keyword' },
-         { include: '#textual-operator' },
-         { include: '#function-call' },
-         { include: '#tuple' },
-         { include: '#list' },
-         { include: '#binary' },
-         { include: '#parenthesized-expression' },
-         { include: '#character' },
-         { include: '#number' },
-         { include: '#atom' },
-         { include: '#string' },
-         { include: '#symbolic-operator' },
-         { include: '#variable' } ],
-      '#expression': 
-       [ { token: 'keyword.control.if.erlang',
-           regex: '\\bif\\b',
-           push: 
-            [ { token: 'keyword.control.end.erlang',
-                regex: '\\bend\\b',
-                next: 'pop' },
-              { include: '#internal-expression-punctuation' },
-              { include: '#everything-else' },
-              { defaultToken: 'meta.expression.if.erlang' } ] },
-         { token: 'keyword.control.case.erlang',
-           regex: '\\bcase\\b',
-           push: 
-            [ { token: 'keyword.control.end.erlang',
-                regex: '\\bend\\b',
-                next: 'pop' },
-              { include: '#internal-expression-punctuation' },
-              { include: '#everything-else' },
-              { defaultToken: 'meta.expression.case.erlang' } ] },
-         { token: 'keyword.control.receive.erlang',
-           regex: '\\breceive\\b',
-           push: 
-            [ { token: 'keyword.control.end.erlang',
-                regex: '\\bend\\b',
-                next: 'pop' },
-              { include: '#internal-expression-punctuation' },
-              { include: '#everything-else' },
-              { defaultToken: 'meta.expression.receive.erlang' } ] },
-         { token: 
-            [ 'keyword.control.fun.erlang',
-              'text',
-              'entity.name.type.class.module.erlang',
-              'text',
-              'punctuation.separator.module-function.erlang',
-              'text',
-              'entity.name.function.erlang',
-              'text',
-              'punctuation.separator.function-arity.erlang' ],
-           regex: '\\b(fun)(\\s*)(?:([a-z][a-zA-Z\\d@_]*)(\\s*)(:)(\\s*))?([a-z][a-zA-Z\\d@_]*)(\\s*)(/)' },
-         { token: 'keyword.control.fun.erlang',
-           regex: '\\bfun\\b',
-           push: 
-            [ { token: 'keyword.control.end.erlang',
-                regex: '\\bend\\b',
-                next: 'pop' },
-              { token: 'text',
-                regex: '(?=\\()',
-                push: 
-                 [ { token: 'punctuation.separator.clauses.erlang',
-                     regex: ';|(?=\\bend\\b)',
-                     next: 'pop' },
-                   { include: '#internal-function-parts' } ] },
-              { include: '#everything-else' },
-              { defaultToken: 'meta.expression.fun.erlang' } ] },
-         { token: 'keyword.control.try.erlang',
-           regex: '\\btry\\b',
-           push: 
-            [ { token: 'keyword.control.end.erlang',
-                regex: '\\bend\\b',
-                next: 'pop' },
-              { include: '#internal-expression-punctuation' },
-              { include: '#everything-else' },
-              { defaultToken: 'meta.expression.try.erlang' } ] },
-         { token: 'keyword.control.begin.erlang',
-           regex: '\\bbegin\\b',
-           push: 
-            [ { token: 'keyword.control.end.erlang',
-                regex: '\\bend\\b',
-                next: 'pop' },
-              { include: '#internal-expression-punctuation' },
-              { include: '#everything-else' },
-              { defaultToken: 'meta.expression.begin.erlang' } ] },
-         { token: 'keyword.control.query.erlang',
-           regex: '\\bquery\\b',
-           push: 
-            [ { token: 'keyword.control.end.erlang',
-                regex: '\\bend\\b',
-                next: 'pop' },
-              { include: '#everything-else' },
-              { defaultToken: 'meta.expression.query.erlang' } ] } ],
-      '#function': 
-       [ { token: 
-            [ 'meta.function.erlang',
-              'entity.name.function.definition.erlang',
-              'meta.function.erlang' ],
-           regex: '^(\\s*)([a-z][a-zA-Z\\d@_]*|\'[^\']*\')(\\s*)(?=\\()',
-           push: 
-            [ { token: 'punctuation.terminator.function.erlang',
-                regex: '\\.',
-                next: 'pop' },
-              { token: [ 'text', 'entity.name.function.erlang', 'text' ],
-                regex: '^(\\s*)([a-z][a-zA-Z\\d@_]*|\'[^\']*\')(\\s*)(?=\\()' },
-              { token: 'text',
-                regex: '(?=\\()',
-                push: 
-                 [ { token: 'punctuation.separator.clauses.erlang',
-                     regex: ';|(?=\\.)',
-                     next: 'pop' },
-                   { include: '#parenthesized-expression' },
-                   { include: '#internal-function-parts' } ] },
-              { include: '#everything-else' },
-              { defaultToken: 'meta.function.erlang' } ] } ],
-      '#function-call': 
-       [ { token: 'meta.function-call.erlang',
-           regex: '(?=(?:[a-z][a-zA-Z\\d@_]*|\'[^\']*\')\\s*(?:\\(|:\\s*(?:[a-z][a-zA-Z\\d@_]*|\'[^\']*\')\\s*\\())',
-           push: 
-            [ { token: 'punctuation.definition.parameters.end.erlang',
-                regex: '\\)',
-                next: 'pop' },
-              { token: 
-                 [ 'entity.name.type.class.module.erlang',
-                   'text',
-                   'punctuation.separator.module-function.erlang',
-                   'text',
-                   'entity.name.function.guard.erlang',
-                   'text',
-                   'punctuation.definition.parameters.begin.erlang' ],
-                regex: '(?:(erlang)(\\s*)(:)(\\s*))?(is_atom|is_binary|is_constant|is_float|is_function|is_integer|is_list|is_number|is_pid|is_port|is_reference|is_tuple|is_record|abs|element|hd|length|node|round|self|size|tl|trunc)(\\s*)(\\()',
-                push: 
-                 [ { token: 'text', regex: '(?=\\))', next: 'pop' },
-                   { token: 'punctuation.separator.parameters.erlang', regex: ',' },
-                   { include: '#everything-else' } ] },
-              { token: 
-                 [ 'entity.name.type.class.module.erlang',
-                   'text',
-                   'punctuation.separator.module-function.erlang',
-                   'text',
-                   'entity.name.function.erlang',
-                   'text',
-                   'punctuation.definition.parameters.begin.erlang' ],
-                regex: '(?:([a-z][a-zA-Z\\d@_]*|\'[^\']*\')(\\s*)(:)(\\s*))?([a-z][a-zA-Z\\d@_]*|\'[^\']*\')(\\s*)(\\()',
-                push: 
-                 [ { token: 'text', regex: '(?=\\))', next: 'pop' },
-                   { token: 'punctuation.separator.parameters.erlang', regex: ',' },
-                   { include: '#everything-else' } ] },
-              { defaultToken: 'meta.function-call.erlang' } ] } ],
-      '#import-export-directive': 
-       [ { token: 
-            [ 'meta.directive.import.erlang',
-              'punctuation.section.directive.begin.erlang',
-              'meta.directive.import.erlang',
-              'keyword.control.directive.import.erlang',
-              'meta.directive.import.erlang',
-              'punctuation.definition.parameters.begin.erlang',
-              'meta.directive.import.erlang',
-              'entity.name.type.class.module.erlang',
-              'meta.directive.import.erlang',
-              'punctuation.separator.parameters.erlang' ],
-           regex: '^(\\s*)(-)(\\s*)(import)(\\s*)(\\()(\\s*)([a-z][a-zA-Z\\d@_]*|\'[^\']*\')(\\s*)(,)',
-           push: 
-            [ { token: 
-                 [ 'punctuation.definition.parameters.end.erlang',
-                   'meta.directive.import.erlang',
-                   'punctuation.section.directive.end.erlang' ],
-                regex: '(\\))(\\s*)(\\.)',
-                next: 'pop' },
-              { include: '#internal-function-list' },
-              { defaultToken: 'meta.directive.import.erlang' } ] },
-         { token: 
-            [ 'meta.directive.export.erlang',
-              'punctuation.section.directive.begin.erlang',
-              'meta.directive.export.erlang',
-              'keyword.control.directive.export.erlang',
-              'meta.directive.export.erlang',
-              'punctuation.definition.parameters.begin.erlang' ],
-           regex: '^(\\s*)(-)(\\s*)(export)(\\s*)(\\()',
-           push: 
-            [ { token: 
-                 [ 'punctuation.definition.parameters.end.erlang',
-                   'meta.directive.export.erlang',
-                   'punctuation.section.directive.end.erlang' ],
-                regex: '(\\))(\\s*)(\\.)',
-                next: 'pop' },
-              { include: '#internal-function-list' },
-              { defaultToken: 'meta.directive.export.erlang' } ] } ],
-      '#internal-expression-punctuation': 
-       [ { token: 
-            [ 'punctuation.separator.clause-head-body.erlang',
-              'punctuation.separator.clauses.erlang',
-              'punctuation.separator.expressions.erlang' ],
-           regex: '(->)|(;)|(,)' } ],
-      '#internal-function-list': 
-       [ { token: 'punctuation.definition.list.begin.erlang',
-           regex: '\\[',
-           push: 
-            [ { token: 'punctuation.definition.list.end.erlang',
-                regex: '\\]',
-                next: 'pop' },
-              { token: 
-                 [ 'entity.name.function.erlang',
-                   'text',
-                   'punctuation.separator.function-arity.erlang' ],
-                regex: '([a-z][a-zA-Z\\d@_]*|\'[^\']*\')(\\s*)(/)',
-                push: 
-                 [ { token: 'punctuation.separator.list.erlang',
-                     regex: ',|(?=\\])',
-                     next: 'pop' },
-                   { include: '#everything-else' } ] },
-              { include: '#everything-else' },
-              { defaultToken: 'meta.structure.list.function.erlang' } ] } ],
-      '#internal-function-parts': 
-       [ { token: 'text',
-           regex: '(?=\\()',
-           push: 
-            [ { token: 'punctuation.separator.clause-head-body.erlang',
-                regex: '->',
-                next: 'pop' },
-              { token: 'punctuation.definition.parameters.begin.erlang',
-                regex: '\\(',
-                push: 
-                 [ { token: 'punctuation.definition.parameters.end.erlang',
-                     regex: '\\)',
-                     next: 'pop' },
-                   { token: 'punctuation.separator.parameters.erlang', regex: ',' },
-                   { include: '#everything-else' } ] },
-              { token: 'punctuation.separator.guards.erlang', regex: ',|;' },
-              { include: '#everything-else' } ] },
-         { token: 'punctuation.separator.expressions.erlang',
-           regex: ',' },
-         { include: '#everything-else' } ],
-      '#internal-record-body': 
-       [ { token: 'punctuation.definition.class.record.begin.erlang',
-           regex: '\\{',
-           push: 
-            [ { token: 'meta.structure.record.erlang',
-                regex: '(?=\\})',
-                next: 'pop' },
-              { token: 
-                 [ 'variable.other.field.erlang',
-                   'variable.language.omitted.field.erlang',
-                   'text',
-                   'keyword.operator.assignment.erlang' ],
-                regex: '(?:([a-z][a-zA-Z\\d@_]*|\'[^\']*\')|(_))(\\s*)(=|::)',
-                push: 
-                 [ { token: 'punctuation.separator.class.record.erlang',
-                     regex: ',|(?=\\})',
-                     next: 'pop' },
-                   { include: '#everything-else' } ] },
-              { token: 
-                 [ 'variable.other.field.erlang',
-                   'text',
-                   'punctuation.separator.class.record.erlang' ],
-                regex: '([a-z][a-zA-Z\\d@_]*|\'[^\']*\')(\\s*)((?:,)?)' },
-              { include: '#everything-else' },
-              { defaultToken: 'meta.structure.record.erlang' } ] } ],
-      '#internal-type-specifiers': 
-       [ { token: 'punctuation.separator.value-type.erlang',
-           regex: '/',
-           push: 
-            [ { token: 'text', regex: '(?=,|:|>>)', next: 'pop' },
-              { token: 
-                 [ 'storage.type.erlang',
-                   'storage.modifier.signedness.erlang',
-                   'storage.modifier.endianness.erlang',
-                   'storage.modifier.unit.erlang',
-                   'punctuation.separator.type-specifiers.erlang' ],
-                regex: '(integer|float|binary|bytes|bitstring|bits)|(signed|unsigned)|(big|little|native)|(unit)|(-)' } ] } ],
-      '#keyword': 
-       [ { token: 'keyword.control.erlang',
-           regex: '\\b(?:after|begin|case|catch|cond|end|fun|if|let|of|query|try|receive|when)\\b' } ],
-      '#list': 
-       [ { token: 'punctuation.definition.list.begin.erlang',
-           regex: '\\[',
-           push: 
-            [ { token: 'punctuation.definition.list.end.erlang',
-                regex: '\\]',
-                next: 'pop' },
-              { token: 'punctuation.separator.list.erlang',
-                regex: '\\||\\|\\||,' },
-              { include: '#everything-else' },
-              { defaultToken: 'meta.structure.list.erlang' } ] } ],
-      '#macro-directive': 
-       [ { token: 
-            [ 'meta.directive.ifdef.erlang',
-              'punctuation.section.directive.begin.erlang',
-              'meta.directive.ifdef.erlang',
-              'keyword.control.directive.ifdef.erlang',
-              'meta.directive.ifdef.erlang',
-              'punctuation.definition.parameters.begin.erlang',
-              'meta.directive.ifdef.erlang',
-              'entity.name.function.macro.erlang',
-              'meta.directive.ifdef.erlang',
-              'punctuation.definition.parameters.end.erlang',
-              'meta.directive.ifdef.erlang',
-              'punctuation.section.directive.end.erlang' ],
-           regex: '^(\\s*)(-)(\\s*)(ifdef)(\\s*)(\\()(\\s*)([a-zA-z\\d@_]+)(\\s*)(\\))(\\s*)(\\.)' },
-         { token: 
-            [ 'meta.directive.ifndef.erlang',
-              'punctuation.section.directive.begin.erlang',
-              'meta.directive.ifndef.erlang',
-              'keyword.control.directive.ifndef.erlang',
-              'meta.directive.ifndef.erlang',
-              'punctuation.definition.parameters.begin.erlang',
-              'meta.directive.ifndef.erlang',
-              'entity.name.function.macro.erlang',
-              'meta.directive.ifndef.erlang',
-              'punctuation.definition.parameters.end.erlang',
-              'meta.directive.ifndef.erlang',
-              'punctuation.section.directive.end.erlang' ],
-           regex: '^(\\s*)(-)(\\s*)(ifndef)(\\s*)(\\()(\\s*)([a-zA-z\\d@_]+)(\\s*)(\\))(\\s*)(\\.)' },
-         { token: 
-            [ 'meta.directive.undef.erlang',
-              'punctuation.section.directive.begin.erlang',
-              'meta.directive.undef.erlang',
-              'keyword.control.directive.undef.erlang',
-              'meta.directive.undef.erlang',
-              'punctuation.definition.parameters.begin.erlang',
-              'meta.directive.undef.erlang',
-              'entity.name.function.macro.erlang',
-              'meta.directive.undef.erlang',
-              'punctuation.definition.parameters.end.erlang',
-              'meta.directive.undef.erlang',
-              'punctuation.section.directive.end.erlang' ],
-           regex: '^(\\s*)(-)(\\s*)(undef)(\\s*)(\\()(\\s*)([a-zA-z\\d@_]+)(\\s*)(\\))(\\s*)(\\.)' } ],
-      '#macro-usage': 
-       [ { token: 
-            [ 'keyword.operator.macro.erlang',
-              'meta.macro-usage.erlang',
-              'entity.name.function.macro.erlang' ],
-           regex: '(\\?\\??)(\\s*)([a-zA-Z\\d@_]+)' } ],
-      '#module-directive': 
-       [ { token: 
-            [ 'meta.directive.module.erlang',
-              'punctuation.section.directive.begin.erlang',
-              'meta.directive.module.erlang',
-              'keyword.control.directive.module.erlang',
-              'meta.directive.module.erlang',
-              'punctuation.definition.parameters.begin.erlang',
-              'meta.directive.module.erlang',
-              'entity.name.type.class.module.definition.erlang',
-              'meta.directive.module.erlang',
-              'punctuation.definition.parameters.end.erlang',
-              'meta.directive.module.erlang',
-              'punctuation.section.directive.end.erlang' ],
-           regex: '^(\\s*)(-)(\\s*)(module)(\\s*)(\\()(\\s*)([a-z][a-zA-Z\\d@_]*)(\\s*)(\\))(\\s*)(\\.)' } ],
-      '#number': 
-       [ { token: 'text',
-           regex: '(?=\\d)',
-           push: 
-            [ { token: 'text', regex: '(?!\\d)', next: 'pop' },
-              { token: 
-                 [ 'constant.numeric.float.erlang',
-                   'punctuation.separator.integer-float.erlang',
-                   'constant.numeric.float.erlang',
-                   'punctuation.separator.float-exponent.erlang' ],
-                regex: '(\\d+)(\\.)(\\d+)((?:[eE][\\+\\-]?\\d+)?)' },
-              { token: 
-                 [ 'constant.numeric.integer.binary.erlang',
-                   'punctuation.separator.base-integer.erlang',
-                   'constant.numeric.integer.binary.erlang' ],
-                regex: '(2)(#)([0-1]+)' },
-              { token: 
-                 [ 'constant.numeric.integer.base-3.erlang',
-                   'punctuation.separator.base-integer.erlang',
-                   'constant.numeric.integer.base-3.erlang' ],
-                regex: '(3)(#)([0-2]+)' },
-              { token: 
-                 [ 'constant.numeric.integer.base-4.erlang',
-                   'punctuation.separator.base-integer.erlang',
-                   'constant.numeric.integer.base-4.erlang' ],
-                regex: '(4)(#)([0-3]+)' },
-              { token: 
-                 [ 'constant.numeric.integer.base-5.erlang',
-                   'punctuation.separator.base-integer.erlang',
-                   'constant.numeric.integer.base-5.erlang' ],
-                regex: '(5)(#)([0-4]+)' },
-              { token: 
-                 [ 'constant.numeric.integer.base-6.erlang',
-                   'punctuation.separator.base-integer.erlang',
-                   'constant.numeric.integer.base-6.erlang' ],
-                regex: '(6)(#)([0-5]+)' },
-              { token: 
-                 [ 'constant.numeric.integer.base-7.erlang',
-                   'punctuation.separator.base-integer.erlang',
-                   'constant.numeric.integer.base-7.erlang' ],
-                regex: '(7)(#)([0-6]+)' },
-              { token: 
-                 [ 'constant.numeric.integer.octal.erlang',
-                   'punctuation.separator.base-integer.erlang',
-                   'constant.numeric.integer.octal.erlang' ],
-                regex: '(8)(#)([0-7]+)' },
-              { token: 
-                 [ 'constant.numeric.integer.base-9.erlang',
-                   'punctuation.separator.base-integer.erlang',
-                   'constant.numeric.integer.base-9.erlang' ],
-                regex: '(9)(#)([0-8]+)' },
-              { token: 
-                 [ 'constant.numeric.integer.decimal.erlang',
-                   'punctuation.separator.base-integer.erlang',
-                   'constant.numeric.integer.decimal.erlang' ],
-                regex: '(10)(#)(\\d+)' },
-              { token: 
-                 [ 'constant.numeric.integer.base-11.erlang',
-                   'punctuation.separator.base-integer.erlang',
-                   'constant.numeric.integer.base-11.erlang' ],
-                regex: '(11)(#)([\\daA]+)' },
-              { token: 
-                 [ 'constant.numeric.integer.base-12.erlang',
-                   'punctuation.separator.base-integer.erlang',
-                   'constant.numeric.integer.base-12.erlang' ],
-                regex: '(12)(#)([\\da-bA-B]+)' },
-              { token: 
-                 [ 'constant.numeric.integer.base-13.erlang',
-                   'punctuation.separator.base-integer.erlang',
-                   'constant.numeric.integer.base-13.erlang' ],
-                regex: '(13)(#)([\\da-cA-C]+)' },
-              { token: 
-                 [ 'constant.numeric.integer.base-14.erlang',
-                   'punctuation.separator.base-integer.erlang',
-                   'constant.numeric.integer.base-14.erlang' ],
-                regex: '(14)(#)([\\da-dA-D]+)' },
-              { token: 
-                 [ 'constant.numeric.integer.base-15.erlang',
-                   'punctuation.separator.base-integer.erlang',
-                   'constant.numeric.integer.base-15.erlang' ],
-                regex: '(15)(#)([\\da-eA-E]+)' },
-              { token: 
-                 [ 'constant.numeric.integer.hexadecimal.erlang',
-                   'punctuation.separator.base-integer.erlang',
-                   'constant.numeric.integer.hexadecimal.erlang' ],
-                regex: '(16)(#)([\\da-fA-F]+)' },
-              { token: 
-                 [ 'constant.numeric.integer.base-17.erlang',
-                   'punctuation.separator.base-integer.erlang',
-                   'constant.numeric.integer.base-17.erlang' ],
-                regex: '(17)(#)([\\da-gA-G]+)' },
-              { token: 
-                 [ 'constant.numeric.integer.base-18.erlang',
-                   'punctuation.separator.base-integer.erlang',
-                   'constant.numeric.integer.base-18.erlang' ],
-                regex: '(18)(#)([\\da-hA-H]+)' },
-              { token: 
-                 [ 'constant.numeric.integer.base-19.erlang',
-                   'punctuation.separator.base-integer.erlang',
-                   'constant.numeric.integer.base-19.erlang' ],
-                regex: '(19)(#)([\\da-iA-I]+)' },
-              { token: 
-                 [ 'constant.numeric.integer.base-20.erlang',
-                   'punctuation.separator.base-integer.erlang',
-                   'constant.numeric.integer.base-20.erlang' ],
-                regex: '(20)(#)([\\da-jA-J]+)' },
-              { token: 
-                 [ 'constant.numeric.integer.base-21.erlang',
-                   'punctuation.separator.base-integer.erlang',
-                   'constant.numeric.integer.base-21.erlang' ],
-                regex: '(21)(#)([\\da-kA-K]+)' },
-              { token: 
-                 [ 'constant.numeric.integer.base-22.erlang',
-                   'punctuation.separator.base-integer.erlang',
-                   'constant.numeric.integer.base-22.erlang' ],
-                regex: '(22)(#)([\\da-lA-L]+)' },
-              { token: 
-                 [ 'constant.numeric.integer.base-23.erlang',
-                   'punctuation.separator.base-integer.erlang',
-                   'constant.numeric.integer.base-23.erlang' ],
-                regex: '(23)(#)([\\da-mA-M]+)' },
-              { token: 
-                 [ 'constant.numeric.integer.base-24.erlang',
-                   'punctuation.separator.base-integer.erlang',
-                   'constant.numeric.integer.base-24.erlang' ],
-                regex: '(24)(#)([\\da-nA-N]+)' },
-              { token: 
-                 [ 'constant.numeric.integer.base-25.erlang',
-                   'punctuation.separator.base-integer.erlang',
-                   'constant.numeric.integer.base-25.erlang' ],
-                regex: '(25)(#)([\\da-oA-O]+)' },
-              { token: 
-                 [ 'constant.numeric.integer.base-26.erlang',
-                   'punctuation.separator.base-integer.erlang',
-                   'constant.numeric.integer.base-26.erlang' ],
-                regex: '(26)(#)([\\da-pA-P]+)' },
-              { token: 
-                 [ 'constant.numeric.integer.base-27.erlang',
-                   'punctuation.separator.base-integer.erlang',
-                   'constant.numeric.integer.base-27.erlang' ],
-                regex: '(27)(#)([\\da-qA-Q]+)' },
-              { token: 
-                 [ 'constant.numeric.integer.base-28.erlang',
-                   'punctuation.separator.base-integer.erlang',
-                   'constant.numeric.integer.base-28.erlang' ],
-                regex: '(28)(#)([\\da-rA-R]+)' },
-              { token: 
-                 [ 'constant.numeric.integer.base-29.erlang',
-                   'punctuation.separator.base-integer.erlang',
-                   'constant.numeric.integer.base-29.erlang' ],
-                regex: '(29)(#)([\\da-sA-S]+)' },
-              { token: 
-                 [ 'constant.numeric.integer.base-30.erlang',
-                   'punctuation.separator.base-integer.erlang',
-                   'constant.numeric.integer.base-30.erlang' ],
-                regex: '(30)(#)([\\da-tA-T]+)' },
-              { token: 
-                 [ 'constant.numeric.integer.base-31.erlang',
-                   'punctuation.separator.base-integer.erlang',
-                   'constant.numeric.integer.base-31.erlang' ],
-                regex: '(31)(#)([\\da-uA-U]+)' },
-              { token: 
-                 [ 'constant.numeric.integer.base-32.erlang',
-                   'punctuation.separator.base-integer.erlang',
-                   'constant.numeric.integer.base-32.erlang' ],
-                regex: '(32)(#)([\\da-vA-V]+)' },
-              { token: 
-                 [ 'constant.numeric.integer.base-33.erlang',
-                   'punctuation.separator.base-integer.erlang',
-                   'constant.numeric.integer.base-33.erlang' ],
-                regex: '(33)(#)([\\da-wA-W]+)' },
-              { token: 
-                 [ 'constant.numeric.integer.base-34.erlang',
-                   'punctuation.separator.base-integer.erlang',
-                   'constant.numeric.integer.base-34.erlang' ],
-                regex: '(34)(#)([\\da-xA-X]+)' },
-              { token: 
-                 [ 'constant.numeric.integer.base-35.erlang',
-                   'punctuation.separator.base-integer.erlang',
-                   'constant.numeric.integer.base-35.erlang' ],
-                regex: '(35)(#)([\\da-yA-Y]+)' },
-              { token: 
-                 [ 'constant.numeric.integer.base-36.erlang',
-                   'punctuation.separator.base-integer.erlang',
-                   'constant.numeric.integer.base-36.erlang' ],
-                regex: '(36)(#)([\\da-zA-Z]+)' },
-              { token: 'invalid.illegal.integer.erlang',
-                regex: '\\d+#[\\da-zA-Z]+' },
-              { token: 'constant.numeric.integer.decimal.erlang',
-                regex: '\\d+' } ] } ],
-      '#parenthesized-expression': 
-       [ { token: 'punctuation.section.expression.begin.erlang',
-           regex: '\\(',
-           push: 
-            [ { token: 'punctuation.section.expression.end.erlang',
-                regex: '\\)',
-                next: 'pop' },
-              { include: '#everything-else' },
-              { defaultToken: 'meta.expression.parenthesized' } ] } ],
-      '#record-directive': 
-       [ { token: 
-            [ 'meta.directive.record.erlang',
-              'punctuation.section.directive.begin.erlang',
-              'meta.directive.record.erlang',
-              'keyword.control.directive.import.erlang',
-              'meta.directive.record.erlang',
-              'punctuation.definition.parameters.begin.erlang',
-              'meta.directive.record.erlang',
-              'entity.name.type.class.record.definition.erlang',
-              'meta.directive.record.erlang',
-              'punctuation.separator.parameters.erlang' ],
-           regex: '^(\\s*)(-)(\\s*)(record)(\\s*)(\\()(\\s*)([a-z][a-zA-Z\\d@_]*|\'[^\']*\')(\\s*)(,)',
-           push: 
-            [ { token: 
-                 [ 'punctuation.definition.class.record.end.erlang',
-                   'meta.directive.record.erlang',
-                   'punctuation.definition.parameters.end.erlang',
-                   'meta.directive.record.erlang',
-                   'punctuation.section.directive.end.erlang' ],
-                regex: '(\\})(\\s*)(\\))(\\s*)(\\.)',
-                next: 'pop' },
-              { include: '#internal-record-body' },
-              { defaultToken: 'meta.directive.record.erlang' } ] } ],
-      '#record-usage': 
-       [ { token: 
-            [ 'keyword.operator.record.erlang',
-              'meta.record-usage.erlang',
-              'entity.name.type.class.record.erlang',
-              'meta.record-usage.erlang',
-              'punctuation.separator.record-field.erlang',
-              'meta.record-usage.erlang',
-              'variable.other.field.erlang' ],
-           regex: '(#)(\\s*)([a-z][a-zA-Z\\d@_]*|\'[^\']*\')(\\s*)(\\.)(\\s*)([a-z][a-zA-Z\\d@_]*|\'[^\']*\')' },
-         { token: 
-            [ 'keyword.operator.record.erlang',
-              'meta.record-usage.erlang',
-              'entity.name.type.class.record.erlang' ],
-           regex: '(#)(\\s*)([a-z][a-zA-Z\\d@_]*|\'[^\']*\')',
-           push: 
-            [ { token: 'punctuation.definition.class.record.end.erlang',
-                regex: '\\}',
-                next: 'pop' },
-              { include: '#internal-record-body' },
-              { defaultToken: 'meta.record-usage.erlang' } ] } ],
-      '#string': 
-       [ { token: 'punctuation.definition.string.begin.erlang',
-           regex: '"',
-           push: 
-            [ { token: 'punctuation.definition.string.end.erlang',
-                regex: '"',
-                next: 'pop' },
-              { token: 
-                 [ 'punctuation.definition.escape.erlang',
-                   'constant.character.escape.erlang',
-                   'punctuation.definition.escape.erlang',
-                   'constant.character.escape.erlang',
-                   'constant.character.escape.erlang' ],
-                regex: '(\\\\)(?:([bdefnrstv\\\\\'"])|(\\^)([@-_])|([0-7]{1,3}))' },
-              { token: 'invalid.illegal.string.erlang', regex: '\\\\\\^?.?' },
-              { token: 
-                 [ 'punctuation.definition.placeholder.erlang',
-                   'punctuation.separator.placeholder-parts.erlang',
-                   'constant.other.placeholder.erlang',
-                   'punctuation.separator.placeholder-parts.erlang',
-                   'punctuation.separator.placeholder-parts.erlang',
-                   'constant.other.placeholder.erlang',
-                   'punctuation.separator.placeholder-parts.erlang',
-                   'punctuation.separator.placeholder-parts.erlang',
-                   'punctuation.separator.placeholder-parts.erlang',
-                   'constant.other.placeholder.erlang',
-                   'constant.other.placeholder.erlang' ],
-                regex: '(~)(?:((?:\\-)?)(\\d+)|(\\*))?(?:(\\.)(?:(\\d+)|(\\*)))?(?:(\\.)(?:(\\*)|(.)))?([~cfegswpWPBX#bx\\+ni])' },
-              { token: 
-                 [ 'punctuation.definition.placeholder.erlang',
-                   'punctuation.separator.placeholder-parts.erlang',
-                   'constant.other.placeholder.erlang',
-                   'constant.other.placeholder.erlang' ],
-                regex: '(~)((?:\\*)?)((?:\\d+)?)([~du\\-#fsacl])' },
-              { token: 'invalid.illegal.string.erlang', regex: '~.?' },
-              { defaultToken: 'string.quoted.double.erlang' } ] } ],
-      '#symbolic-operator': 
-       [ { token: 'keyword.operator.symbolic.erlang',
-           regex: '\\+\\+|\\+|--|-|\\*|/=|/|=/=|=:=|==|=<|=|<-|<|>=|>|!|::' } ],
-      '#textual-operator': 
-       [ { token: 'keyword.operator.textual.erlang',
-           regex: '\\b(?:andalso|band|and|bxor|xor|bor|orelse|or|bnot|not|bsl|bsr|div|rem)\\b' } ],
-      '#tuple': 
-       [ { token: 'punctuation.definition.tuple.begin.erlang',
-           regex: '\\{',
-           push: 
-            [ { token: 'punctuation.definition.tuple.end.erlang',
-                regex: '\\}',
-                next: 'pop' },
-              { token: 'punctuation.separator.tuple.erlang', regex: ',' },
-              { include: '#everything-else' },
-              { defaultToken: 'meta.structure.tuple.erlang' } ] } ],
-      '#variable': 
-       [ { token: [ 'variable.other.erlang', 'variable.language.omitted.erlang' ],
-           regex: '(_[a-zA-Z\\d@_]+|[A-Z][a-zA-Z\\d@_]*)|(_)' } ] }
-    
-    this.normalizeRules();
-};
-
-ErlangHighlightRules.metaData = { comment: 'The recognition of function definitions and compiler directives (such as module, record and macro definitions) requires that each of the aforementioned constructs must be the first string inside a line (except for whitespace).  Also, the function/module/record/macro names must be given unquoted.  -- desp',
-      fileTypes: [ 'erl', 'hrl' ],
-      keyEquivalent: '^~E',
-      name: 'Erlang',
-      scopeName: 'source.erlang' }
-
-
-oop.inherits(ErlangHighlightRules, TextHighlightRules);
-
-exports.ErlangHighlightRules = ErlangHighlightRules;
-});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/couchdb/blob/5b8fb9c3/src/fauxton/assets/js/libs/ace/mode/folding/asciidoc.js
----------------------------------------------------------------------
diff --git a/src/fauxton/assets/js/libs/ace/mode/folding/asciidoc.js b/src/fauxton/assets/js/libs/ace/mode/folding/asciidoc.js
deleted file mode 100644
index d684917..0000000
--- a/src/fauxton/assets/js/libs/ace/mode/folding/asciidoc.js
+++ /dev/null
@@ -1,142 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
- * Distributed under the BSD license:
- *
- * Copyright (c) 2010, Ajax.org B.V.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *     * Redistributions of source code must retain the above copyright
- *       notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright
- *       notice, this list of conditions and the following disclaimer in the
- *       documentation and/or other materials provided with the distribution.
- *     * Neither the name of Ajax.org B.V. nor the
- *       names of its contributors may be used to endorse or promote products
- *       derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ***** END LICENSE BLOCK ***** */
-
-define(function(require, exports, module) {
-"use strict";
-
-var oop = require("../../lib/oop");
-var BaseFoldMode = require("./fold_mode").FoldMode;
-var Range = require("../../range").Range;
-
-var FoldMode = exports.FoldMode = function() {};
-oop.inherits(FoldMode, BaseFoldMode);
-
-(function() {
-    this.foldingStartMarker = /^(?:\|={10,}|[\.\/=\-~^+]{4,}\s*$|={1,5} )/;
-    this.singleLineHeadingRe = /^={1,5}(?=\s+\S)/;
-
-    this.getFoldWidget = function(session, foldStyle, row) {
-        var line = session.getLine(row);
-        if (!this.foldingStartMarker.test(line))
-            return ""
-
-        if (line[0] == "=") {
-            if (this.singleLineHeadingRe.test(line))
-                return "start";
-            if (session.getLine(row - 1).length != session.getLine(row).length)
-                return "";
-            return "start";
-        }
-        if (session.bgTokenizer.getState(row) == "dissallowDelimitedBlock")
-            return "end";
-        return "start";
-    };
-
-    this.getFoldWidgetRange = function(session, foldStyle, row) {
-        var line = session.getLine(row);
-        var startColumn = line.length;
-        var maxRow = session.getLength();
-        var startRow = row;
-        var endRow = row;
-        if (!line.match(this.foldingStartMarker))
-            return;
-
-        var token;
-        function getTokenType(row) {
-            token = session.getTokens(row)[0];
-            return token && token.type;
-        }
-
-        var levels = ["=","-","~","^","+"];
-        var heading = "markup.heading";
-        var singleLineHeadingRe = this.singleLineHeadingRe;
-        function getLevel() {
-            var match = token.value.match(singleLineHeadingRe);
-            if (match)
-                return match[0].length;
-            var level = levels.indexOf(token.value[0]) + 1;
-            if (level == 1) {
-                if (session.getLine(row - 1).length != session.getLine(row).length)
-                    return Infinity;
-            }
-            return level;
-        }
-
-        if (getTokenType(row) == heading) {
-            var startHeadingLevel = getLevel();
-            while (++row < maxRow) {
-                if (getTokenType(row) != heading)
-                    continue;
-                var level = getLevel();
-                if (level <= startHeadingLevel)
-                    break;
-            }
-
-            var isSingleLineHeading = token && token.value.match(this.singleLineHeadingRe);
-            endRow = isSingleLineHeading ? row - 1 : row - 2;
-
-            if (endRow > startRow) {
-                while (endRow > startRow && (!getTokenType(endRow) || token.value[0] == "["))
-                    endRow--;
-            }
-
-            if (endRow > startRow) {
-                var endColumn = session.getLine(endRow).length;
-                return new Range(startRow, startColumn, endRow, endColumn);
-            }
-        } else {
-            var state = session.bgTokenizer.getState(row);
-            if (state == "dissallowDelimitedBlock") {
-                while (row -- > 0) {
-                    if (session.bgTokenizer.getState(row).lastIndexOf("Block") == -1)
-                        break;
-                }
-                endRow = row + 1;
-                if (endRow < startRow) {
-                    var endColumn = session.getLine(row).length;
-                    return new Range(endRow, 5, startRow, startColumn - 5);
-                }
-            } else {
-                while (++row < maxRow) {
-                    if (session.bgTokenizer.getState(row) == "dissallowDelimitedBlock")
-                        break;
-                }
-                endRow = row;
-                if (endRow > startRow) {
-                    var endColumn = session.getLine(row).length;
-                    return new Range(startRow, 5, endRow, endColumn - 5);
-                }
-            }
-        }
-    };
-
-}).call(FoldMode.prototype);
-
-});

http://git-wip-us.apache.org/repos/asf/couchdb/blob/5b8fb9c3/src/fauxton/assets/js/libs/ace/mode/folding/c9search.js
----------------------------------------------------------------------
diff --git a/src/fauxton/assets/js/libs/ace/mode/folding/c9search.js b/src/fauxton/assets/js/libs/ace/mode/folding/c9search.js
deleted file mode 100644
index dd6a0b4..0000000
--- a/src/fauxton/assets/js/libs/ace/mode/folding/c9search.js
+++ /dev/null
@@ -1,77 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
- * Distributed under the BSD license:
- *
- * Copyright (c) 2010, Ajax.org B.V.
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *     * Redistributions of source code must retain the above copyright
- *       notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright
- *       notice, this list of conditions and the following disclaimer in the
- *       documentation and/or other materials provided with the distribution.
- *     * Neither the name of Ajax.org B.V. nor the
- *       names of its contributors may be used to endorse or promote products
- *       derived from this software without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ***** END LICENSE BLOCK ***** */
-
-
-define(function(require, exports, module) {
-"use strict";
-
-var oop = require("../../lib/oop");
-var Range = require("../../range").Range;
-var BaseFoldMode = require("./fold_mode").FoldMode;
-
-var FoldMode = exports.FoldMode = function() {};
-oop.inherits(FoldMode, BaseFoldMode);
-
-(function() {
-
-    this.foldingStartMarker = /^(\S.*\:|Searching for.*)$/;
-    this.foldingStopMarker = /^(\s+|Found.*)$/;
-    
-    this.getFoldWidgetRange = function(session, foldStyle, row) {
-        var lines = session.doc.getAllLines(row);
-        var line = lines[row];
-        var level1 = /^(Found.*|Searching for.*)$/;
-        var level2 = /^(\S.*\:|\s*)$/;
-        var re = level1.test(line) ? level1 : level2;
-
-        if (this.foldingStartMarker.test(line)) {            
-            for (var i = row + 1, l = session.getLength(); i < l; i++) {
-                if (re.test(lines[i]))
-                    break;
-            }
-
-            return new Range(row, line.length, i, 0);
-        }
-
-        if (this.foldingStopMarker.test(line)) {
-            for (var i = row - 1; i >= 0; i--) {
-                line = lines[i];
-                if (re.test(line))
-                    break;
-            }
-
-            return new Range(i, line.length, row, 0);
-        }
-    };
-    
-}).call(FoldMode.prototype);
-
-});
-

http://git-wip-us.apache.org/repos/asf/couchdb/blob/5b8fb9c3/src/fauxton/assets/js/libs/ace/mode/folding/coffee.js
----------------------------------------------------------------------
diff --git a/src/fauxton/assets/js/libs/ace/mode/folding/coffee.js b/src/fauxton/assets/js/libs/ace/mode/folding/coffee.js
deleted file mode 100644
index fe03a56..0000000
--- a/src/fauxton/assets/js/libs/ace/mode/folding/coffee.js
+++ /dev/null
@@ -1,120 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
- * Distributed under the BSD license:
- *
- * Copyright (c) 2010, Ajax.org B.V.
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *     * Redistributions of source code must retain the above copyright
- *       notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright
- *       notice, this list of conditions and the following disclaimer in the
- *       documentation and/or other materials provided with the distribution.
- *     * Neither the name of Ajax.org B.V. nor the
- *       names of its contributors may be used to endorse or promote products
- *       derived from this software without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ***** END LICENSE BLOCK ***** */
-
-define(function(require, exports, module) {
-"use strict";
-
-var oop = require("../../lib/oop");
-var BaseFoldMode = require("./fold_mode").FoldMode;
-var Range = require("../../range").Range;
-
-var FoldMode = exports.FoldMode = function() {};
-oop.inherits(FoldMode, BaseFoldMode);
-
-(function() {
-
-    this.getFoldWidgetRange = function(session, foldStyle, row) {
-        var range = this.indentationBlock(session, row);
-        if (range)
-            return range;
-
-        var re = /\S/;
-        var line = session.getLine(row);
-        var startLevel = line.search(re);
-        if (startLevel == -1 || line[startLevel] != "#")
-            return;
-
-        var startColumn = line.length;
-        var maxRow = session.getLength();
-        var startRow = row;
-        var endRow = row;
-
-        while (++row < maxRow) {
-            line = session.getLine(row);
-            var level = line.search(re);
-
-            if (level == -1)
-                continue;
-
-            if (line[level] != "#")
-                break;
-
-            endRow = row;
-        }
-
-        if (endRow > startRow) {
-            var endColumn = session.getLine(endRow).length;
-            return new Range(startRow, startColumn, endRow, endColumn);
-        }
-    };
-
-    // must return "" if there's no fold, to enable caching
-    this.getFoldWidget = function(session, foldStyle, row) {
-        var line = session.getLine(row);
-        var indent = line.search(/\S/);
-        var next = session.getLine(row + 1);
-        var prev = session.getLine(row - 1);
-        var prevIndent = prev.search(/\S/);
-        var nextIndent = next.search(/\S/);
-
-        if (indent == -1) {
-            session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? "start" : "";
-            return "";
-        }
-
-        // documentation comments
-        if (prevIndent == -1) {
-            if (indent == nextIndent && line[indent] == "#" && next[indent] == "#") {
-                session.foldWidgets[row - 1] = "";
-                session.foldWidgets[row + 1] = "";
-                return "start";
-            }
-        } else if (prevIndent == indent && line[indent] == "#" && prev[indent] == "#") {
-            if (session.getLine(row - 2).search(/\S/) == -1) {
-                session.foldWidgets[row - 1] = "start";
-                session.foldWidgets[row + 1] = "";
-                return "";
-            }
-        }
-
-        if (prevIndent!= -1 && prevIndent < indent)
-            session.foldWidgets[row - 1] = "start";
-        else
-            session.foldWidgets[row - 1] = "";
-
-        if (indent < nextIndent)
-            return "start";
-        else
-            return "";
-    };
-
-}).call(FoldMode.prototype);
-
-});

http://git-wip-us.apache.org/repos/asf/couchdb/blob/5b8fb9c3/src/fauxton/assets/js/libs/ace/mode/folding/coffee_test.js
----------------------------------------------------------------------
diff --git a/src/fauxton/assets/js/libs/ace/mode/folding/coffee_test.js b/src/fauxton/assets/js/libs/ace/mode/folding/coffee_test.js
deleted file mode 100644
index 2abd1fe..0000000
--- a/src/fauxton/assets/js/libs/ace/mode/folding/coffee_test.js
+++ /dev/null
@@ -1,101 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
- * Distributed under the BSD license:
- *
- * Copyright (c) 2010, Ajax.org B.V.
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *     * Redistributions of source code must retain the above copyright
- *       notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright
- *       notice, this list of conditions and the following disclaimer in the
- *       documentation and/or other materials provided with the distribution.
- *     * Neither the name of Ajax.org B.V. nor the
- *       names of its contributors may be used to endorse or promote products
- *       derived from this software without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ***** END LICENSE BLOCK ***** */
-
-if (typeof process !== "undefined")
-    require("amd-loader");
-
-define(function(require, exports, module) {
-"use strict";
-
-var CoffeeMode = require("../coffee").Mode;
-var EditSession = require("../../edit_session").EditSession;
-var assert = require("../../test/assertions");
-function testFoldWidgets(array) {
-    var session = array.filter(function(_, i){return i % 2 == 1});
-    session = new EditSession(session);
-    var mode = new CoffeeMode();
-    session.setFoldStyle("markbeginend");
-    session.setMode(mode);
-
-    var widgets = array.filter(function(_, i){return i % 2 == 0});
-    widgets.forEach(function(w, i){
-        session.foldWidgets[i] = session.getFoldWidget(i);
-    })
-    widgets.forEach(function(w, i){
-        w = w.split(",");
-        var type = w[0] == ">" ? "start" : w[0] == "<" ? "end" : "";
-        assert.equal(session.foldWidgets[i], type);
-        if (!type)
-            return;
-        var range = session.getFoldWidgetRange(i);
-        if (!w[1]) {
-            assert.equal(range, null);
-            return;
-        }
-        assert.equal(range.start.row, i);
-        assert.equal(range.end.row - range.start.row, parseInt(w[1]));
-        testColumn(w[2], range.start);
-        testColumn(w[3], range.end);
-    });
-
-    function testColumn(w, pos) {
-        if (!w)
-            return;
-        if (w == "l")
-            w = session.getLine(pos.row).length;
-        else
-            w = parseInt(w);
-        assert.equal(pos.column, w);
-    }
-}
-module.exports = {
-    "test: coffee script indentation based folding": function() {
-       testFoldWidgets([
-            '>,1,l,l',         ' ## indented comment',
-            '',                '  # ',
-            '',                '',
-            '>,1,l,l',         ' # plain comment',
-            '',                ' # ',
-            '>,2',             ' function (x)=>',
-            '',                '  ',
-            '',                '  x++',
-            '',                '  ',
-            '',                '  ',
-            '>,2',             ' bar = ',
-            '',                '   foo: 1',
-            '',                '   baz: lighter'
-        ]);
-    }
-};
-
-});
-
-if (typeof module !== "undefined" && module === require.main)
-    require("asyncjs").test.testcase(module.exports).exec();

http://git-wip-us.apache.org/repos/asf/couchdb/blob/5b8fb9c3/src/fauxton/assets/js/libs/ace/mode/folding/csharp.js
----------------------------------------------------------------------
diff --git a/src/fauxton/assets/js/libs/ace/mode/folding/csharp.js b/src/fauxton/assets/js/libs/ace/mode/folding/csharp.js
deleted file mode 100644
index c450753..0000000
--- a/src/fauxton/assets/js/libs/ace/mode/folding/csharp.js
+++ /dev/null
@@ -1,138 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
- * Distributed under the BSD license:
- *
- * Copyright (c) 2010, Ajax.org B.V.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *     * Redistributions of source code must retain the above copyright
- *       notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright
- *       notice, this list of conditions and the following disclaimer in the
- *       documentation and/or other materials provided with the distribution.
- *     * Neither the name of Ajax.org B.V. nor the
- *       names of its contributors may be used to endorse or promote products
- *       derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ***** END LICENSE BLOCK ***** */
-
-define(function(require, exports, module) {
-"use strict";
-
-var oop = require("../../lib/oop");
-var Range = require("../../range").Range;
-var CFoldMode = require("./cstyle").FoldMode;
-
-var FoldMode = exports.FoldMode = function(commentRegex) {
-    if (commentRegex) {
-        this.foldingStartMarker = new RegExp(
-            this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start)
-        );
-        this.foldingStopMarker = new RegExp(
-            this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end)
-        );
-    }
-};
-oop.inherits(FoldMode, CFoldMode);
-
-(function() {
-    this.usingRe = /^\s*using \S/;
-
-    this.getFoldWidgetRangeBase = this.getFoldWidgetRange;
-    this.getFoldWidgetBase = this.getFoldWidget;
-    
-    this.getFoldWidget = function(session, foldStyle, row) {
-        var fw = this.getFoldWidgetBase(session, foldStyle, row);
-        if (!fw) {
-            var line = session.getLine(row);
-            if (/^\s*#region\b/.test(line)) 
-                return "start";
-            var usingRe = this.usingRe;
-            if (usingRe.test(line)) {
-                var prev = session.getLine(row - 1);
-                var next = session.getLine(row + 1);
-                if (!usingRe.test(prev) && usingRe.test(next))
-                    return "start"
-            }
-        }
-        return fw;
-    };
-    
-    this.getFoldWidgetRange = function(session, foldStyle, row) {
-        var range = this.getFoldWidgetRangeBase(session, foldStyle, row);
-        if (range)
-            return range;
-
-        var line = session.getLine(row);
-        if (this.usingRe.test(line))
-            return this.getUsingStatementBlock(session, line, row);
-            
-        if (/^\s*#region\b/.test(line))
-            return this.getRegionBlock(session, line, row);
-    };
-    
-    this.getUsingStatementBlock = function(session, line, row) {
-        var startColumn = line.match(this.usingRe)[0].length - 1;
-        var maxRow = session.getLength();
-        var startRow = row;
-        var endRow = row;
-
-        while (++row < maxRow) {
-            line = session.getLine(row);
-            if (/^\s*$/.test(line))
-                continue;
-            if (!this.usingRe.test(line))
-                break;
-
-            endRow = row;
-        }
-
-        if (endRow > startRow) {
-            var endColumn = session.getLine(endRow).length;
-            return new Range(startRow, startColumn, endRow, endColumn);
-        }
-    };
-    
-    this.getRegionBlock = function(session, line, row) {
-        var startColumn = line.search(/\s*$/);
-        var maxRow = session.getLength();
-        var startRow = row;
-        
-        var re = /^\s*#(end)?region\b/
-        var depth = 1
-        while (++row < maxRow) {
-            line = session.getLine(row);
-            var m = re.exec(line);
-            if (!m)
-                continue;
-            if (m[1])
-                depth--;
-            else
-                depth++;
-
-            if (!depth)
-                break;
-        }
-
-        var endRow = row;
-        if (endRow > startRow) {
-            var endColumn = line.search(/\S/);
-            return new Range(startRow, startColumn, endRow, endColumn);
-        }
-    };
-
-}).call(FoldMode.prototype);
-
-});

http://git-wip-us.apache.org/repos/asf/couchdb/blob/5b8fb9c3/src/fauxton/assets/js/libs/ace/mode/folding/cstyle.js
----------------------------------------------------------------------
diff --git a/src/fauxton/assets/js/libs/ace/mode/folding/cstyle.js b/src/fauxton/assets/js/libs/ace/mode/folding/cstyle.js
deleted file mode 100644
index 8be20d2..0000000
--- a/src/fauxton/assets/js/libs/ace/mode/folding/cstyle.js
+++ /dev/null
@@ -1,83 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
- * Distributed under the BSD license:
- *
- * Copyright (c) 2010, Ajax.org B.V.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *     * Redistributions of source code must retain the above copyright
- *       notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright
- *       notice, this list of conditions and the following disclaimer in the
- *       documentation and/or other materials provided with the distribution.
- *     * Neither the name of Ajax.org B.V. nor the
- *       names of its contributors may be used to endorse or promote products
- *       derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ***** END LICENSE BLOCK ***** */
-
-define(function(require, exports, module) {
-"use strict";
-
-var oop = require("../../lib/oop");
-var Range = require("../../range").Range;
-var BaseFoldMode = require("./fold_mode").FoldMode;
-
-var FoldMode = exports.FoldMode = function(commentRegex) {
-    if (commentRegex) {
-        this.foldingStartMarker = new RegExp(
-            this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start)
-        );
-        this.foldingStopMarker = new RegExp(
-            this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end)
-        );
-    }
-};
-oop.inherits(FoldMode, BaseFoldMode);
-
-(function() {
-
-    this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/;
-    this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/;
-
-    this.getFoldWidgetRange = function(session, foldStyle, row) {
-        var line = session.getLine(row);
-        var match = line.match(this.foldingStartMarker);
-        if (match) {
-            var i = match.index;
-
-            if (match[1])
-                return this.openingBracketBlock(session, match[1], row, i);
-
-            return session.getCommentFoldRange(row, i + match[0].length, 1);
-        }
-
-        if (foldStyle !== "markbeginend")
-            return;
-
-        var match = line.match(this.foldingStopMarker);
-        if (match) {
-            var i = match.index + match[0].length;
-
-            if (match[1])
-                return this.closingBracketBlock(session, match[1], row, i);
-
-            return session.getCommentFoldRange(row, i, -1);
-        }
-    };
-
-}).call(FoldMode.prototype);
-
-});

http://git-wip-us.apache.org/repos/asf/couchdb/blob/5b8fb9c3/src/fauxton/assets/js/libs/ace/mode/folding/cstyle_test.js
----------------------------------------------------------------------
diff --git a/src/fauxton/assets/js/libs/ace/mode/folding/cstyle_test.js b/src/fauxton/assets/js/libs/ace/mode/folding/cstyle_test.js
deleted file mode 100644
index e007c79..0000000
--- a/src/fauxton/assets/js/libs/ace/mode/folding/cstyle_test.js
+++ /dev/null
@@ -1,85 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
- * Distributed under the BSD license:
- *
- * Copyright (c) 2010, Ajax.org B.V.
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *     * Redistributions of source code must retain the above copyright
- *       notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright
- *       notice, this list of conditions and the following disclaimer in the
- *       documentation and/or other materials provided with the distribution.
- *     * Neither the name of Ajax.org B.V. nor the
- *       names of its contributors may be used to endorse or promote products
- *       derived from this software without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ***** END LICENSE BLOCK ***** */
-
-if (typeof process !== "undefined")
-    require("amd-loader");
-
-define(function(require, exports, module) {
-"use strict";
-
-var JavaScriptMode = require("../javascript").Mode;
-var EditSession = require("../../edit_session").EditSession;
-var assert = require("../../test/assertions");
-
-module.exports = {
-
-    "test: fold comments": function() {
-        var session = new EditSession([
-            '/*',
-            'stuff',
-            '*/'
-        ]);
-        
-        var mode = new JavaScriptMode();
-        session.setFoldStyle("markbeginend");
-        session.setMode(mode);
-        
-        assert.equal(session.getFoldWidget(0), "start");
-        assert.equal(session.getFoldWidget(1), "");
-        assert.equal(session.getFoldWidget(2), "end");
-        
-        assert.range(session.getFoldWidgetRange(0), 0, 2, 2, 0);
-        assert.range(session.getFoldWidgetRange(2), 0, 2, 2, 0);
-    },
-    
-    "test: fold doc style comments": function() {
-        var session = new EditSession([
-            '/**',
-            ' * stuff',
-            ' * *** */'
-        ]);
-        
-        var mode = new JavaScriptMode();
-        session.setFoldStyle("markbeginend");
-        session.setMode(mode);
-        
-        assert.equal(session.getFoldWidget(0), "start");
-        assert.equal(session.getFoldWidget(1), "");
-        assert.equal(session.getFoldWidget(2), "end");
-        
-        assert.range(session.getFoldWidgetRange(0), 0, 2, 2, 7);
-        assert.range(session.getFoldWidgetRange(2), 0, 2, 2, 7);
-    }
-};
-
-});
-
-if (typeof module !== "undefined" && module === require.main)
-    require("asyncjs").test.testcase(module.exports).exec();