changeset 76255:985cc73beb79

(python-quote-syntax): Don't bother with syntax-ppss-context. (python-fill-paragraph): Make sure that fenced-string delimiters that stand on their own line stay there
author Stefan Monnier <monnier@iro.umontreal.ca>
date Thu, 01 Mar 2007 15:07:45 +0000
parents 5ae1368180c3
children 302957d9c686
files lisp/ChangeLog lisp/progmodes/python.el
diffstat 2 files changed, 20 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Thu Mar 01 13:58:24 2007 +0000
+++ b/lisp/ChangeLog	Thu Mar 01 15:07:45 2007 +0000
@@ -1,3 +1,10 @@
+2007-03-01  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* progmodes/python.el (python-quote-syntax): Don't bother with
+	syntax-ppss-context.
+	(python-fill-paragraph): Make sure that fenced-string delimiters that
+	stand on their own line stay there
+
 2007-03-01  Lennart Borgman  <lennart.borgman.073@student.lu.se>
 
 	* replace.el (perform-replace): Propertize message.
--- a/lisp/progmodes/python.el	Thu Mar 01 13:58:24 2007 +0000
+++ b/lisp/progmodes/python.el	Thu Mar 01 15:07:45 2007 +0000
@@ -163,7 +163,7 @@
 	       (= (match-beginning 1) (match-end 1))) ; prefix is null
 	  (and (= n 1)			; prefix
 	       (/= (match-beginning 1) (match-end 1)))) ; non-empty
-      (unless (eq 'string (syntax-ppss-context (syntax-ppss)))
+      (unless (nth 3 (syntax-ppss))
         (eval-when-compile (string-to-syntax "|"))))
      ;; Otherwise (we're in a non-matching string) the property is
      ;; nil, which is OK.
@@ -1743,12 +1743,11 @@
 	       (orig (point))
 	       (start (nth 8 syntax))
 	       end)
-	  (cond ((eq t (nth 3 syntax))	    ; in fenced string
-		 (goto-char (nth 8 syntax)) ; string start
-		 (condition-case ()	    ; for unbalanced quotes
-		     (progn (forward-sexp)
-			    (setq end (point)))
-		   (error (setq end (point-max)))))
+	  (cond ((eq t (nth 3 syntax))	      ; in fenced string
+		 (goto-char (nth 8 syntax))   ; string start
+		 (setq end (condition-case () ; for unbalanced quotes
+                               (progn (forward-sexp) (point))
+                             (error (point-max)))))
 		((re-search-backward "\\s|\\s-*\\=" nil t) ; end of fenced
 							   ; string
 		 (forward-char)
@@ -1756,13 +1755,17 @@
 		 (condition-case ()
 		     (progn (backward-sexp)
 			    (setq start (point)))
-		   (error nil))))
+		   (error (setq end nil)))))
 	  (when end
 	    (save-restriction
 	      (narrow-to-region start end)
 	      (goto-char orig)
-	      (fill-paragraph justify))))))
-      t)
+              (let ((paragraph-separate
+                     ;; Make sure that fenced-string delimiters that stand
+                     ;; on their own line stay there.
+                     (concat "[ \t]*['\"]+[ \t]*$\\|" paragraph-separate)))
+                (fill-paragraph justify))))))
+      t))
 
 (defun python-shift-left (start end &optional count)
   "Shift lines in region COUNT (the prefix arg) columns to the left.