]> git.eshelyaron.com Git - emacs.git/commitdiff
(python-quote-syntax): Don't bother with syntax-ppss-context.
authorStefan Monnier <monnier@iro.umontreal.ca>
Thu, 1 Mar 2007 15:07:45 +0000 (15:07 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Thu, 1 Mar 2007 15:07:45 +0000 (15:07 +0000)
(python-fill-paragraph): Make sure that fenced-string delimiters that
stand on their own line stay there

lisp/ChangeLog
lisp/progmodes/python.el

index 6e4800031e617f35bb6592773de14dcbb8b2cce1..9526dbfb9fe773f3cfa6d80277bc40888cbf7669 100644 (file)
@@ -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.
index f94a3d63653546b2db547b4f88ad30a2509fff42..38e846aa2cc016b4dc96de5db3e083ed64490a26 100644 (file)
@@ -163,7 +163,7 @@ Used for syntactic keywords.  N is the match number (1, 2 or 3)."
               (= (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 @@ Otherwise, do nothing."
               (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 @@ Otherwise, do nothing."
                 (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.