anchor.diff:  open System.Globalization
   open MonoDevelop.Ide.Editor
   open MonoDevelop.Ide.Editor.Extension
  +open Mono.TextEditor
   
   type BlockChar = 
       | LeftSquare = '[' 
  
positive.code:     textObject: TextObject
  }
  
  type XSVim() =
      inherit TextEditorExtension()
  
  
negative.code:         | _ -> None
  
      let keys = ResizeArray<_>()
      let mutable textEditorData = null
      let getCommand (repeat: int option) commandType textObject =
          Some { repeat=(match repeat with | Some r -> r | None -> 1); commandType=commandType; textObject=textObject }
  
      member x.RunCommand command =
          let start, finish = VimHelpers.getRange textEditorData command.textObject
          match command.commandType with
          | Move -> x.Editor.CaretOffset <- finish
          | _ -> ()
  
      override x.Initialize() =
          textEditorData <- x.Editor.GetContent<ITextEditorDataProvider>().GetTextEditorData()
  
      override x.KeyPress(descriptor:KeyDescriptor) =
          if descriptor.KeyChar = 'q' then
  