anchor.diff:          let toggleCase state start finish =
               if command.textObject <> SelectedText then
                   setSelection state editor command start finish
  -            let toggleChar =
  -                function
  +
  +            let toggleChar = function
                   | c when Char.IsUpper c -> Char.ToLower c
                   | c when Char.IsLower c -> Char.ToUpper c
                   | c -> c
  +
               match state.mode with
               | VisualBlockMode ->
                   let selectionStartLocation = editor.OffsetToLocation vimState.visualStartOffset
  
positive.code:                     editor.CaretColumn, selectionStartLocation.Column+1
                  else
                      selectionStartLocation.Column, editor.CaretColumn+1
              let topLine = Math.Min(selectionStartLocation.Line, editor.CaretLine)
              let bottomLine = Math.Max(selectionStartLocation.Line, editor.CaretLine)
              editor.SetSelection(DocumentLocation (topLine, leftColumn), DocumentLocation (bottomLine, rightColumn))
              if editor.SelectionMode = SelectionMode.Normal then dispatch TextEditorCommands.ToggleBlockSelectionMode
          | VisualLineMode, Move | VisualLineMode, SwitchMode _ ->
              let startPos = Math.Min(finish, vimState.visualStartOffset)
              let endPos = Math.Max(finish, vimState.visualStartOffset)
              let startLine = editor.GetLineByOffset startPos
              let endLine = editor.GetLineByOffset endPos
              editor.SetSelection(startLine.Offset, endLine.EndOffsetIncludingDelimiter)
  
negative.code:                         let c = toggleChar currentLetter
                          editor.SetSelection(i, i+1)
                          EditActions.Delete editor
                          editor.InsertAtCaret (string c)
                          EditActions.MoveCaretLeft editor
              | _ ->
                  let swappedChars = editor.SelectedText |> Seq.map toggleChar |> Array.ofSeq
  