(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
: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)
(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
(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)