diff --git a/spec/atom/renderer-spec.coffee b/spec/atom/renderer-spec.coffee index 6a04aa418..f45671ee2 100644 --- a/spec/atom/renderer-spec.coffee +++ b/spec/atom/renderer-spec.coffee @@ -464,6 +464,18 @@ describe "Renderer", -> expect(event.oldRange).toEqual [[4, 0], [4, 56]] expect(event.newRange).toEqual [[4, 0], [4, 60]] + describe "when the old range surrounds two nested folds", -> + it "removes both folds and replaces the fold placeholder with the new text", -> + renderer.createFold([[4, 25], [7, 5]]) + buffer.change([[4, 25], [7, 5]], '4)') + + expect(renderer.lineForRow(4).text).toBe ' while(items.length > 4)...concat(sort(right));' + # expect(changeHandler).toHaveBeenCalled() + # [[event]] = changeHandler.argsForCall + # expect(event.oldRange).toEqual [[4, 0], [4, 56]] + # expect(event.newRange).toEqual [[4, 0], [4, 60]] + + describe "position translation", -> describe "when there is single fold spanning multiple lines", -> it "translates positions to account for folded lines and characters and the placeholder", -> diff --git a/src/atom/renderer.coffee b/src/atom/renderer.coffee index 9bad9feb6..824a1eae1 100644 --- a/src/atom/renderer.coffee +++ b/src/atom/renderer.coffee @@ -117,7 +117,7 @@ class Renderer handleBufferChange: (e) -> for row, folds of @activeFolds - for fold in folds + for fold in new Array(folds...) changeInsideFold = true if fold.handleBufferChange(e) unless changeInsideFold