
コメントと文字列のスペルチェックにjs2-mode
withを使用しています。flyspell-prog-mode
$("#something")
jQuery を使用する場合、または のようなセレクターを使用します$('something else')
。これらの文字列をスペルチェックしないように flyspell を設定できますか? 基本的に、$(
およびで囲まれたものはすべてスペルチェックされます。および の)
処理もクールですが、おそらく管理できます。jQuery(
)
似たような質問を見つけましたが、自分では適応できませんでした。flyspell-mode と flyspell-buffer で {{{ ... }}} を除外するにはどうすればよいですか?
ありがとう!
答え1
要するに、少なくとも 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))
関数をその関数flyspell-generic-check-word-p
に設定する関連行は次のようになります。flyspell-generic-progmode-verify
(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)))
最後に、flyspell-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.")
すぐにわかるように、flyspell はテキストのフォント フェイスを使用して、入力された内容を検証しています (これは、flyspell がこの問題を処理するためのおそらく最も効率的な方法です。つまり、コードを再解析する必要がないということです)。
オプションとしては、 のカスタム バージョンflyspell-generic-progmode-verify
を読み込むflyspell-generic-check-word-p
か、メジャー モードを変更してさまざまな文字列に異なるフェイスを生成するかのいずれかです。