;;; packages.el --- Spell Checking Layer packages File for Spacemacs ;; ;; Copyright (c) 2012-2016 Sylvain Benner & Contributors ;; ;; Author: Sylvain Benner ;; URL: https://github.com/syl20bnr/spacemacs ;; ;; This file is not part of GNU Emacs. ;; ;;; License: GPLv3 (setq spell-checking-packages '( auto-dictionary flyspell flyspell-correct )) (defun spell-checking/init-auto-dictionary () (use-package auto-dictionary :defer t :if spell-checking-enable-auto-dictionary :init (progn (add-hook 'flyspell-mode-hook 'auto-dictionary-mode) ;; Select the buffer local dictionary if it was set, otherwise ;; auto-dictionary will replace it with a guessed one at each activation. ;; https://github.com/nschum/auto-dictionary-mode/issues/5 (defun spacemacs//adict-set-local-dictionary () "Set the local dictionary if not nil." (when (and (fboundp 'adict-change-dictionary) ispell-local-dictionary) (adict-change-dictionary ispell-local-dictionary))) (add-hook 'auto-dictionary-mode-hook 'spacemacs//adict-set-local-dictionary 'append)))) (defun spell-checking/init-flyspell () (use-package flyspell :defer t :commands (spell-checking/change-dictionary) :init (progn (spell-checking/add-flyspell-hook 'text-mode-hook) (when spell-checking-enable-by-default (add-hook 'prog-mode-hook 'flyspell-prog-mode)) (spacemacs|add-toggle spelling-checking :status flyspell-mode :on (if (derived-mode-p 'prog-mode) (flyspell-prog-mode) (flyspell-mode)) :off (progn (flyspell-mode-off) ;; Also disable auto-dictionary when disabling spell-checking. (when (fboundp 'auto-dictionary-mode) (auto-dictionary-mode -1))) :documentation "Enable automatic spell checking." :evil-leader "tS") (spacemacs/declare-prefix "S" "spelling") (spacemacs/set-leader-keys "Sb" 'flyspell-buffer "Sd" 'spell-checking/change-dictionary "Sn" 'flyspell-goto-next-error)) :config (spacemacs|diminish flyspell-mode " Ⓢ" " S"))) (defun spell-checking/init-flyspell-correct () (use-package flyspell-correct :commands (flyspell-correct-word-generic) :init (when (configuration-layer/package-usedp 'ivy) (setq flyspell-correct-interface 'flyspell-correct-ivy)) (when (configuration-layer/package-usedp 'helm) (setq flyspell-correct-interface 'flyspell-correct-helm)) (when (bound-and-true-p flyspell-correct-interface) (spacemacs/set-leader-keys "Sc" 'flyspell-correct-word-generic))))