From 0f01a58c390faf30c33b369fc81b2a14ec5b7f2e Mon Sep 17 00:00:00 2001 From: Noam Postavsky Date: Fri, 21 Jun 2019 07:49:22 -0400 Subject: Fix python docstring auto-fill (Bug#36056) * 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. --- lisp/progmodes/python.el | 1 + test/lisp/progmodes/python-tests.el | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index 188bc973d99..e1f9a33a691 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -5379,6 +5379,7 @@ REPORT-FN is Flymake's callback function." (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) diff --git a/test/lisp/progmodes/python-tests.el b/test/lisp/progmodes/python-tests.el index a5179097172..87cee189eac 100644 --- a/test/lisp/progmodes/python-tests.el +++ b/test/lisp/progmodes/python-tests.el @@ -1341,6 +1341,24 @@ this is an arbitrarily expected))))) +;;; 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)))))) + + ;;; Mark (ert-deftest python-mark-defun-1 () -- cgit v1.2.1