(cm)
| 396 | } |
| 397 | |
| 398 | function maybeUpdateLineNumberWidth(cm) { |
| 399 | if (!cm.options.lineNumbers) return false; |
| 400 | var doc = cm.doc, last = lineNumberFor(cm.options, doc.first + doc.size - 1), display = cm.display; |
| 401 | if (last.length != display.lineNumChars) { |
| 402 | var test = display.measure.appendChild(elt("div", [elt("div", last)], |
| 403 | "CodeMirror-linenumber CodeMirror-gutter-elt")); |
| 404 | var innerW = test.firstChild.offsetWidth, padding = test.offsetWidth - innerW; |
| 405 | display.lineGutter.style.width = ""; |
| 406 | display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding); |
| 407 | display.lineNumWidth = display.lineNumInnerWidth + padding; |
| 408 | display.lineNumChars = display.lineNumInnerWidth ? last.length : -1; |
| 409 | display.lineGutter.style.width = display.lineNumWidth + "px"; |
| 410 | return true; |
| 411 | } |
| 412 | return false; |
| 413 | } |
| 414 | |
| 415 | function lineNumberFor(options, i) { |
| 416 | return String(options.lineNumberFormatter(i + options.firstLineNumber)); |
no test coverage detected