   # * `options` (optional) An options {Object}:
   #   * `reversed` A {Boolean} indicating whether to create the selection in a
   #     reversed orientation.
-  #
+  #   * `preserveFolds` A {Boolean}, which if `true` preserves the fold settings after the
+  #     selection is set.
   # Returns the added {Selection}.
   addSelectionForScreenRange: (screenRange, options={}) ->
-    @selectionsMarkerLayer.markScreenRange(screenRange, {invalidate: 'never', reversed: options.reversed ? false})
-    @getLastSelection().autoscroll() unless options.autoscroll is false
-    @getLastSelection()
+    @addSelectionForBufferRange(@bufferRangeForScreenRange(screenRange), options)
 
   # Essential: Select from the current cursor position to the given position in
   # buffer coordinates.

  # * `options` (optional) An options {Object}:
  #   * `reversed` A {Boolean} indicating whether to create the selection in a
  #     reversed orientation.
  #
  # Returns the added {Selection}.
  addSelectionForBufferRange: (bufferRange, options={}) ->
    @selectionsMarkerLayer.markBufferRange(bufferRange, {invalidate: 'never', reversed: options.reversed ? false})
    @getLastSelection().autoscroll() unless options.autoscroll is false
    @getLastSelection()

    @disposables.add @tokenizedBuffer.observeGrammar @subscribeToScopedConfigSettings

    for marker in @selectionsMarkerLayer.getMarkers()
      @addSelection(marker)

    @subscribeToTabTypeConfig()
