Function: python-indent-guess-indent-offset
python-indent-guess-indent-offset is an interactive and byte-compiled
function defined in python.el.gz.
Signature
(python-indent-guess-indent-offset)
Documentation
Guess and set python-indent-offset for the current buffer.
Probably introduced at or before Emacs version 24.3.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/python.el.gz
(defun python-indent-guess-indent-offset ()
"Guess and set `python-indent-offset' for the current buffer."
(interactive)
(save-excursion
(save-restriction
(widen)
(goto-char (point-min))
(let ((block-end))
(while (and (not block-end)
(re-search-forward
(python-rx line-start block-start) nil t))
(when (and
(not (python-syntax-context-type))
(progn
(goto-char (line-end-position))
(python-util-forward-comment -1)
(if (equal (char-before) ?:)
t
(forward-line 1)
(when (python-info-block-continuation-line-p)
(while (and (python-info-continuation-line-p)
(not (eobp)))
(forward-line 1))
(python-util-forward-comment -1)
(when (equal (char-before) ?:)
t)))))
(setq block-end (point-marker))))
(let ((indentation
(when block-end
(goto-char block-end)
(python-util-forward-comment)
(current-indentation))))
(if (and indentation (not (zerop indentation)))
(setq-local python-indent-offset indentation)
(when python-indent-guess-indent-offset-verbose
(message "Can't guess python-indent-offset, using defaults: %s"
python-indent-offset))))))))