(cm, line, updateFrontier)
| 2543 | } |
| 2544 | |
| 2545 | function getLineStyles(cm, line, updateFrontier) { |
| 2546 | if (!line.styles || line.styles[0] != cm.state.modeGen) { |
| 2547 | var context = getContextBefore(cm, lineNo(line)) |
| 2548 | var resetState = line.text.length > cm.options.maxHighlightLength && copyState(cm.doc.mode, context.state) |
| 2549 | var result = highlightLine(cm, line, context) |
| 2550 | if (resetState) { |
| 2551 | context.state = resetState |
| 2552 | } |
| 2553 | line.stateAfter = context.save(!resetState) |
| 2554 | line.styles = result.styles |
| 2555 | if (result.classes) { |
| 2556 | line.styleClasses = result.classes |
| 2557 | } else if (line.styleClasses) { |
| 2558 | line.styleClasses = null |
| 2559 | } |
| 2560 | if (updateFrontier === cm.doc.highlightFrontier) { |
| 2561 | cm.doc.modeFrontier = Math.max(cm.doc.modeFrontier, ++cm.doc.highlightFrontier) |
| 2562 | } |
| 2563 | } |
| 2564 | return line.styles |
| 2565 | } |
| 2566 | |
| 2567 | function getContextBefore(cm, n, precise) { |
| 2568 | var doc = cm.doc, |
no test coverage detected