Fix excluded faces being spell-fu checked anyway
Due to spell-fu--faces-at-point conducting face detection that doesn't penetrate overlays. This should be PRed/reported upstream at some point.
This commit is contained in:
parent
d4eb7e31ac
commit
699e18b7f1
1 changed files with 15 additions and 0 deletions
|
@ -135,7 +135,22 @@
|
||||||
(cmds! (memq 'spell-fu-incorrect-face (face-at-point nil t))
|
(cmds! (memq 'spell-fu-incorrect-face (face-at-point nil t))
|
||||||
#'+spell/correct))
|
#'+spell/correct))
|
||||||
|
|
||||||
|
;; TODO PR this fix upstream!
|
||||||
|
(defadvice! +spell--fix-face-detection-a (orig-fn &rest args)
|
||||||
|
"`spell-fu--faces-at-point' uses face detection that won't penetrary
|
||||||
|
overlays (like `hl-line'). This makes `spell-fu-faces-exclude' demonstrably less
|
||||||
|
useful when it'll still spellcheck excluded faces on any line that `hl-line' is
|
||||||
|
displayed on, even momentarily."
|
||||||
|
:around #'spell-fu--faces-at-point
|
||||||
|
(letf! (defun get-char-property (pos prop &optional obj)
|
||||||
|
(or (plist-get (text-properties-at pos) prop)
|
||||||
|
(funcall get-char-property pos prop obj)))
|
||||||
|
(apply orig-fn args)))
|
||||||
|
|
||||||
(defadvice! +spell--create-word-dict-a (_word words-file _action)
|
(defadvice! +spell--create-word-dict-a (_word words-file _action)
|
||||||
|
"Prevent `spell-fu--word-add-or-remove' from throwing non-existant
|
||||||
|
directory errors when writing a personal dictionary file (by creating the
|
||||||
|
directory first)."
|
||||||
:before #'spell-fu--word-add-or-remove
|
:before #'spell-fu--word-add-or-remove
|
||||||
(unless (file-exists-p words-file)
|
(unless (file-exists-p words-file)
|
||||||
(make-directory (file-name-directory words-file) t)
|
(make-directory (file-name-directory words-file) t)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue