             height: @lineHeight * decorationRange.getRowCount()
             item: decoration.getProperties().item
             class: decoration.getProperties().class
+
+  gutterIsVisible: (gutterModel) ->
+    isVisible = gutterModel.isVisible()
+    if gutterModel.name is 'line-number'
+      isVisible = isVisible && @showLineNumbers
+    isVisible
 
   updateLineNumbersState: -> @batch "shouldUpdateLineNumbersState", ->
     return unless @startRow? and @endRow? and @lineHeight?

      if @model.isMini()
        return
      for gutter in @model.getGutters()
        isVisible = gutter.isVisible()
        if gutter.name is 'line-number'
          isVisible = isVisible && @showLineNumbers
        @state.gutters.sortedDescriptions.push({gutter, visible: isVisible})

  # Updates the decoration state for the gutter with the given gutterName.

    gutterDisposables = new CompositeDisposable
    gutterDisposables.add gutter.onDidChangeVisible =>
      @updateCustomGutterState()
      @updateCustomGutterDecorationState()
    gutterDisposables.add gutter.onDidDestroy =>
      @disposables.remove(gutterDisposables)
      gutterDisposables.dispose()
