summaryrefslogtreecommitdiffstats
path: root/lisp/bandali-ivy.el
blob: 763168bc697f206d947ee4bd8350dc699b727189 (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
(use-package ivy
  :defer 0.3
  :bind
  (:map ivy-minibuffer-map
   ([escape] . keyboard-escape-quit)
   ([S-up]   . ivy-previous-history-element)
   ([S-down] . ivy-next-history-element)
   ("DEL"    . ivy-backward-delete-char))
  :config
  (setq ivy-wrap t
        ;; ivy-height 14
        ivy-use-virtual-buffers t
        ivy-virtual-abbreviate 'abbreviate
        ivy-count-format "%d/%d ")

  (defvar b/ivy-ignore-buffer-modes '(magit-mode erc-mode dired-mode))
  (defun b/ivy-ignore-buffer-p (str)
    "Return non-nil if str names a buffer with a major mode
derived from one of `b/ivy-ignore-buffer-modes'.

This function is intended for use with `ivy-ignore-buffers'."
    (let* ((buf (get-buffer str))
           (mode (and buf (buffer-local-value 'major-mode buf))))
      (and mode
           (apply #'provided-mode-derived-p mode b/ivy-ignore-buffer-modes))))
  (add-to-list 'ivy-ignore-buffers 'b/ivy-ignore-buffer-p)

  (ivy-mode 1)
  :custom-face
  (ivy-minibuffer-match-face-1 ((t (:background "#eeeeee"))))
  (ivy-minibuffer-match-face-2 ((t (:background "#e7e7e7" :weight bold))))
  (ivy-minibuffer-match-face-3 ((t (:background "light goldenrod" :weight semi-bold))))
  (ivy-minibuffer-match-face-4 ((t (:background "misty rose" :weight semi-bold))))
  (ivy-current-match ((((class color) (background light))
                       :background "#d7d7d7" :foreground "black")
                      (((class color) (background dark))
                       :background "#65a7e2" :foreground "black"))))

(use-package swiper
  :demand
  :after ivy
  :bind (("C-S-s" . swiper-isearch)))

(use-package counsel
  :demand
  :after ivy
  :bind (("C-c f r" . counsel-recentf)
         :map minibuffer-local-map
         ("C-r" . counsel-minibuffer-history))
  :config
  (counsel-mode 1)
  (defalias 'locate #'counsel-locate))

(provide 'bandali-ivy)