anchor.diff:                          x.Editor.CaretOffset <- x.Editor.Length
                       base.KeyPress (descriptor)
   
  -            //if lineStr.StartsWith promptStart && x.Editor.CaretColumn < promptWidth && x.Editor.CaretLine = startLine  then
  -            //    let editedLine, _ = getCaretLine x.Editor
  -            //    // Fixes ctrl-w and maybe other keystrokes that remove the prompt
  -            //    if lineHadPrompt && not (editedLine.StartsWith promptStart) then
  -            //        x.Editor.InsertText (line.Offset, promptStart)
  -            //    x.Editor.CaretColumn <- promptWidth
  -
               result
           | _ -> base.KeyPress (descriptor)
   
  
positive.code:             if commandHistoryFuture.Count = 0 then
                  commandHistoryFuture.Push (getCaretLine())
              else
                  if commandHistoryPast.Count = 1 then ()
                  else commandHistoryFuture.Push (commandHistoryPast.Pop ())
              setCaretLine (commandHistoryPast.Peek ())
  
      member x.ProcessCommandHistoryDown () =
          if commandHistoryFuture.Count > 0 then
              if commandHistoryFuture.Count = 1 then
                  setCaretLine (commandHistoryFuture.Pop ())
              else
                  commandHistoryPast.Push (commandHistoryFuture.Pop ())
  
negative.code: /// handles keypresses for F# Interactive
  type FSharpFsiEditorCompletion() =
      inherit TextEditorExtension()
      let getCaretLine (editor:TextEditor) =
          let line =
              editor.CaretLine
  