123456789101112131415161718192021222324252627282930313233343536373839 |
- // Because sometimes you need to style the cursor's line.
- //
- // Adds an option 'styleActiveLine' which, when enabled, gives the
- // active line's wrapping <div> the CSS class "CodeMirror-activeline",
- // and gives its background <div> the class "CodeMirror-activeline-background".
- (function() {
- "use strict";
- var WRAP_CLASS = "CodeMirror-activeline";
- var BACK_CLASS = "CodeMirror-activeline-background";
- CodeMirror.defineOption("styleActiveLine", false, function(cm, val, old) {
- var prev = old && old != CodeMirror.Init;
- if (val && !prev) {
- updateActiveLine(cm);
- cm.on("cursorActivity", updateActiveLine);
- } else if (!val && prev) {
- cm.off("cursorActivity", updateActiveLine);
- clearActiveLine(cm);
- delete cm.state.activeLine;
- }
- });
- function clearActiveLine(cm) {
- if ("activeLine" in cm.state) {
- cm.removeLineClass(cm.state.activeLine, "wrap", WRAP_CLASS);
- cm.removeLineClass(cm.state.activeLine, "background", BACK_CLASS);
- }
- }
- function updateActiveLine(cm) {
- var line = cm.getLineHandle(cm.getCursor().line);
- if (cm.state.activeLine == line) return;
- clearActiveLine(cm);
- cm.addLineClass(line, "wrap", WRAP_CLASS);
- cm.addLineClass(line, "background", BACK_CLASS);
- cm.state.activeLine = line;
- }
- })();
|