 #  - section boundary is also sentence boundary(ignore)
 class MoveToNextSentence extends Motion
   @extend()
-  sentenceRegex: ///[\.!\?][\)\]"']*\s+///g
+  sentenceRegex: ///(?:[\.!\?][\)\]"']*\s+)|(\n|\r\n)///g
 
   moveCursor: (cursor) ->
     point = cursor.getBufferPosition()

  getPreviousStartOfSentence: (fromPoint) ->
    scanRange = [fromPoint, [0, 0]]
    foundPoint = null
    @editor.backwardsScanInBufferRange @sentenceRegex, scanRange, ({range, match, stop, matchText}) ->
      if range.end.isLessThan(fromPoint)
        foundPoint = range.end
        stop()
    foundPoint

  getPoint: (fromPoint) ->
    foundPoint = @getPreviousStartOfSentence(fromPoint)

    isBlank = (isAtNonBlankRow) -> not isAtNonBlankRow
    if boundaryRow = @getParagraphBoundaryRow(fromPoint.row, 'previous', isBlank)
      point = @getFirstCharacterPositionForRow(boundaryRow + 1)
      if point.isLessThan(fromPoint)
        paragraphBoundaryPoint = point
      else
        paragraphBoundaryPoint = @getFirstCharacterPositionForRow(boundaryRow)
    paragraphBoundaryPoint ?= [0, 0]

    if foundPoint?
      Point.max(foundPoint, paragraphBoundaryPoint)
    else
      paragraphBoundaryPoint

# Paragraph
# -------------------------

  getFirstCharacterBufferPositionForScreenRow
  getTextInScreenRange
  cursorIsAtEndOfLineAtNonEmptyRow
  getFirstCharacterColumForBufferRow

  debug
