summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoam Postavsky <npostavs@gmail.com>2019-06-21 07:49:22 -0400
committerNoam Postavsky <npostavs@gmail.com>2019-06-22 19:25:44 -0400
commit0f01a58c390faf30c33b369fc81b2a14ec5b7f2e (patch)
tree358768de2c6ca522218c2dfc5dad8af523c518e7
parentf46b16b9fb00d341f222422a9514f5bd62f29971 (diff)
downloademacs-0f01a58c390faf30c33b369fc81b2a14ec5b7f2e.tar.gz
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.
-rw-r--r--lisp/progmodes/python.el1
-rw-r--r--test/lisp/progmodes/python-tests.el18
2 files changed, 19 insertions, 0 deletions
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 ()