|     67  |     67  | 
|     68 ;;;; Packages ;;;; |     68 ;;;; Packages ;;;; | 
|     69 (require 'package-require) |     69 (require 'package-require) | 
|     70 (package-require '(rg company exec-path-from-shell expand-region vertico |     70 (package-require '(rg company exec-path-from-shell expand-region vertico | 
|     71  orderless consult marginalia magit forge magit-todos markdown-mode hgignore-mode move-text paredit |     71  orderless consult marginalia magit forge magit-todos markdown-mode hgignore-mode move-text paredit | 
|     72  rainbow-delimiters json-mode json-reformat flycheck treesit-auto ibuffer-project |     72  rainbow-delimiters json-mode json-reformat flycheck treesit-auto ibuffer-project jinx | 
|     73  solarized-theme terraform-mode visual-regexp yasnippet yaml-mode |     73  solarized-theme terraform-mode visual-regexp yasnippet yaml-mode | 
|     74  emmet-mode)) |     74  emmet-mode)) | 
|     75  |     75  | 
|     76  |     76  | 
|     77 ;;; custom requires |     77 ;;; custom requires | 
|     78 (require 'c-init) |     78 (require 'c-init) | 
|     79 (require 'ansible-init) |     79 (require 'ansible-init) | 
|     80  |     80  | 
|     81  |     81  | 
|         |     82 ;;; jinx spellcheck setup | 
|         |     83 (with-eval-after-load 'jinx | 
|         |     84   (unless (executable-find "enchant-2") | 
|         |     85     (display-warning | 
|         |     86      'jinx | 
|         |     87      (concat "Enchant library not found. Jinx spell-checking requires enchant.\n\n" | 
|         |     88              "To install:\n" | 
|         |     89              (if (eq system-type 'darwin) | 
|         |     90                  "  macOS: brew install enchant\n" | 
|         |     91                "  Ubuntu/Debian: sudo apt install libenchant-2-dev\n") | 
|         |     92              "\nAfter installation, restart Emacs.") | 
|         |     93      :warning))) | 
|         |     94  | 
|         |     95  | 
|     82 ;;; text-mode |     96 ;;; text-mode | 
|     83 (add-hook 'fundamental-mode-hook 'flyspell-mode)      ; spellcheck text |     97 (add-hook 'fundamental-mode-hook 'jinx-mode)          ; spellcheck text | 
|     84 (add-hook 'fundamental-mode-hook 'turn-on-auto-fill)  ; autofill text |     98 (add-hook 'fundamental-mode-hook 'turn-on-auto-fill)  ; autofill text | 
|     85  |     99  | 
|     86  |    100  | 
|     87 ;;; whitespace-mode |    101 ;;; whitespace-mode | 
|     88 (global-whitespace-mode t)                            ; show whitespace |    102 (global-whitespace-mode t)                            ; show whitespace | 
|    192 (setq-default yas-prompt-functions '(yas-completing-read yas-dropdown-prompt)) ; use completing-read for multiple snippets |    206 (setq-default yas-prompt-functions '(yas-completing-read yas-dropdown-prompt)) ; use completing-read for multiple snippets | 
|    193 (yas-global-mode t) |    207 (yas-global-mode t) | 
|    194  |    208  | 
|    195  |    209  | 
|    196 ;;; markdown-mode |    210 ;;; markdown-mode | 
|    197 (add-hook 'markdown-mode-hook 'flyspell-mode) |    211 (add-hook 'markdown-mode-hook 'jinx-mode) | 
|    198 (setq-default markdown-command "pandoc -f gfm") |    212 (setq-default markdown-command "pandoc -f gfm") | 
|    199  |    213  | 
|    200  |    214  | 
|    201 ;;; treesit-auto (automatically use tree-sitter modes and install grammars) |    215 ;;; treesit-auto (automatically use tree-sitter modes and install grammars) | 
|    202 (with-eval-after-load 'treesit-auto |    216 (with-eval-after-load 'treesit-auto |