diff --git a/modules/config/default/+evil-bindings.el b/modules/config/default/+evil-bindings.el index 35b3f8afe..1021d8644 100644 --- a/modules/config/default/+evil-bindings.el +++ b/modules/config/default/+evil-bindings.el @@ -55,6 +55,12 @@ (fboundp 'evilmi-jump-items) 'evilmi-jump-items) + ;; Smarter RET in normal mode + :n "RET" (general-predicate-dispatch nil + (and (bound-and-true-p flyspell-mode) + (+flyspell-correction-at-point-p)) + 'flyspell-correct-word-generic) + ;; Smarter newlines :i [remap newline] #'newline-and-indent ; auto-indent on newline :i "C-j" #'+default/newline ; default behavior diff --git a/modules/tools/flyspell/autoload.el b/modules/tools/flyspell/autoload.el index 5b214bee4..139b98061 100644 --- a/modules/tools/flyspell/autoload.el +++ b/modules/tools/flyspell/autoload.el @@ -14,3 +14,10 @@ "TODO" (when-let* ((pred (assq major-mode +flyspell--predicate-alist))) (setq-local flyspell-generic-check-word-predicate (cdr pred)))) + +;;;###autoload +(defun +flyspell-correction-at-point-p (&optional point) + "TODO" + (cl-loop for ov in (overlays-at (or point (point))) + if (overlay-get ov 'flyspell-overlay) + return t))