Spaces:
Running
Running
| // Because sometimes you need to mark the selected *text*. | |
| // | |
| // Adds an option 'styleSelectedText' which, when enabled, gives | |
| // selected text the CSS class "CodeMirror-selectedtext". | |
| (function() { | |
| "use strict"; | |
| CodeMirror.defineOption("styleSelectedText", false, function(cm, val, old) { | |
| var prev = old && old != CodeMirror.Init; | |
| if (val && !prev) { | |
| updateSelectedText(cm); | |
| cm.on("cursorActivity", updateSelectedText); | |
| } else if (!val && prev) { | |
| cm.off("cursorActivity", updateSelectedText); | |
| clearSelectedText(cm); | |
| delete cm._selectionMark; | |
| } | |
| }); | |
| function clearSelectedText(cm) { | |
| if (cm._selectionMark) cm._selectionMark.clear(); | |
| } | |
| function updateSelectedText(cm) { | |
| clearSelectedText(cm); | |
| if (cm.somethingSelected()) | |
| cm._selectionMark = cm.markText(cm.getCursor("start"), cm.getCursor("end"), | |
| {className: "CodeMirror-selectedtext"}); | |
| else | |
| cm._selectionMark = null; | |
| } | |
| })(); | |