129 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			129 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
ace.define("ace/mode/toml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module){"use strict";
 | 
						|
var oop = require("../lib/oop");
 | 
						|
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
 | 
						|
var TomlHighlightRules = function () {
 | 
						|
    var keywordMapper = this.createKeywordMapper({
 | 
						|
        "constant.language.boolean": "true|false"
 | 
						|
    }, "identifier");
 | 
						|
    var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b";
 | 
						|
    this.$rules = {
 | 
						|
        "start": [
 | 
						|
            {
 | 
						|
                token: "comment.toml",
 | 
						|
                regex: /#.*$/
 | 
						|
            },
 | 
						|
            {
 | 
						|
                token: "string",
 | 
						|
                regex: '"(?=.)',
 | 
						|
                next: "qqstring"
 | 
						|
            },
 | 
						|
            {
 | 
						|
                token: ["variable.keygroup.toml"],
 | 
						|
                regex: "(?:^\\s*)(\\[\\[([^\\]]+)\\]\\])"
 | 
						|
            },
 | 
						|
            {
 | 
						|
                token: ["variable.keygroup.toml"],
 | 
						|
                regex: "(?:^\\s*)(\\[([^\\]]+)\\])"
 | 
						|
            },
 | 
						|
            {
 | 
						|
                token: keywordMapper,
 | 
						|
                regex: identifierRe
 | 
						|
            },
 | 
						|
            {
 | 
						|
                token: "support.date.toml",
 | 
						|
                regex: "\\d{4}-\\d{2}-\\d{2}(T)\\d{2}:\\d{2}:\\d{2}(Z)"
 | 
						|
            },
 | 
						|
            {
 | 
						|
                token: "constant.numeric.toml",
 | 
						|
                regex: "-?\\d+(\\.?\\d+)?"
 | 
						|
            }
 | 
						|
        ],
 | 
						|
        "qqstring": [
 | 
						|
            {
 | 
						|
                token: "string",
 | 
						|
                regex: "\\\\$",
 | 
						|
                next: "qqstring"
 | 
						|
            },
 | 
						|
            {
 | 
						|
                token: "constant.language.escape",
 | 
						|
                regex: '\\\\[0tnr"\\\\]'
 | 
						|
            },
 | 
						|
            {
 | 
						|
                token: "string",
 | 
						|
                regex: '"|$',
 | 
						|
                next: "start"
 | 
						|
            },
 | 
						|
            {
 | 
						|
                defaultToken: "string"
 | 
						|
            }
 | 
						|
        ]
 | 
						|
    };
 | 
						|
};
 | 
						|
oop.inherits(TomlHighlightRules, TextHighlightRules);
 | 
						|
exports.TomlHighlightRules = TomlHighlightRules;
 | 
						|
 | 
						|
});
 | 
						|
 | 
						|
ace.define("ace/mode/folding/ini",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], 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*\[([^\])]*)]\s*(?:$|[;#])/;
 | 
						|
    this.getFoldWidgetRange = function (session, foldStyle, row) {
 | 
						|
        var re = this.foldingStartMarker;
 | 
						|
        var line = session.getLine(row);
 | 
						|
        var m = line.match(re);
 | 
						|
        if (!m)
 | 
						|
            return;
 | 
						|
        var startName = m[1] + ".";
 | 
						|
        var startColumn = line.length;
 | 
						|
        var maxRow = session.getLength();
 | 
						|
        var startRow = row;
 | 
						|
        var endRow = row;
 | 
						|
        while (++row < maxRow) {
 | 
						|
            line = session.getLine(row);
 | 
						|
            if (/^\s*$/.test(line))
 | 
						|
                continue;
 | 
						|
            m = line.match(re);
 | 
						|
            if (m && m[1].lastIndexOf(startName, 0) !== 0)
 | 
						|
                break;
 | 
						|
            endRow = row;
 | 
						|
        }
 | 
						|
        if (endRow > startRow) {
 | 
						|
            var endColumn = session.getLine(endRow).length;
 | 
						|
            return new Range(startRow, startColumn, endRow, endColumn);
 | 
						|
        }
 | 
						|
    };
 | 
						|
}).call(FoldMode.prototype);
 | 
						|
 | 
						|
});
 | 
						|
 | 
						|
ace.define("ace/mode/toml",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/toml_highlight_rules","ace/mode/folding/ini"], function(require, exports, module){"use strict";
 | 
						|
var oop = require("../lib/oop");
 | 
						|
var TextMode = require("./text").Mode;
 | 
						|
var TomlHighlightRules = require("./toml_highlight_rules").TomlHighlightRules;
 | 
						|
var FoldMode = require("./folding/ini").FoldMode;
 | 
						|
var Mode = function () {
 | 
						|
    this.HighlightRules = TomlHighlightRules;
 | 
						|
    this.foldingRules = new FoldMode();
 | 
						|
    this.$behaviour = this.$defaultBehaviour;
 | 
						|
};
 | 
						|
oop.inherits(Mode, TextMode);
 | 
						|
(function () {
 | 
						|
    this.lineCommentStart = "#";
 | 
						|
    this.$id = "ace/mode/toml";
 | 
						|
}).call(Mode.prototype);
 | 
						|
exports.Mode = Mode;
 | 
						|
 | 
						|
});                (function() {
 | 
						|
                    ace.require(["ace/mode/toml"], function(m) {
 | 
						|
                        if (typeof module == "object" && typeof exports == "object" && module) {
 | 
						|
                            module.exports = m;
 | 
						|
                        }
 | 
						|
                    });
 | 
						|
                })();
 | 
						|
            
 |