       canSelect = false
 
     @countTimes =>
+      if @normalize and @isMode('visual')
+        @vimState.modeManager.normalizeSelections()
+
       for selection in @editor.getSelections() when canSelect
         @selectTextObject(selection, stopSelection)
     @editor.mergeIntersectingSelections()

  allowSubmodeChange: false
  adjustInnerRange: true
  pair: null
  getPattern: ->
    [open, close] = @pair
    if open is close

class TextObject extends Base
  @extend(false)
  allowSubmodeChange: true
  normalize: false

  constructor: ->
    @constructor::inner = @getName().startsWith('Inner')
