
Ich verwende js2-mode
„with“ flyspell-prog-mode
zur Rechtschreibprüfung von Kommentaren und Zeichenfolgen.
Bei der Verwendung von jQuery verwenden Sie Selektoren wie $("#something")
oder $('something else')
. Kann ich Flyspell so konfigurieren, dass bei diesen Zeichenfolgen keine Rechtschreibprüfung durchgeführt wird? Grundsätzlich alles, was in $(
und eingeschlossen ist )
. Die Handhabung von jQuery(
und )
wäre auch cool, aber das bekomme ich wahrscheinlich hin.
Ich habe diese ähnliche Frage gefunden, konnte sie aber nicht selbst anpassen.Wie schließe ich {{{ ... }}} im Flyspell-Modus und im Flyspell-Puffer aus?
Danke!
Antwort1
Kurz gesagt: Das ist wirklich nicht möglich, zumindest nicht ohne ernsthaftes Hacken von Flyspell und/oder Ihrem Hauptmodus.
Aus der Flyspell-Quelle
;;;###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))
Die relevante Zeile, in der wir die flyspell-generic-check-word-p
Funktion auf flyspell-generic-progmode-verify
diese Funktion setzen, sieht folgendermaßen aus:
(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)))
Schließlich müssen wir uns ansehenflyspell-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.")
Wie man nun leicht erkennen kann, verwendet Flyspell die Schriftart des Textes, um zu überprüfen, wie er eingegeben wurde (das ist für Flyspell wahrscheinlich die effizienteste Art, mit diesem Problem umzugehen. Es bedeutet, dass Ihr Code nicht erneut analysiert werden muss).
Sie haben die Wahl, entweder eine benutzerdefinierte Version von flyspell-generic-progmode-verify
zu laden flyspell-generic-check-word-p
oder den Hauptmodus so zu ändern, dass für Ihre verschiedenen Zeichenfolgen unterschiedliche Gesichter erstellt werden.