aboutsummaryrefslogtreecommitdiff
path: root/Doom/.config/doom/modules/private/completion/config.el
blob: 633ac9682639e9c50ff309f05e72bb34e6ac0666 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
;;; private/completion/config.el -*- lexical-binding: t; -*-

(use-package! ido
  :hook (doom-first-input . ido-mode)
  :hook (ido-mode . recentf-mode)
  :hook (ido-mode . ido-everywhere)
  :hook (ido-mode . ido-ubiquitous-mode)

  :preface
  (defadvice! +ido-run-hooks-a (&rest _)
    :after #'ido-mode
    (run-hooks 'ido-mode-hook))

  :init
  (setq ido-save-directory-list-file nil)
  (setq ido-save-directory-list-file nil)
  (setq ido-ignore-buffers '("\\` " "^\\*ESS\\*" "^\\*[Hh]elp" "^\\*.*Completions\\*$" "^\\*tramp" "^\\*cvs-" "^*Ido"))
  (setq ido-separator "\n")

  :config
  (defun +completion/recentf()
    (interactive)
    (find-file (completing-read "Recentf: " recentf-list)))

  (define-key!
    [remap recentf-open-files] #'+completion/recentf
    [remap completing-read]    #'ido-completing-read)

  (map!
   :map (ido-common-completion-map ido-file-completion-map ido-buffer-completion-map)
   "C-k" #'ido-prev-match
   "C-j" #'ido-next-match
   "TAB" #'ido-exit-minibuffer
   :map ido-file-completion-map
   "~" (cmd! (if (looking-back "/" (point-min))
                 (insert "~/")
               (call-interactively #'self-insert-command)))))


(use-package! ido-sort-mtime
  :hook (ido-mode . ido-sort-mtime-mode))


(use-package! crm-custom
  :hook (ido-mode . crm-custom-mode))


(use-package! flx-ido
  :hook (ido-mode . flx-ido-mode))