summaryrefslogtreecommitdiffstats
path: root/lisp/init-ido.el
blob: a47fbcece4a8c51f6d53a89db8f2973a632fa48a (plain) (blame)
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
50
51
52
53
54
55
56
57
58
59
60
61
62
;; ido
(use-package ido
  :ensure nil ;; package is bundled with emacs

  :init
  (setq ido-enable-prefix nil
        ido-enable-flex-matching t
        ido-case-fold nil
        ido-auto-merge-work-directories-length -1
        ido-create-new-buffer 'always
        ido-use-filename-at-point nil
        ido-max-prospects 10
        ido-save-directory-list-file (expand-file-name
                                      ".ido.last" user-emacs-directory))

  :config
  (ido-mode 1))

;; flx-ido
(use-package flx-ido
  :after ido
  :init
  ;; disable ido faces to see flx highlights.
  (setq ido-use-faces nil
        flx-ido-threshold 1000)

  :config
  (flx-ido-mode 1))

;; ido-grid-mode
(use-package ido-grid-mode
  :after ido
  :config
  (ido-grid-mode 1))

;; ido-completing-read+
(use-package ido-completing-read+
  :after ido
  :init
  ;; automatically update blacklist when package is updated
  (setq ido-cr+-auto-update-blacklist t)

  :config
  (ido-ubiquitous-mode 1))

;; smex
(use-package smex
  :after ido
  :init
  ;; do not update cache automatically on every invocation
  (setq smex-auto-update nil)

  ;; save smex state inside emacs.d
  (setq smex-save-file (expand-file-name ".smex-items" user-emacs-directory))

  :bind ("M-x" . smex)

  :config
  ;; update cache when emacs has been idle for 60 seconds
  (smex-auto-update))

(provide 'init-ido)