From 53fa01d0608d82fc6edffe59ade5d081d7138c8e Mon Sep 17 00:00:00 2001 From: knu Date: Fri, 17 May 2013 10:27:32 +0000 Subject: * misc/ruby-electric.el (ruby-electric-matching-char): Do not put a closing quote when the quote typed does not start a string, as in $', ?\' or ?\". git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40797 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- misc/ruby-electric.el | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) (limited to 'misc/ruby-electric.el') diff --git a/misc/ruby-electric.el b/misc/ruby-electric.el index 1e43de4b5f..25b9e5dbfa 100644 --- a/misc/ruby-electric.el +++ b/misc/ruby-electric.el @@ -252,16 +252,19 @@ strings. Note that you must have Font Lock enabled." (interactive "P") (ruby-electric-insert arg - (cond - ((and - (eq last-command 'ruby-electric-matching-char) - (char-equal last-command-event (following-char))) ;; repeated ' or " - (setq this-command 'self-insert-command) - (delete-forward-char 1)) - (t - (and (ruby-electric-code-at-point-p) - (save-excursion (insert (cdr (assoc last-command-event - ruby-electric-matching-delimeter-alist))))))))) + (let ((closing (cdr (assoc last-command-event + ruby-electric-matching-delimeter-alist)))) + (cond + ((char-equal closing last-command-event) + (if (and (not (ruby-electric-string-at-point-p)) + (progn (redisplay) (ruby-electric-string-at-point-p))) + (save-excursion (insert closing)) + (and (eq last-command 'ruby-electric-matching-char) + (char-equal (following-char) closing) ;; repeated ' or " + (delete-forward-char 1)) + (setq this-command 'self-insert-command))) + ((ruby-electric-code-at-point-p) + (save-excursion (insert closing))))))) (defun ruby-electric-closing-char(arg) (interactive "P") -- cgit v1.2.3