1

Я использую js2-mode с flyspell-prog-mode для проверки комментариев и строк.

При использовании jQuery вы используете селекторы, такие как $("#something") или $('something else') . Могу ли я настроить flyspell, чтобы не проверять орфографию этих строк? По сути, все, что заключено в $( и ) . Работать с jQuery( и ) тоже было бы здорово, но я, вероятно, справлюсь с этим.

Я нашел этот вопрос, который похож, но я не смог адаптировать его сам. Как исключить {{{...}}} в режиме flyspell и буфере flyspell?

Спасибо!

1 ответ1

0

Суть в том, что вы действительно не можете, по крайней мере, без серьезного взлома flyspell и / или вашего основного режима.

Из источника 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 или изменить основной режим так, чтобы он создавал разные грани для различных строк.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .