         selection.selectRight()
       true
 
+# WholeWord
+# -------------------------
 class SelectInsideWholeWord extends TextObject
   select: ->
     for selection in @editor.getSelections()
       range = selection.cursor.getCurrentWordBufferRange({wordRegex: WholeWordRegex})
       selection.setBufferRange(range)
+      true
+
+class SelectAWholeWord extends TextObject
+  select: ->
+    for selection in @editor.getSelections()
+      range = selection.cursor.getCurrentWordBufferRange({wordRegex: WholeWordRegex})
+      selection.setBufferRange(range)
+      loop
+        endPoint = selection.getBufferRange().end
+        char = @editor.getTextInRange(Range.fromPointWithDelta(endPoint, 0, 1))
+        break unless AllWhitespace.test(char)
+        selection.selectRight()
       true
 
 # SelectInsideQuotes and the next class defined (SelectInsideBrackets) are
 # almost-but-not-quite-repeated code. They are different because of the depth
 # checks in the bracket matcher.
-
 class SelectInsideQuotes extends TextObject
   constructor: (@editor, @char, @includeQuotes) ->
 

    @editor.setSelectedBufferRanges(@selection)
    _.times(count, -> true)

class SelectInsideWord extends TextObject
  select: ->
    @editor.selectWordsContainingCursors()

        selection.selectDown()
      true

module.exports = {
  TextObject,
  CurrentSelection,
  SelectInsideWord, SelectAWord,
  SelectInsideWholeWord, SelectAWholeWord,
  SelectInsideQuotes, SelectInsideBrackets,
  SelectInsideParagraph, SelectAParagraph
}
