diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2007-03-01 15:07:45 +0000 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2007-03-01 15:07:45 +0000 |
commit | fc553234b5d93ae3ab0235b00a3d9fbcc5e74f4c (patch) | |
tree | 91df253db3fcca09529a0e960bb89399e393a1ed | |
parent | 404a2a4b527cf3c87783173b13b47a1787dcd6f2 (diff) | |
download | emacs-fc553234b5d93ae3ab0235b00a3d9fbcc5e74f4c.tar.gz |
(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
-rw-r--r-- | lisp/ChangeLog | 7 | ||||
-rw-r--r-- | lisp/progmodes/python.el | 23 |
2 files changed, 20 insertions, 10 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 6e4800031e6..9526dbfb9fe 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -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. diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index f94a3d63653..38e846aa2cc 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -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. |