From c9a4bb4245f1252fb30e1ea1cf646ac5374a26d7 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Wed, 18 Jul 2018 17:09:47 -0700 Subject: [PATCH] Fix logic for updating foldable range cache --- src/tree-sitter-language-mode.js | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/tree-sitter-language-mode.js b/src/tree-sitter-language-mode.js index 7d0377f28..4087cd2a1 100644 --- a/src/tree-sitter-language-mode.js +++ b/src/tree-sitter-language-mode.js @@ -41,15 +41,12 @@ class TreeSitterLanguageMode { this.emitRangeUpdate = this.emitRangeUpdate.bind(this) this.subscription = this.buffer.onDidChangeText(({changes}) => { - for (let i = changes.length - 1; i >= 0; i--) { + for (let i = 0, {length} = changes; i < length; i++) { const {oldRange, newRange} = changes[i] - const startRow = oldRange.start.row - const oldEndRow = oldRange.end.row - const newEndRow = newRange.end.row this.isFoldableCache.splice( - startRow, - oldEndRow - startRow, - ...new Array(newEndRow - startRow) + newRange.start.row, + oldRange.end.row - oldRange.start.row, + ...new Array(newRange.end.row - newRange.start.row) ) }