Added HTML syntax highlighting in the editor
This commit is contained in:
parent
0a63b80f8f
commit
909b0dcde1
@ -33,56 +33,14 @@ define(function(require, exports, module) {
|
|||||||
|
|
||||||
var oop = require("ace/lib/oop");
|
var oop = require("ace/lib/oop");
|
||||||
var TextHighlightRules = require("ace/mode/text_highlight_rules").TextHighlightRules;
|
var TextHighlightRules = require("ace/mode/text_highlight_rules").TextHighlightRules;
|
||||||
var LatexHighlightRules = require("ace/mode/latex_highlight_rules").LatexHighlightRules;
|
var HtmlHighlightRules = require("ace/mode/html_highlight_rules").HtmlHighlightRules;
|
||||||
|
|
||||||
var MarkdownHighlightRules = function() {
|
var MarkdownHighlightRules = function() {
|
||||||
|
HtmlHighlightRules.call(this);
|
||||||
|
|
||||||
// regexp must not have capturing parentheses
|
// regexp must not have capturing parentheses
|
||||||
// regexps are ordered -> the first match is used
|
// regexps are ordered -> the first match is used
|
||||||
|
this.$rules["start"].unshift({
|
||||||
this.$rules = {
|
|
||||||
"basic" : [{
|
|
||||||
token : "constant.language.escape",
|
|
||||||
regex : /\\[\\`*_{}\[\]()#+\-.!]/
|
|
||||||
}, { // code span `
|
|
||||||
token : "code",
|
|
||||||
regex : "(`+)(.*?[^`])(\\1)"
|
|
||||||
}, { // reference
|
|
||||||
token : ["text", "reference", "text", "markup.underline", "description", "text"],
|
|
||||||
regex : "^([ ]{0,3}\\[)([^\\]]+)(\\]:\\s*)([^ ]+)(\\s*(?:[\"][^\"]+[\"])?(\\s*))$"
|
|
||||||
}, { // link by reference
|
|
||||||
token : ["text", "description", "text", "markup.underline", "text"],
|
|
||||||
regex : "(\\[)((?:[[^\\]]*\\]|[^\\[\\]])*)(\\][ ]?(?:\\n[ ]*)?\\[)(.*?)(\\])"
|
|
||||||
}, { // link by url
|
|
||||||
token : ["text", "description", "text", "markup.underline", "string", "text"],
|
|
||||||
regex : "(\\[)"+
|
|
||||||
"(\\[[^\\]]*\\]|[^\\[\\]]*)"+
|
|
||||||
"(\\]\\([ \\t]*)"+
|
|
||||||
"(<?(?:(?:[^\\(]*?\\([^\\)]*?\\)\\S*?)|(?:.*?))>?)"+
|
|
||||||
"((?:[ \t]*\"(?:.*?)\"[ \\t]*)?)"+
|
|
||||||
"(\\))"
|
|
||||||
}, { // strong ** __
|
|
||||||
token : "strong",
|
|
||||||
regex : "([*]{2}|[_]{2}(?=\\S))(.*?\\S[*_]*)(\\1)"
|
|
||||||
}, { // emphasis * _
|
|
||||||
token : "emphasis",
|
|
||||||
regex : "([*]|[_](?=\\S))(.*?\\S[*_]*)(\\1)"
|
|
||||||
}, { //
|
|
||||||
token : ["text", "url", "text"],
|
|
||||||
regex : "(<)("+
|
|
||||||
"(?:https?|ftp|dict):[^'\">\\s]+"+
|
|
||||||
"|"+
|
|
||||||
"(?:mailto:)?[-.\\w]+\\@[-a-z0-9]+(?:\\.[-a-z0-9]+)*\\.[a-z]+"+
|
|
||||||
")(>)"
|
|
||||||
}],
|
|
||||||
|
|
||||||
// code block
|
|
||||||
"allowBlock": [
|
|
||||||
{token : ["text", "code_block"], regex : "^( {4}|\\t)(.+)", next : "allowBlock"},
|
|
||||||
{token : "empty", regex : "", next : "start"}
|
|
||||||
],
|
|
||||||
|
|
||||||
"start" : [{
|
|
||||||
token : "empty_line",
|
token : "empty_line",
|
||||||
regex : '^$',
|
regex : '^$',
|
||||||
next: "allowBlock"
|
next: "allowBlock"
|
||||||
@ -128,8 +86,50 @@ var MarkdownHighlightRules = function() {
|
|||||||
next : "latexblock"
|
next : "latexblock"
|
||||||
}, {
|
}, {
|
||||||
include : "basic"
|
include : "basic"
|
||||||
|
});
|
||||||
|
|
||||||
|
this.addRules({
|
||||||
|
"basic" : [{
|
||||||
|
token : "constant.language.escape",
|
||||||
|
regex : /\\[\\`*_{}\[\]()#+\-.!]/
|
||||||
|
}, { // code span `
|
||||||
|
token : "code",
|
||||||
|
regex : "(`+)(.*?[^`])(\\1)"
|
||||||
|
}, { // reference
|
||||||
|
token : ["text", "reference", "text", "markup.underline", "description", "text"],
|
||||||
|
regex : "^([ ]{0,3}\\[)([^\\]]+)(\\]:\\s*)([^ ]+)(\\s*(?:[\"][^\"]+[\"])?(\\s*))$"
|
||||||
|
}, { // link by reference
|
||||||
|
token : ["text", "description", "text", "markup.underline", "text"],
|
||||||
|
regex : "(\\[)((?:[[^\\]]*\\]|[^\\[\\]])*)(\\][ ]?(?:\\n[ ]*)?\\[)(.*?)(\\])"
|
||||||
|
}, { // link by url
|
||||||
|
token : ["text", "description", "text", "markup.underline", "string", "text"],
|
||||||
|
regex : "(\\[)"+
|
||||||
|
"(\\[[^\\]]*\\]|[^\\[\\]]*)"+
|
||||||
|
"(\\]\\([ \\t]*)"+
|
||||||
|
"(<?(?:(?:[^\\(]*?\\([^\\)]*?\\)\\S*?)|(?:.*?))>?)"+
|
||||||
|
"((?:[ \t]*\"(?:.*?)\"[ \\t]*)?)"+
|
||||||
|
"(\\))"
|
||||||
|
}, { // strong ** __
|
||||||
|
token : "strong",
|
||||||
|
regex : "([*]{2}|[_]{2}(?=\\S))(.*?\\S[*_]*)(\\1)"
|
||||||
|
}, { // emphasis * _
|
||||||
|
token : "emphasis",
|
||||||
|
regex : "([*]|[_](?=\\S))(.*?\\S[*_]*)(\\1)"
|
||||||
|
}, { //
|
||||||
|
token : ["text", "url", "text"],
|
||||||
|
regex : "(<)("+
|
||||||
|
"(?:https?|ftp|dict):[^'\">\\s]+"+
|
||||||
|
"|"+
|
||||||
|
"(?:mailto:)?[-.\\w]+\\@[-a-z0-9]+(?:\\.[-a-z0-9]+)*\\.[a-z]+"+
|
||||||
|
")(>)"
|
||||||
}],
|
}],
|
||||||
|
|
||||||
|
// code block
|
||||||
|
"allowBlock": [
|
||||||
|
{token : ["text", "code_block"], regex : "^( {4}|\\t)(.+)", next : "allowBlock"},
|
||||||
|
{token : "empty", regex : "", next : "start"}
|
||||||
|
],
|
||||||
|
|
||||||
"header" : [{
|
"header" : [{
|
||||||
regex: "$",
|
regex: "$",
|
||||||
next : "start"
|
next : "start"
|
||||||
@ -211,7 +211,7 @@ var MarkdownHighlightRules = function() {
|
|||||||
token : "comment",
|
token : "comment",
|
||||||
regex : "%.*$"
|
regex : "%.*$"
|
||||||
}]
|
}]
|
||||||
};
|
});
|
||||||
|
|
||||||
this.normalizeRules();
|
this.normalizeRules();
|
||||||
};
|
};
|
||||||
|
@ -1003,12 +1003,30 @@ ul,ol {
|
|||||||
color: @primary-color-lightest;
|
color: @primary-color-lightest;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.ace_meta.ace_tag {
|
||||||
|
color: @primary-color;
|
||||||
|
font-style: italic;
|
||||||
|
font-weight: bold;
|
||||||
|
background-color: @code-bg;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ace_keyword.ace_operator {
|
||||||
|
color: @primary-color-light;
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
.ace_keyword {
|
.ace_keyword {
|
||||||
color: @primary-color;
|
color: @primary-color;
|
||||||
background-color: @code-bg;
|
background-color: @code-bg;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.ace_string {
|
||||||
|
color: @primary-color;
|
||||||
|
font-style: italic;
|
||||||
|
background-color: @code-bg;
|
||||||
|
}
|
||||||
|
|
||||||
.ace_strong {
|
.ace_strong {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user