emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master cbb8a8a 1/2: Fix fill-paragraph in python docstring


From: Noam Postavsky
Subject: [Emacs-diffs] master cbb8a8a 1/2: Fix fill-paragraph in python docstrings (Bug#36056)
Date: Thu, 12 Sep 2019 21:47:55 -0400 (EDT)

branch: master
commit cbb8a8ad979ed7975bfc7e9fa6aeeb4d9d6b7084
Author: Noam Postavsky <address@hidden>
Commit: Noam Postavsky <address@hidden>

    Fix fill-paragraph in python docstrings (Bug#36056)
    
    * lisp/progmodes/python.el (python-do-auto-fill): New function.
    (python-mode): Set it as normal-auto-fill-function, and don't set
    fill-indent-according-to-mode.  Having the latter set during
    fill-paragraph gives wrongs result, because python-indent-line doesn't
    remove indentation added by filling.
    * test/lisp/progmodes/python-tests.el (python-fill-docstring): New
    test.
---
 lisp/progmodes/python.el            |  8 +++++++-
 test/lisp/progmodes/python-tests.el | 13 ++++++++++++-
 2 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index 14b6566..ec5d8c5 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -4084,6 +4084,12 @@ JUSTIFY should be used (if applicable) as in 
`fill-paragraph'."
       (goto-char (line-end-position))))
   t)
 
+(defun python-do-auto-fill ()
+  "Like `do-auto-fill', but bind `fill-indent-according-to-mode'."
+  ;; See Bug#36056.
+  (let ((fill-indent-according-to-mode t))
+    (do-auto-fill)))
+
 
 ;;; Skeletons
 
@@ -5379,7 +5385,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 'normal-auto-fill-function) #'python-do-auto-fill)
 
   (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 b1cf7e8..c5ad1df 100644
--- a/test/lisp/progmodes/python-tests.el
+++ b/test/lisp/progmodes/python-tests.el
@@ -1351,7 +1351,7 @@ this is an arbitrarily
                       expected)))))
 
 
-;;; Autofill
+;;; Filling
 
 (ert-deftest python-auto-fill-docstring ()
   (python-tests-with-temp-buffer
@@ -1368,6 +1368,17 @@ def some_function(arg1,
      (forward-line 1)
      (should (= docindent (current-indentation))))))
 
+(ert-deftest python-fill-docstring ()
+  (python-tests-with-temp-buffer
+   "\
+r'''aaa
+
+this is a test this is a test this is a test this is a test this is a test 
this is a test.
+'''"
+   (search-forward "test.")
+   (fill-paragraph)
+   (should (= (current-indentation) 0))))
+
 
 ;;; Mark
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]