diff --git a/spec/atom/buffer-spec.coffee b/spec/atom/buffer-spec.coffee index e22c3d43b..12d410638 100644 --- a/spec/atom/buffer-spec.coffee +++ b/spec/atom/buffer-spec.coffee @@ -117,8 +117,8 @@ describe 'Buffer', -> [event] = changeHandler.argsForCall[0] expect(event.string).toBe newText - expect(event.preRange).toEqual expectedPreRange - expect(event.postRange).toEqual(new Range([0, 0], [1, 14])) + expect(event.oldRange).toEqual expectedPreRange + expect(event.newRange).toEqual(new Range([0, 0], [1, 14])) describe ".save()", -> describe "when the buffer has a path", -> diff --git a/spec/atom/highlighter-spec.coffee b/spec/atom/highlighter-spec.coffee index 53b89efff..742835f32 100644 --- a/spec/atom/highlighter-spec.coffee +++ b/spec/atom/highlighter-spec.coffee @@ -35,8 +35,8 @@ describe "Highlighter", -> expect(changeHandler).toHaveBeenCalled() [event] = changeHandler.argsForCall[0] - expect(event.preRange).toEqual range - expect(event.postRange).toEqual new Range([0, 0], [2,0]) + expect(event.oldRange).toEqual range + expect(event.newRange).toEqual new Range([0, 0], [2,0]) it "updates tokens for lines beyond the changed lines if needed", -> buffer.insert([5, 30], '/* */') @@ -49,8 +49,8 @@ describe "Highlighter", -> expect(changeHandler).toHaveBeenCalled() [event] = changeHandler.argsForCall[0] - expect(event.preRange).toEqual new Range([2, 0], [5, buffer.getLine(5).length]) - expect(event.postRange).toEqual new Range([2, 0], [5, buffer.getLine(5).length]) + expect(event.oldRange).toEqual new Range([2, 0], [5, buffer.getLine(5).length]) + expect(event.newRange).toEqual new Range([2, 0], [5, buffer.getLine(5).length]) it "resumes highlighting with the state of the previous line", -> buffer.insert([0, 0], '/*') @@ -78,8 +78,8 @@ describe "Highlighter", -> expect(changeHandler).toHaveBeenCalled() [event] = changeHandler.argsForCall[0] - expect(event.preRange).toEqual range - expect(event.postRange).toEqual new Range([1, 0], [1, 5]) + expect(event.oldRange).toEqual range + expect(event.newRange).toEqual new Range([1, 0], [1, 5]) it "updates tokens for lines beyond the changed lines if needed", -> buffer.insert([5, 30], '/* */') @@ -92,8 +92,8 @@ describe "Highlighter", -> expect(changeHandler).toHaveBeenCalled() [event] = changeHandler.argsForCall[0] - expect(event.preRange).toEqual new Range([2, 0], [5, buffer.getLine(4).length]) - expect(event.postRange).toEqual new Range([2, 0], [4, buffer.getLine(4).length]) + expect(event.oldRange).toEqual new Range([2, 0], [5, buffer.getLine(4).length]) + expect(event.newRange).toEqual new Range([2, 0], [4, buffer.getLine(4).length]) describe "when lines are both updated and inserted", -> it "updates tokens to reflect the inserted lines", -> @@ -117,8 +117,8 @@ describe "Highlighter", -> expect(changeHandler).toHaveBeenCalled() [event] = changeHandler.argsForCall[0] - expect(event.preRange).toEqual range - expect(event.postRange).toEqual new Range([1, 0], [4, 6]) + expect(event.oldRange).toEqual range + expect(event.newRange).toEqual new Range([1, 0], [4, 6]) it "updates tokens for lines beyond the changed lines if needed", -> buffer.insert([5, 30], '/* */') @@ -135,5 +135,5 @@ describe "Highlighter", -> expect(changeHandler).toHaveBeenCalled() [event] = changeHandler.argsForCall[0] - expect(event.preRange).toEqual new Range([2, 0], [5, buffer.getLine(7).length]) - expect(event.postRange).toEqual new Range([2, 0], [7, buffer.getLine(7).length]) + expect(event.oldRange).toEqual new Range([2, 0], [5, buffer.getLine(7).length]) + expect(event.newRange).toEqual new Range([2, 0], [7, buffer.getLine(7).length]) diff --git a/src/atom/buffer.coffee b/src/atom/buffer.coffee index 3a6e7a66b..c119ef60d 100644 --- a/src/atom/buffer.coffee +++ b/src/atom/buffer.coffee @@ -65,25 +65,25 @@ class Buffer insert: (point, text) -> @change(new Range(point, point), text) - change: (preRange, newText) -> - postRange = new Range(_.clone(preRange.start), _.clone(preRange.start)) - prefix = @lines[preRange.start.row][0...preRange.start.column] - suffix = @lines[preRange.end.row][preRange.end.column..] + change: (oldRange, newText) -> + newRange = new Range(_.clone(oldRange.start), _.clone(oldRange.start)) + prefix = @lines[oldRange.start.row][0...oldRange.start.column] + suffix = @lines[oldRange.end.row][oldRange.end.column..] newTextLines = newText.split('\n') if newTextLines.length == 1 - postRange.end.column += newText.length + newRange.end.column += newText.length newTextLines = [prefix + newText + suffix] else lastLineIndex = newTextLines.length - 1 newTextLines[0] = prefix + newTextLines[0] - postRange.end.row += lastLineIndex - postRange.end.column = newTextLines[lastLineIndex].length + newRange.end.row += lastLineIndex + newRange.end.column = newTextLines[lastLineIndex].length newTextLines[lastLineIndex] += suffix - @lines[preRange.start.row..preRange.end.row] = newTextLines - @trigger 'change', { preRange, postRange, string: newText } + @lines[oldRange.start.row..oldRange.end.row] = newTextLines + @trigger 'change', { oldRange, newRange, string: newText } save: -> if not @path then throw new Error("Tried to save buffer with no url") diff --git a/src/atom/cursor.coffee b/src/atom/cursor.coffee index 34db44eec..c1c3039b1 100644 --- a/src/atom/cursor.coffee +++ b/src/atom/cursor.coffee @@ -13,7 +13,7 @@ class Cursor extends View @one 'attach', => @updateAppearance() bufferChanged: (e) -> - @setPosition(e.postRange.end) + @setPosition(e.newRange.end) setPosition: (point) -> point = Point.fromObject(point) diff --git a/src/atom/editor.coffee b/src/atom/editor.coffee index e4eb65e39..9ecf91107 100644 --- a/src/atom/editor.coffee +++ b/src/atom/editor.coffee @@ -129,19 +129,19 @@ class Editor extends View @cursor.bufferChanged(e) @highlighter.on 'change', (e) => - { preRange, postRange } = e + { oldRange, newRange } = e - if postRange.end.row > preRange.end.row + if newRange.end.row > oldRange.end.row # update, then insert elements - for row in [preRange.start.row..postRange.end.row] - if row <= preRange.end.row + for row in [oldRange.start.row..newRange.end.row] + if row <= oldRange.end.row @updateLineElement(row) else @insertLineElement(row) else # traverse in reverse... remove, then update elements - for row in [preRange.end.row..preRange.start.row] - if row > postRange.end.row + for row in [oldRange.end.row..oldRange.start.row] + if row > newRange.end.row @removeLineElement(row) else @updateLineElement(row) diff --git a/src/atom/highlighter.coffee b/src/atom/highlighter.coffee index f355b70e8..84ad5f805 100644 --- a/src/atom/highlighter.coffee +++ b/src/atom/highlighter.coffee @@ -16,20 +16,20 @@ class Highlighter @tokenizer = (new Mode).getTokenizer() handleBufferChange: (e) -> - preRange = e.preRange.copy() - postRange = e.postRange.copy() - previousState = @lines[preRange.end.row].state # used in spill detection below + oldRange = e.oldRange.copy() + newRange = e.newRange.copy() + previousState = @lines[oldRange.end.row].state # used in spill detection below - startState = @lines[postRange.start.row - 1]?.state or 'start' - @lines[preRange.start.row..preRange.end.row] = - @tokenizeRows(startState, postRange.start.row, postRange.end.row) + startState = @lines[newRange.start.row - 1]?.state or 'start' + @lines[oldRange.start.row..oldRange.end.row] = + @tokenizeRows(startState, newRange.start.row, newRange.end.row) # spill detection # compare scanner state of last re-highlighted line with its previous state. # if it differs, re-tokenize the next line with the new state and repeat for # each line until the line's new state matches the previous state. this covers # cases like inserting a /* needing to comment out lines below until we see a */ - for row in [postRange.end.row...@buffer.lastRow()] + for row in [newRange.end.row...@buffer.lastRow()] break if @lines[row].state == previousState nextRow = row + 1 previousState = @lines[nextRow].state @@ -37,14 +37,14 @@ class Highlighter # if highlighting spilled beyond the bounds of the textual change, update # the pre and post range to reflect area of highlight changes - if nextRow > postRange.end.row - preRange.end.row += (nextRow - postRange.end.row) - postRange.end.row = nextRow + if nextRow > newRange.end.row + oldRange.end.row += (nextRow - newRange.end.row) + newRange.end.row = nextRow endColumn = @buffer.getLine(nextRow).length - postRange.end.column = endColumn - preRange.end.column = endColumn + newRange.end.column = endColumn + oldRange.end.column = endColumn - @trigger("change", {preRange, postRange}) + @trigger("change", {oldRange, newRange}) tokenizeRows: (startState, startRow, endRow) -> state = startState