mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-30 04:10:54 -08:00
Further improve electric quote support for Markdown (Bug#24709)
Markdown sets both 'comment-start' and 'comment-use-syntax' to non-nil values. Therefore 'electric-quote-mode' recognized it as a programming mode. Fix this by first checking whether the current major mode is derived from 'text-mode'. * lisp/electric.el (electric-quote-post-self-insert-function): Treat 'text-mode' as stronger signal than comment syntax. * test/lisp/electric-tests.el (electric-quote-markdown-in-text) (electric-quote-markdown-in-code): Adapt unit tests.
This commit is contained in:
parent
633db417fc
commit
bb2ea81bc5
2 changed files with 18 additions and 14 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue