Sha256: 9c0876b72ce5cba8240ddb11f18e342845d19fcbc742ad711bc83d1ba66d9958
Contents?: true
Size: 1.46 KB
Versions: 4
Compression:
Stored size: 1.46 KB
Contents
// 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.getCursor().line); cm.on("beforeSelectionChange", selectionChange); } else if (!val && prev) { cm.off("beforeSelectionChange", selectionChange); 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, selectedLine) { var line = cm.getLineHandleVisualStart(selectedLine); if (cm.state.activeLine == line) return; cm.operation(function() { clearActiveLine(cm); cm.addLineClass(line, "wrap", WRAP_CLASS); cm.addLineClass(line, "background", BACK_CLASS); cm.state.activeLine = line; }); } function selectionChange(cm, sel) { updateActiveLine(cm, sel.head.line); } })();
Version data entries
4 entries across 4 versions & 1 rubygems