mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/CodeEditor
synced 2024-12-18 01:30:45 +00:00
941cc7c109
- Improved ES6 support Bug: T324609 Change-Id: I22234ee259c2663a511f9285d4c43d4256e29c66
245 lines
7.1 KiB
JavaScript
245 lines
7.1 KiB
JavaScript
ace.define("ace/mode/rst_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module){"use strict";
|
|
var oop = require("../lib/oop");
|
|
var lang = require("../lib/lang");
|
|
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
|
|
var RSTHighlightRules = function () {
|
|
var tokens = {
|
|
title: "markup.heading",
|
|
list: "markup.heading",
|
|
table: "constant",
|
|
directive: "keyword.operator",
|
|
entity: "string",
|
|
link: "markup.underline.list",
|
|
bold: "markup.bold",
|
|
italic: "markup.italic",
|
|
literal: "support.function",
|
|
comment: "comment"
|
|
};
|
|
var startStringPrefix = "(^|\\s|[\"'(<\\[{\\-/:])";
|
|
var endStringSuffix = "(?:$|(?=\\s|[\\\\.,;!?\\-/:\"')>\\]}]))";
|
|
this.$rules = {
|
|
"start": [
|
|
{
|
|
token: tokens.title,
|
|
regex: "(^)([\\=\\-`:\\.'\"~\\^_\\*\\+#])(\\2{2,}\\s*$)"
|
|
},
|
|
{
|
|
token: ["text", tokens.directive, tokens.literal],
|
|
regex: "(^\\s*\\.\\. )([^: ]+::)(.*$)",
|
|
next: "codeblock"
|
|
},
|
|
{
|
|
token: tokens.directive,
|
|
regex: "::$",
|
|
next: "codeblock"
|
|
},
|
|
{
|
|
token: [tokens.entity, tokens.link],
|
|
regex: "(^\\.\\. _[^:]+:)(.*$)"
|
|
},
|
|
{
|
|
token: [tokens.entity, tokens.link],
|
|
regex: "(^__ )(https?://.*$)"
|
|
},
|
|
{
|
|
token: tokens.entity,
|
|
regex: "^\\.\\. \\[[^\\]]+\\] "
|
|
},
|
|
{
|
|
token: tokens.comment,
|
|
regex: "^\\.\\. .*$",
|
|
next: "comment"
|
|
},
|
|
{
|
|
token: tokens.list,
|
|
regex: "^\\s*[\\*\\+-] "
|
|
},
|
|
{
|
|
token: tokens.list,
|
|
regex: "^\\s*(?:[A-Za-z]|[0-9]+|[ivxlcdmIVXLCDM]+)\\. "
|
|
},
|
|
{
|
|
token: tokens.list,
|
|
regex: "^\\s*\\(?(?:[A-Za-z]|[0-9]+|[ivxlcdmIVXLCDM]+)\\) "
|
|
},
|
|
{
|
|
token: tokens.table,
|
|
regex: "^={2,}(?: +={2,})+$"
|
|
},
|
|
{
|
|
token: tokens.table,
|
|
regex: "^\\+-{2,}(?:\\+-{2,})+\\+$"
|
|
},
|
|
{
|
|
token: tokens.table,
|
|
regex: "^\\+={2,}(?:\\+={2,})+\\+$"
|
|
},
|
|
{
|
|
token: ["text", tokens.literal],
|
|
regex: startStringPrefix + "(``)(?=\\S)",
|
|
next: "code"
|
|
},
|
|
{
|
|
token: ["text", tokens.bold],
|
|
regex: startStringPrefix + "(\\*\\*)(?=\\S)",
|
|
next: "bold"
|
|
},
|
|
{
|
|
token: ["text", tokens.italic],
|
|
regex: startStringPrefix + "(\\*)(?=\\S)",
|
|
next: "italic"
|
|
},
|
|
{
|
|
token: tokens.entity,
|
|
regex: "\\|[\\w\\-]+?\\|"
|
|
},
|
|
{
|
|
token: tokens.entity,
|
|
regex: ":[\\w-:]+:`\\S",
|
|
next: "entity"
|
|
},
|
|
{
|
|
token: ["text", tokens.entity],
|
|
regex: startStringPrefix + "(_`)(?=\\S)",
|
|
next: "entity"
|
|
},
|
|
{
|
|
token: tokens.entity,
|
|
regex: "_[A-Za-z0-9\\-]+?"
|
|
},
|
|
{
|
|
token: ["text", tokens.link],
|
|
regex: startStringPrefix + "(`)(?=\\S)",
|
|
next: "link"
|
|
},
|
|
{
|
|
token: tokens.link,
|
|
regex: "[A-Za-z0-9\\-]+?__?"
|
|
},
|
|
{
|
|
token: tokens.link,
|
|
regex: "\\[[^\\]]+?\\]_"
|
|
},
|
|
{
|
|
token: tokens.link,
|
|
regex: "https?://\\S+"
|
|
},
|
|
{
|
|
token: tokens.table,
|
|
regex: "\\|"
|
|
}
|
|
],
|
|
"codeblock": [
|
|
{
|
|
token: tokens.literal,
|
|
regex: "^ +.+$",
|
|
next: "codeblock"
|
|
},
|
|
{
|
|
token: tokens.literal,
|
|
regex: '^$',
|
|
next: "codeblock"
|
|
},
|
|
{
|
|
token: "empty",
|
|
regex: "",
|
|
next: "start"
|
|
}
|
|
],
|
|
"code": [
|
|
{
|
|
token: tokens.literal,
|
|
regex: "\\S``" + endStringSuffix,
|
|
next: "start"
|
|
},
|
|
{
|
|
defaultToken: tokens.literal
|
|
}
|
|
],
|
|
"bold": [
|
|
{
|
|
token: tokens.bold,
|
|
regex: "\\S\\*\\*" + endStringSuffix,
|
|
next: "start"
|
|
},
|
|
{
|
|
defaultToken: tokens.bold
|
|
}
|
|
],
|
|
"italic": [
|
|
{
|
|
token: tokens.italic,
|
|
regex: "\\S\\*" + endStringSuffix,
|
|
next: "start"
|
|
},
|
|
{
|
|
defaultToken: tokens.italic
|
|
}
|
|
],
|
|
"entity": [
|
|
{
|
|
token: tokens.entity,
|
|
regex: "\\S`" + endStringSuffix,
|
|
next: "start"
|
|
},
|
|
{
|
|
defaultToken: tokens.entity
|
|
}
|
|
],
|
|
"link": [
|
|
{
|
|
token: tokens.link,
|
|
regex: "\\S`__?" + endStringSuffix,
|
|
next: "start"
|
|
},
|
|
{
|
|
defaultToken: tokens.link
|
|
}
|
|
],
|
|
"comment": [
|
|
{
|
|
token: tokens.comment,
|
|
regex: "^ +.+$",
|
|
next: "comment"
|
|
},
|
|
{
|
|
token: tokens.comment,
|
|
regex: '^$',
|
|
next: "comment"
|
|
},
|
|
{
|
|
token: "empty",
|
|
regex: "",
|
|
next: "start"
|
|
}
|
|
]
|
|
};
|
|
};
|
|
oop.inherits(RSTHighlightRules, TextHighlightRules);
|
|
exports.RSTHighlightRules = RSTHighlightRules;
|
|
|
|
});
|
|
|
|
ace.define("ace/mode/rst",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/rst_highlight_rules"], function(require, exports, module){"use strict";
|
|
var oop = require("../lib/oop");
|
|
var TextMode = require("./text").Mode;
|
|
var RSTHighlightRules = require("./rst_highlight_rules").RSTHighlightRules;
|
|
var Mode = function () {
|
|
this.HighlightRules = RSTHighlightRules;
|
|
};
|
|
oop.inherits(Mode, TextMode);
|
|
(function () {
|
|
this.type = "text";
|
|
this.$id = "ace/mode/rst";
|
|
this.snippetFileId = "ace/snippets/rst";
|
|
}).call(Mode.prototype);
|
|
exports.Mode = Mode;
|
|
|
|
}); (function() {
|
|
ace.require(["ace/mode/rst"], function(m) {
|
|
if (typeof module == "object" && typeof exports == "object" && module) {
|
|
module.exports = m;
|
|
}
|
|
});
|
|
})();
|
|
|