anchor.diff:        (set result.cursorDx options.cursorDx))
       (when (isBoolean options.previewCursorScope)
         (set result.previewCursorScope options.previewCursorScope))
  -    (when options.isNewlineMode
  -      (set result.isNewlineMode options.isNewlineMode)
  +    (when (isBoolean options.pressedEnter)
  +      (set result.pressedEnter options.pressedEnter)
         ;; calculate cursorDx
         (var prevCursorLine result.origLines[result.cursorLine-1])
  -      (set result.cursorDx (- result.cursorX prevCursorLine.length))))
  +      (set result.cursorDx (- result.cursorX prevCursorLine.length)))
  +    (when (isBoolean options.stabilizeNewline)
  +      (set result.stabilizeNewline options.stabilizeNewline)))
   
     result)
   
  
positive.code:        tabStops: result.tabStops})))
  
  (function indentMode (text options)
    (var result (processText text options INDENT_MODE))
    (publicResult result))
  
  (function parenMode (text options)
    (var result (processText text options PAREN_MODE))
    (publicResult result))
  
  (function newlineMode (text options)
    (set options.isNewlineMode true)
    (set result (processText text options PAREN_MODE))
    (publicResult result))
  
  (var API
  
negative.code:       cursorDx SENTINEL_NULL      ;; [integer] - amount that the cursor moved horizontally if something was inserted or deleted
        previewCursorScope false    ;; [boolean] - preview the cursor's scope on an empty line by inserting close-parens after it.
        canPreviewCursorScope false ;; [boolean] - determines if the cursor is in a valid position to allow previewing scope
  
        pressedEnter false
        stabilizeNewline false
  
        isInCode true            ;; [boolean] - indicates if we are currently in "code space" (not string or comment)
        isEscaping false         ;; [boolean] - indicates if the next character will be escaped (e.g. `\c`).  This may be inside string, comment, or code.
  