diff options
Diffstat (limited to 'init.el')
-rw-r--r-- | init.el | 91 |
1 files changed, 90 insertions, 1 deletions
diff --git a/init.el b/init.el index 5ce5cdb..da4b537 100644 --- a/init.el +++ b/init.el | |||
@@ -135,6 +135,26 @@ | |||
135 | :config | 135 | :config |
136 | (fringe-mode '(nil . 0))) | 136 | (fringe-mode '(nil . 0))) |
137 | 137 | ||
138 | (use-package flyspell | ||
139 | :hook org-mode-hook) | ||
140 | |||
141 | (use-package browse-url | ||
142 | :preface | ||
143 | (defcustom +browse-url-other-safe-browser-functions nil | ||
144 | "Other safe browser functions." | ||
145 | :type '(repeat function)) | ||
146 | (defun +browse-url-browser-function-safe-p (f) | ||
147 | "Return t if F is a safe browser function." | ||
148 | (memq f (append +browse-url-other-safe-browser-functions | ||
149 | (mapcar (lambda (i) | ||
150 | (plist-get (cdr i) :value)) | ||
151 | (seq-filter (lambda (i) | ||
152 | (eq (car i) 'function-item)) | ||
153 | (cdr (get 'browse-url-browser-function | ||
154 | 'custom-type))))))) | ||
155 | :config | ||
156 | (put 'browse-url-browser-function 'safe-local-variable | ||
157 | '+browse-url-browser-function-safe-p)) | ||
138 | 158 | ||
139 | (use-package dired | 159 | (use-package dired |
140 | :bind (("C-x C-j" . dired-jump) | 160 | :bind (("C-x C-j" . dired-jump) |
@@ -192,7 +212,30 @@ | |||
192 | 212 | ||
193 | (use-package titlecase | 213 | (use-package titlecase |
194 | :load-path "~/src/emacs/titlecase.el/" | 214 | :load-path "~/src/emacs/titlecase.el/" |
195 | :after scule | 215 | :preface |
216 | (defun +titlecase-sentence-style-dwim (&optional arg) | ||
217 | "Titlecase a sentence. | ||
218 | With prefix ARG, toggle the value of | ||
219 | `titlecase-downcase-sentences' before sentence-casing." | ||
220 | (interactive "P") | ||
221 | (let ((titlecase-downcase-sentences (if arg (not titlecase-downcase-sentences) | ||
222 | titlecase-downcase-sentences))) | ||
223 | (titlecase-dwim 'sentence))) | ||
224 | (defun +titlecase-org-headings () | ||
225 | (interactive) | ||
226 | (require 'org) | ||
227 | (save-excursion | ||
228 | (goto-char (point-min)) | ||
229 | ;; See also `org-map-tree'. I'm not using that function because I want to | ||
230 | ;; skip the first headline. A better solution would be to patch | ||
231 | ;; `titlecase-line' to ignore org-mode metadata (TODO cookies, tags, etc). | ||
232 | (let ((level (funcall outline-level)) | ||
233 | (org-special-ctrl-a/e t)) | ||
234 | (while (and (progn (outline-next-heading) | ||
235 | (> (funcall outline-level) level)) | ||
236 | (not (eobp))) | ||
237 | (titlecase-region (progn (org-beginning-of-line) (point)) | ||
238 | (progn (org-end-of-line) (point))))))) | ||
196 | :bind (:map scule-map | 239 | :bind (:map scule-map |
197 | ("M-t" . titlecase-dwim))) | 240 | ("M-t" . titlecase-dwim))) |
198 | 241 | ||
@@ -583,3 +626,49 @@ | |||
583 | (setopt wiki-abbrev-file (etc/ "wiki-abbrevs")) | 626 | (setopt wiki-abbrev-file (etc/ "wiki-abbrevs")) |
584 | (wiki-abbrev-insinuate)) | 627 | (wiki-abbrev-insinuate)) |
585 | 628 | ||
629 | (use-package flyspell-correct | ||
630 | :ensure t | ||
631 | :preface | ||
632 | (defun +flyspell-correct-buffer (&optional prefix) | ||
633 | "Run `flyspell-correct-wrapper' on all misspelled words in the buffer. | ||
634 | With PREFIX, prompt to change the current dictionary." | ||
635 | (interactive "P") | ||
636 | (flyspell-buffer) | ||
637 | (when prefix | ||
638 | (let ((current-prefix-arg nil)) | ||
639 | (call-interactively #'ispell-change-dictionary))) | ||
640 | (flyspell-correct-move (point-min) :forward :rapid)) | ||
641 | :after flyspell | ||
642 | :bind (:map flyspell-mode-map | ||
643 | ("C-;" . flyspell-correct-wrapper) | ||
644 | ("<f7>" . +flyspell-correct-buffer)) | ||
645 | :config | ||
646 | (setq flyspell-correct--cr-key ";") | ||
647 | (keymap-unset flyspell-mode-map "C-," t) | ||
648 | (keymap-unset flyspell-mode-map "C-." t)) | ||
649 | |||
650 | (use-package dired-subtree | ||
651 | :ensure t | ||
652 | :after dired | ||
653 | :bind (:map dired-mode-map | ||
654 | (("TAB" . dired-subtree-cycle) | ||
655 | ("i" . dired-subtree-toggle)))) | ||
656 | |||
657 | (use-package dired-hide-dotfiles | ||
658 | ;; I could maybe use a more general package for this ... see | ||
659 | ;; https://emacs.grym.io/#orgbbda609 | ||
660 | :ensure t | ||
661 | :bind (:map dired-mode-map | ||
662 | ("." . dired-hide-dotfiles-mode))) | ||
663 | |||
664 | |||
665 | ;;; Applications | ||
666 | |||
667 | (use-package acdw-mail | ||
668 | :load-path "lisp/") | ||
669 | |||
670 | (use-package acdw-org | ||
671 | :load-path "lisp/") | ||
672 | |||
673 | (use-package _work | ||
674 | :load-path "~/Sync/emacs/private/") | ||