 
       if (pairState is which) and (state.open.length is 0) and (state.close.length is 0)
         if enclosed and tmpFrom?
+          # [FIXME] really need? better way?
           # When checking enclosed state, we have to be exclude for end of Range.
           tmpRange = new Range(tmpFrom, point).translate([0, 0], [0, -1])
           unless tmpRange.containsPoint(from)
             return
-        found = point
+        found = range
         # @report {was: "fnd", which, pair, state, pairState, matchText}
         return stop()
       # @report {was: "cnt", which, pair, state, pairState, matchText}

      when 'inner' then [[0, +openLength], [0, -closeLength]]
    range.translate(translation...)

  getPairRange: (from, pair, enclosed) ->
    range = null
    close = @findClose pair, {from: from, enclosed}
    open = @findOpen pair, {from: close} if close?

    if open? and close?
      range = new Range(open, close)
      # range returned by @findOpen, @findClose is inclusive(=a) range.
      range = @translateRange(range, pair, 'inner') if @isInner()
    range

  getRange: (selection, {enclosed}={}) ->
    originalRange = selection.getBufferRange()


class InnerTag extends Tag
  @extend()

# Paragraph
# -------------------------
# In Vim world Paragraph is defined as consecutive (non-)blank-line.
