;;; my-text.el --- configures modes related to text -*- lexical-binding: t -*- ;;; Commentary: ;;; Code: ;; BUG: this is a work around for markdown-mode - without this, imenu ;; won't work in that mode, which is preventing efficient navigation. ;; The following link has more details: ;; https://github.com/jrblevin/markdown-mode/issues/578#issuecomment-1126380098 (require 'comp) (setq native-comp-deferred-compilation-deny-list '("markdown-mode\\.el$")) (require 'markdown-mode) (require 'ispell) (require 'abbrev) ;;; settings (setq ispell-program-name (executable-find "aspell")) (setq ispell-dictionary "en_US") (setq ispell-extra-args '("--camel-case")) (add-to-list 'auto-mode-alist '("\\.\\(md\\|markdown\\)$" . markdown-mode) auto-mode-alist) ;; use GitHub's markdown flavor for README files (add-to-list 'auto-mode-alist '("README\\.md\\'" . gfm-mode)) (when (executable-find "pandoc") (setq markdown-command "pandoc -f markdown -t html")) (setq only-global-abbrevs nil) (setq abbrev-file-name (expand-file-name "var/abbrev_defs" user-emacs-directory)) (let ((table text-mode-abbrev-table)) (define-abbrev table "github" "GitHub") (define-abbrev table "emacs" "Emacs")) ;;; bindings ;;; hooks (add-hook 'text-mode-hook 'flyspell-mode) (add-hook 'text-mode-hook 'goto-address-mode) (dolist (hook '(prog-mode-hook conf-mode-hook)) (add-hook hook 'flyspell-prog-mode)) (dolist (hook '(text-mode-hook git-commit-mode-hook)) (add-hook hook 'abbrev-mode)) (provide 'my-text) ;;; my-text.el ends here