* lisp/progmodes/python.el (python-mode): Set
fill-indent-according-to-mode locally to t. This lets auto-fill do
the right thing when auto-filling inside a docstring. The default was
to nil on 2001-11-25 "(fill-indent-according-to-mode): Default to nil"
with the comment that it "screws up CC-mode's filling tricks". But
presumably it shouldn't be a problem for python-mode.
* test/lisp/progmodes/python-tests.el (python-auto-fill-docstring):
New test.
(set (make-local-variable 'paragraph-start) "\\s-*$")
(set (make-local-variable 'fill-paragraph-function)
#'python-fill-paragraph)
+ (set (make-local-variable 'fill-indent-according-to-mode) t) ; Bug#36056.
(set (make-local-variable 'beginning-of-defun-function)
#'python-nav-beginning-of-defun)
(should (string= (buffer-substring-no-properties (point-min) (point-max))
expected)))))
+\f
+;;; Autofill
+
+(ert-deftest python-auto-fill-docstring ()
+ (python-tests-with-temp-buffer
+ "\
+def some_function(arg1,
+ arg2):
+ \"\"\"
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
+ (auto-fill-mode +1)
+ (goto-char (point-max))
+ (newline)
+ (search-backward "Lorem")
+ (let ((docindent (current-indentation)))
+ (forward-line 1)
+ (should (= docindent (current-indentation))))))
+
\f
;;; Mark