
Estou usando js2-mode
with flyspell-prog-mode
para verificar a ortografia de comentários e strings.
Ao usar jQuery, você usa seletores como $("#something")
ou $('something else')
. Posso configurar o flyspell para não verificar a ortografia dessas strings? Basicamente, qualquer coisa embrulhada em $(
e )
. O manuseio jQuery(
também )
seria legal, mas provavelmente consigo fazer isso.
Encontrei esta pergunta, que é semelhante, mas não consegui adaptá-la sozinho.Como excluir {{{ ... }}} no modo flyspell e no buffer flyspell?
Obrigado!
Responder1
Resumindo, você realmente não pode, pelo menos não sem alguns hacks sérios do flyspell e/ou do seu modo principal.
Da fonte do flyspell
;;;###autoload
(defun flyspell-prog-mode ()
"Turn on `flyspell-mode' for comments and strings."
(interactive)
(setq flyspell-generic-check-word-p 'flyspell-generic-progmode-verify)
(flyspell-mode 1)
(run-hooks 'flyspell-prog-mode-hook))
A linha relevante onde definimos a flyspell-generic-check-word-p
função para flyspell-generic-progmode-verify
essa função se parece com esta
(defun flyspell-generic-progmode-verify ()
"Used for `flyspell-generic-check-word-p' in programming modes."
(let ((f (get-text-property (point) 'face)))
(memq f flyspell-prog-text-faces)))
Finalmente precisamos olharflyspell-prog-text-faces
(defvar flyspell-prog-text-faces
'(font-lock-string-face font-lock-comment-face font-lock-doc-face)
"Faces corresponding to text in programming-mode buffers.")
Então, como agora pode ser visto facilmente, o flyspell está usando a fonte do texto para verificar como ele foi digitado (esta é provavelmente a maneira mais eficiente para o flyspell lidar com esse problema. Isso significa que ele não precisa re -analisar seu código).
Suas opções são uma versão personalizada para flyspell-generic-progmode-verify
carregar flyspell-generic-check-word-p
ou modificar o modo principal de forma que produza faces diferentes para suas várias strings.