anchor.diff:              | JoinLines -> Vi.ViActions.Join editor
               | InsertLine Before -> MiscActions.InsertNewLineAtEnd editor
               | InsertLine After -> editor.Caret.Column <- 1; MiscActions.InsertNewLine editor; CaretMoveActions.Up editor
  +            | GoToDeclaration -> dispatch "MonoDevelop.Refactoring.RefactoryCommands.GotoDeclaration"
               | _ -> ()
   
           match command.commandType with
  
positive.code:             editor.SetSelection(startLine.Offset, endLine.EndOffsetIncludingDelimiter)
          | _ -> ()
  
      let runCommand vimState editor command =
          for i in [1..command.repeat] do
              let start, finish = VimHelpers.getRange vimState editor command.textObject
  
negative.code:             | NotInsertMode, [ FindChar _; ] -> wait
              | NotInsertMode, [ Action _; FindChar _; ] -> wait
              | NormalMode, [ "g"; "g" ] -> [ run Move StartOfDocument ]
              | NormalMode, [ "g"; "d" ] -> [ run GoToDeclaration Nothing ]
              | NormalMode, [ "g" ] -> wait
              | NormalMode, [ "." ] -> [ run RepeatLastAction Nothing ]
              | NormalMode, [ ";" ] -> match state.findCharCommand with Some command -> [ command ] | None -> []
  