[Gutter][refactor] Simplify TextEditorPresenter::updateCustomGutterDecorationState

This commit is contained in:
Jess Lin
2015-04-01 15:00:44 -07:00
parent 34856d94f5
commit d78dfd86bf

View File

@@ -424,21 +424,20 @@ class TextEditorPresenter
# class (optional): {String} class
# }
# }
updateCustomGutterDecorationState: () ->
updateCustomGutterDecorationState: ->
@batch 'shouldUpdateCustomGutterDecorationState', =>
return unless @startRow? and @endRow? and @lineHeight?
@state.gutters.customDecorations = {}
for gutter in @model.getGutters()
gutterName = gutter.name
@state.gutters.customDecorations[gutterName] ?= {}
@state.gutters.customDecorations[gutterName] = {}
gutterState = @state.gutters.customDecorations[gutterName]
visibleDecorationIds = {}
relevantDecorations = @customGutterDecorationsInRange(gutterName, @startRow, @endRow - 1)
return if !relevantDecorations
relevantDecorations.forEach (decoration) =>
visibleDecorationIds[decoration.id] = true
decorationRange = decoration.getMarker().getScreenRange()
gutterState[decoration.id] =
top: @lineHeight * decorationRange.start.row
@@ -446,9 +445,6 @@ class TextEditorPresenter
item: decoration.getProperties().item
class: decoration.getProperties().class
for decorationId of gutterState
delete gutterState[decorationId] unless visibleDecorationIds[decorationId]
updateLineNumbersState: -> @batch "shouldUpdateLineNumbersState", ->
return unless @startRow? and @endRow? and @lineHeight?