笙默考试管理系统-MyExamTest----codemirror(49)
目录
笙默考试管理系统-MyExamTest----codemirror(49)
一、 笙默考试管理系统-MyExamTest----codemirror
二、 笙默考试管理系统-MyExamTest----codemirror
三、 笙默考试管理系统-MyExamTest----codemirror
四、 笙默考试管理系统-MyExamTest----codemirror
五、 笙默考试管理系统-MyExamTest----codemirror
var st = this.styles, allText = this.text, marked = this.marked;
if (sfrom == sto) sfrom = null;
var len = allText.length;
if (endAt != null) len = Math.min(endAt, len);
if (!allText && endAt == null)
span(" ", sfrom != null && sto == null ? "CodeMirror-selected" : null);
else if (!marked && sfrom == null)
for (var i = 0, ch = 0; ch < len; i+=2) {
var str = st[i], style = st[i+1], l = str.length;
if (ch + l > len) str = str.slice(0, len - ch);
ch += l;
span(str, style && "cm-" + style);
}
else {
var pos = 0, i = 0, text = "", style, sg = 0;
var markpos = -1, mark = null;
function nextMark() {
if (marked) {
markpos += 1;
mark = (markpos < marked.length) ? marked[markpos] : null;
}
}
nextMark();
while (pos < len) {
var upto = len;
var extraStyle = "";
if (sfrom != null) {
if (sfrom > pos) upto = sfrom;
else if (sto == null || sto > pos) {
extraStyle = " CodeMirror-selected";
if (sto != null) upto = Math.min(upto, sto);
}
}
while (mark && mark.to != null && mark.to <= pos) nextMark();
if (mark) {
if (mark.from > pos) upto = Math.min(upto, mark.from);
else {
extraStyle += " " + mark.style;
if (mark.to != null) upto = Math.min(upto, mark.to);
}
}
for (;;) {
var end = pos + text.length;
var appliedStyle = style;
if (extraStyle) appliedStyle = style ? style + extraStyle : extraStyle;
span(end > upto ? text.slice(0, upto - pos) : text, appliedStyle);
if (end >= upto) {text = text.slice(upto - pos); pos = upto; break;}
pos = end;
text = st[i++]; style = "cm-" + st[i++];
}
}
if (sfrom != null && sto == null) span(" ", "CodeMirror-selected");
}
if (includePre) html.push("</pre>");
return html.join("");
},
cleanUp: function() {
this.parent = null;
if (this.marked)
for (var i = 0, e = this.marked.length; i < e; ++i) this.marked[i].detach(this);
}