              ((error "Invalid rcs patch or internal error in +format--apply-rcs-patch")))))))
     (move-to-column column)))
 
+(defun +format--current-indentation ()
+  (save-excursion
+    (goto-char (point-min))
+    (skip-chars-forward " \t\n")
+    (current-indentation)))
+
 
 ;;
 ;; Public library

                           (erase-buffer))
                         (with-temp-file tmpfile
                           (erase-buffer)
                           (insert output))
                         (if (zerop (call-process-region (point-min) (point-max) "diff" nil patchbuf nil "-n" "-" tmpfile))
                             'noop
                           (+format--apply-rcs-patch patchbuf)

  (unless formatter
    (user-error "Don't know how to format '%s' code" major-mode))
  (let ((f-function (gethash formatter format-all-format-table))
        (executable (format-all-formatter-executable formatter))
        indent)
    (pcase-let
        ((`(,output ,errput ,first-diff)
          ;; Since `format-all' functions (and various formatting functions,
