From bceae7930e29cedda0d562069410dd7d2e4ae30e Mon Sep 17 00:00:00 2001 From: Luiza Pagliari Date: Sun, 1 Sep 2019 19:27:47 -0300 Subject: [PATCH] [refactor] Allow getLineNumber... to get value from rep and from DOM If DOM line has no id, we cannot use rep to get its line number; in this case, use DOM + $.index(). --- static/js/utils.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/static/js/utils.js b/static/js/utils.js index 7e7b587..8416374 100644 --- a/static/js/utils.js +++ b/static/js/utils.js @@ -185,15 +185,17 @@ var getLineNumberOrLastLine = function (offset) { } exports.getLineNumberFromDOMLine = function ($line, rep) { - var lineId = $line.attr("id"); - var lineNumber = exports.getLineFromLineId(rep, lineId); - + var lineId = $line.attr('id'); + // try the fastest method first (via rep); if line id is not available yet, + // get line number via DOM + var lineNumber = lineId ? getLineFromLineId(rep, lineId) : $line.index(); return lineNumber; } -exports.getLineFromLineId = function(rep, lineId) { +var getLineFromLineId = function(rep, lineId) { return rep.lines.indexOfKey(lineId); } +exports.getLineFromLineId = getLineFromLineId; exports.getLineNumberOfCaretLine = function(rep) { var $firstLine = exports.getFirstLineOfSelection();