summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/electric.el28
-rw-r--r--test/lisp/electric-tests.el4
2 files changed, 18 insertions, 14 deletions
diff --git a/lisp/electric.el b/lisp/electric.el
index 96c805bb5fb..a71e79ff78a 100644
--- a/lisp/electric.el
+++ b/lisp/electric.el
@@ -469,20 +469,20 @@ This requotes when a quoting key is typed."
(and (not electric-quote-context-sensitive)
(eq last-command-event ?\`)))
(not (run-hook-with-args-until-success
- 'electric-quote-inhibit-functions)))
- (if (and comment-start comment-use-syntax)
- (when (or electric-quote-comment electric-quote-string)
- (let* ((syntax (syntax-ppss))
- (beg (nth 8 syntax)))
- (and beg
- (or (and electric-quote-comment (nth 4 syntax))
- (and electric-quote-string (nth 3 syntax)))
- ;; Do not requote a quote that starts or ends
- ;; a comment or string.
- (eq beg (nth 8 (save-excursion
- (syntax-ppss (1- (point)))))))))
- (and electric-quote-paragraph
- (derived-mode-p 'text-mode))))
+ 'electric-quote-inhibit-functions))
+ (if (derived-mode-p 'text-mode)
+ electric-quote-paragraph
+ (and comment-start comment-use-syntax
+ (or electric-quote-comment electric-quote-string)
+ (let* ((syntax (syntax-ppss))
+ (beg (nth 8 syntax)))
+ (and beg
+ (or (and electric-quote-comment (nth 4 syntax))
+ (and electric-quote-string (nth 3 syntax)))
+ ;; Do not requote a quote that starts or ends
+ ;; a comment or string.
+ (eq beg (nth 8 (save-excursion
+ (syntax-ppss (1- (point)))))))))))
(pcase electric-quote-chars
(`(,q< ,q> ,q<< ,q>>)
(save-excursion
diff --git a/test/lisp/electric-tests.el b/test/lisp/electric-tests.el
index c4ccec7a0d8..c6ffccc0794 100644
--- a/test/lisp/electric-tests.el
+++ b/test/lisp/electric-tests.el
@@ -694,6 +694,8 @@ baz\"\""
:bindings '((electric-quote-context-sensitive . t))
:test-in-comments nil :test-in-strings nil)
+;; Simulate ‘markdown-mode’: it sets both ‘comment-start’ and
+;; ‘comment-use-syntax’, but derives from ‘text-mode’.
(define-electric-pair-test electric-quote-markdown-in-text
"" "'" :expected-string "’" :expected-point 2
:modes '(text-mode)
@@ -703,6 +705,7 @@ baz\"\""
(lambda ()
(save-excursion (search-backward "`" nil t)))
nil :local))
+ :bindings '((comment-start . "<!--") (comment-use-syntax . t))
:test-in-comments nil :test-in-strings nil)
(define-electric-pair-test electric-quote-markdown-in-code
@@ -714,6 +717,7 @@ baz\"\""
(lambda ()
(save-excursion (search-backward "`" nil t)))
nil :local))
+ :bindings '((comment-start . "<!--") (comment-use-syntax . t))
:test-in-comments nil :test-in-strings nil)
(provide 'electric-tests)