(cm, line, updateFrontier)
| 1109 | } |
| 1110 | |
| 1111 | function getLineStyles(cm, line, updateFrontier) { |
| 1112 | if (!line.styles || line.styles[0] != cm.state.modeGen) { |
| 1113 | var context = getContextBefore(cm, lineNo(line)); |
| 1114 | var resetState = line.text.length > cm.options.maxHighlightLength && copyState(cm.doc.mode, context.state); |
| 1115 | var result = highlightLine(cm, line, context); |
| 1116 | if (resetState) { context.state = resetState; } |
| 1117 | line.stateAfter = context.save(!resetState); |
| 1118 | line.styles = result.styles; |
| 1119 | if (result.classes) { line.styleClasses = result.classes; } |
| 1120 | else if (line.styleClasses) { line.styleClasses = null; } |
| 1121 | if (updateFrontier === cm.doc.highlightFrontier) |
| 1122 | { cm.doc.modeFrontier = Math.max(cm.doc.modeFrontier, ++cm.doc.highlightFrontier); } |
| 1123 | } |
| 1124 | return line.styles |
| 1125 | } |
| 1126 | |
| 1127 | function getContextBefore(cm, n, precise) { |
| 1128 | var doc = cm.doc, display = cm.display; |
no test coverage detected