   @extend()
   vimState: null
   target: null
-  complete: null
-
-  constructor: (@editor, @vimState) ->
-    @complete = false
+  complete: false
+  recodable: true
+
+  constructor: (@editor, @vimState, options={}) ->
+    {@complete} = options if options.complete?
 
   # Public: Determines when the command can be executed.
   #
   # Returns true if ready to execute and false otherwise.
-  isComplete: -> @complete
+  isComplete: ->
+    @complete
 
   # Public: Determines if this command should be recorded in the command
   # history for repeats.
   #
   # Returns true if this command should be recorded.
-  isRecordable: -> true
+  isRecordable: ->
+    @recodable
 
   # Public: Marks this as ready to execute and saves the motion.
   #

    @target = target
    @complete = true

  canComposeWith: (operation) -> operation.select?

  # Public: Preps text and sets the text register
  #

#
class Join extends Operator
  @extend()
  complete: true

  # Public: Combines the current with the following lines
  #
