From 3f67110122fc74f2b43d216c7be6bd4d5858e6c2 Mon Sep 17 00:00:00 2001 From: Cole R Lawrence Date: Thu, 10 Dec 2015 12:51:24 -0600 Subject: [PATCH] Address #3695 using data-codemirror-linenumber and CSS content --- lib/codemirror.css | 4 ++++ lib/codemirror.js | 7 +++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/codemirror.css b/lib/codemirror.css index 3543523e64..c311a7f7ac 100644 --- a/lib/codemirror.css +++ b/lib/codemirror.css @@ -36,6 +36,10 @@ white-space: nowrap; } +.CodeMirror-linenumber-data::before { + content: attr(data-codemirror-linenumber); +} + .CodeMirror-guttermarker { color: black; } .CodeMirror-guttermarker-subtle { color: #999; } diff --git a/lib/codemirror.js b/lib/codemirror.js index 5bfa91d6c2..2b487e91da 100644 --- a/lib/codemirror.js +++ b/lib/codemirror.js @@ -992,12 +992,15 @@ wrap.insertBefore(gutterWrap, lineView.text); if (lineView.line.gutterClass) gutterWrap.className += " " + lineView.line.gutterClass; - if (cm.options.lineNumbers && (!markers || !markers["CodeMirror-linenumbers"])) + if (cm.options.lineNumbers && (!markers || !markers["CodeMirror-linenumbers"])) { + var lineNumData = elt("div", null, "CodeMirror-linenumber-data"); + lineNumData.dataset.codemirrorLinenumber = lineNumberFor(cm.options, lineN); lineView.lineNumber = gutterWrap.appendChild( - elt("div", lineNumberFor(cm.options, lineN), + elt("div", [lineNumData], "CodeMirror-linenumber CodeMirror-gutter-elt", "left: " + dims.gutterLeft["CodeMirror-linenumbers"] + "px; width: " + cm.display.lineNumInnerWidth + "px")); + } if (markers) for (var k = 0; k < cm.options.gutters.length; ++k) { var id = cm.options.gutters[k], found = markers.hasOwnProperty(id) && markers[id]; if (found)