       pairInfo = {openRange, closeRange, aRange, innerRange, targetRange}
     pairInfo
 
-  getRange: (selection, {enclosed}={}) ->
+  # Allow override @enclosed by 2nd argument.
+  getRange: (selection, @enclosed=@enclosed) ->
     originalRange = selection.getBufferRange()
     from = selection.getHeadBufferPosition()
 

  ]

  getRangeBy: (klass, selection) ->
    @new(klass, {@inner}).getRange(selection, {@enclosed})

  getRanges: (selection) ->
    (range for klass in @member when (range = @getRangeBy(klass, selection)))

    if (not selection.isEmpty() and not selection.isReversed())
      from = from.translate([0, -1])

    pairInfo = @getPairInfo(from)
    # When range was same, try to expand range
    if pairInfo?.targetRange.isEqual(originalRange)
      from = pairInfo.aRange.end.translate([0, +1])
      pairInfo = @getPairInfo(from)
    pairInfo?.targetRange

  selectTextObject: (selection) ->
    swrap(selection).setBufferRangeSafely @getRange(selection)

# -------------------------
class AnyPair extends Pair
