]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix python docstring auto-fill (Bug#36056)
authorNoam Postavsky <npostavs@gmail.com>
Fri, 21 Jun 2019 11:49:22 +0000 (07:49 -0400)
committerNoam Postavsky <npostavs@gmail.com>
Sat, 22 Jun 2019 23:25:44 +0000 (19:25 -0400)
* 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
test/lisp/progmodes/python-tests.el

index 188bc973d99d5324205558978eb1e4ed14fa565b..e1f9a33a691359de2f335bd8fb7f9ea4c333f138 100644 (file)
@@ -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)
index a51790971725d1a55d22d7257e9702e914ee48b5..87cee189eacaf356324eaf7a8b55b16b4e96bd6f 100644 (file)
@@ -1340,6 +1340,24 @@ this is an arbitrarily
      (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