diff --git a/src/atom/editor.coffee b/src/atom/editor.coffee index 69e2d8f8e..aff768fc1 100644 --- a/src/atom/editor.coffee +++ b/src/atom/editor.coffee @@ -177,10 +177,11 @@ class Editor extends View @cursor.bufferChanged(e) @renderer.on 'change', (e) => - @gutter.renderLineNumbers(@getScreenLines()) + { oldRange, newRange } = e + unless newRange.isSingleLine() and newRange.coversSameRows(oldRange) + @gutter.renderLineNumbers(@getScreenLines()) @cursor.refreshScreenPosition() unless e.bufferChanged - { oldRange, newRange } = e screenLines = @linesForRows(newRange.start.row, newRange.end.row) if newRange.end.row > oldRange.end.row # update, then insert elements diff --git a/src/atom/range.coffee b/src/atom/range.coffee index af511be16..0fb15d9fd 100644 --- a/src/atom/range.coffee +++ b/src/atom/range.coffee @@ -31,6 +31,12 @@ class Range other.start.isEqual(@start) and other.end.isEqual(@end) + isSingleLine: -> + @start.row == @end.row + + coversSameRows: (other) -> + @start.row == other.start.row && @end.row == other.end.row + inspect: -> "[#{@start.inspect()} - #{@end.inspect()}]"