From a352a2ca614963af96f58f23153a1b7f58bbf60d Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Thu, 9 Jul 2015 00:12:47 -0500 Subject: [PATCH] Try to avoid exceptions due to undefined lines in TokenizedBuffer --- src/tokenized-buffer.coffee | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/tokenized-buffer.coffee b/src/tokenized-buffer.coffee index f8bdabe58..bfc3bf1b8 100644 --- a/src/tokenized-buffer.coffee +++ b/src/tokenized-buffer.coffee @@ -369,17 +369,20 @@ class TokenizedBuffer extends Model tokenizedLineForRow: (bufferRow) -> if 0 <= bufferRow < @tokenizedLines.length @tokenizedLines[bufferRow] ?= @buildPlaceholderTokenizedLineForRow(bufferRow) + else + atom.assert false, "Requested tokenized line with out of range buffer row", (error) => + error.metadata = {bufferRow, maxBufferRow: @tokenizedLines.length} tokenizedLinesForRows: (startRow, endRow) -> for row in [startRow..endRow] by 1 @tokenizedLineForRow(row) stackForRow: (bufferRow) -> - @tokenizedLines[bufferRow]?.ruleStack + @tokenizedLineForRow(bufferRow)?.ruleStack openScopesForRow: (bufferRow) -> if bufferRow > 0 - precedingLine = @tokenizedLines[bufferRow - 1] + precedingLine = @tokenizedLineForRow(bufferRow - 1) @scopesFromTags(precedingLine.openScopes, precedingLine.tags) else [] @@ -448,7 +451,7 @@ class TokenizedBuffer extends Model scopeDescriptorForPosition: (position) -> {row, column} = @buffer.clipPosition(Point.fromObject(position)) - iterator = @tokenizedLines[row].getTokenIterator() + iterator = @tokenizedLineForRow(row).getTokenIterator() while iterator.next() if iterator.getBufferEnd() > column scopes = iterator.getScopes()