emacs: update packages, move from ivy and company to ido
[~bandali/configs] / .emacs.d / init.el
index 7a9c143..8742769 100644 (file)
@@ -548,7 +548,7 @@ For disabling the behaviour for certain buffers and/or modes."
  ("<mouse-9>"      . next-buffer)
  ("<drag-mouse-9>" . next-buffer)
  ("<drag-mouse-2>" . kill-this-buffer)
- ("<drag-mouse-3>" . ivy-switch-buffer))
+ ("<drag-mouse-3>" . switch-to-buffer))
 
 (bind-keys
  :prefix-map b/straight-prefix-map
@@ -914,6 +914,7 @@ around if needed."
   :custom
   (magit-diff-refine-hunk t)
   (magit-display-buffer-function #'magit-display-buffer-fullframe-status-v1)
+  (magit-completing-read-function 'magit-ido-completing-read)
   :custom-face (magit-diff-file-heading ((t (:weight normal)))))
 
 ;; recently opened files
@@ -921,13 +922,73 @@ around if needed."
   :defer 0.2
   ;; :config
   ;; (add-to-list 'recentf-exclude "^/\\(?:ssh\\|su\\|sudo\\)?:")
+  :config
+  (recentf-mode)
   :custom
   (recentf-max-saved-items 2000))
 
 ;; smart M-x enhancement (needed by counsel for history)
-(use-package smex)
+;; (use-package smex)
+
+(bind-keys
+ ("C-c f ." . find-file)
+ ("C-c f l" . find-library)
+ ("C-c f r" . recentf-open-files)
+ ("C-c x"   . execute-extended-command))
+
+(use-feature ido
+  :demand
+  :bind
+  (:map ido-common-completion-map
+        ([escape] . minibuffer-keyboard-quit)
+        ("DEL"    . b/ido-backspace))
+  :config
+  (require 'delsel)
+  (defun b/ido-backspace ()
+    "Forward to `backward-delete-char'.  On error (read-only), quit."
+    (interactive)
+    (condition-case nil
+        (backward-delete-char 1)
+      (error
+       (minibuffer-keyboard-quit))))
+  (ido-mode 1)
+  (ido-everywhere 1)
+  :custom
+  (ido-enable-flex-matching t)
+  (ido-max-window-height 10)
+  (ido-use-virtual-buffers t))
+
+(use-package ido-vertical-mode
+  :defer 0.3
+  :config
+  (ido-vertical-mode 1)
+  :custom
+  (ido-vertical-define-keys 'C-n-C-p-up-and-down)
+  (ido-vertical-show-count t))
+
+(use-package ido-completing-read+
+  :defer 0.3
+  :after ido
+  :config
+  (ido-ubiquitous-mode 1))
+
+(use-package amx
+  :defer 0.3
+  :config
+  (amx-mode))
+
+(use-package crm-custom
+  :defer 0.3
+  :config
+  (crm-custom-mode 1))
+
+(use-feature icomplete
+  :defer 0.3
+  :config
+  (icomplete-mode 1))
 
 (use-package ivy
+  :disabled
   :defer 0.3
   :bind
   (:map ivy-minibuffer-map
@@ -962,24 +1023,25 @@ This function is intended for use with `ivy-ignore-buffers'."
 )
 
 (use-package swiper
-  :after ivy
-  :bind (("C-s"   . swiper-isearch)
-         ("C-r"   . swiper)
-         ("C-S-s" . isearch-forward)))
+  :commands (swiper swiper-isearch)
+  :bind (;; ("C-s"   . swiper-isearch)
+         ;; ("C-r"   . swiper)
+         ("C-S-s" . swiper-isearch)))
 
 (use-package counsel
-  :after ivy
-  :bind (([remap execute-extended-command] . counsel-M-x)
-         ([remap find-file]                . counsel-find-file)
-         ("C-c f ."                        . counsel-find-file)
-         ("C-c f l"                        . counsel-find-library)
-         ("C-c f r"                        . counsel-recentf)
-         ("C-c x"                          . counsel-M-x)
-         :map minibuffer-local-map
-         ("C-r" . counsel-minibuffer-history))
-  :config
-  (counsel-mode 1)
-  (defalias 'locate #'counsel-locate))
+  :commands (counsel-linux-app))
+  ;; :bind (([remap execute-extended-command] . counsel-M-x)
+  ;;        ([remap find-file]                . counsel-find-file)
+  ;;        ("C-c f ."                        . counsel-find-file)
+  ;;        ("C-c f l"                        . counsel-find-library)
+  ;;        ("C-c f r"                        . counsel-recentf)
+  ;;        ("C-c x"                          . counsel-M-x)
+  ;;        :map minibuffer-local-map
+  ;;        ("C-r" . counsel-minibuffer-history))
+  ;; :config
+  ;; (counsel-mode 1)
+  ;; (defalias 'locate #'counsel-locate)
+  ;; )
 
 (comment
   (use-package helm
@@ -1023,7 +1085,8 @@ This function is intended for use with `ivy-ignore-buffers'."
                ("C-d"   . b/eshell-quit-or-delete-char)
                ("C-S-l" . b/eshell-clear)
                ("M-r"   . counsel-esh-history)
-               ([tab]   . company-complete)))
+               ;; ([tab]   . company-complete)
+               ))
 
   :hook (eshell-mode . b/eshell-setup)
   :custom
@@ -1268,8 +1331,9 @@ This function is intended for use with `ivy-ignore-buffers'."
   (company-dabbrev-char-regexp "\\sw\\|\\s_\\|[-_]")
   (company-dabbrev-downcase nil)
   (company-dabbrev-ignore-case nil)
-  :config
-  (global-company-mode t))
+  ;; :config
+  ;; (global-company-mode t)
+  )
 
 (use-package flycheck
   :defer 0.6
@@ -1710,7 +1774,7 @@ This function is intended for use with `ivy-ignore-buffers'."
        (advice-add 'magit-branch-and-checkout
                    :after #'my-projectile-invalidate-cache)))
   :custom
-  (projectile-completion-system 'ivy)
+  ;; (projectile-completion-system 'ivy)
   (projectile-mode-line-prefix " proj"))
 
 (use-package helpful
@@ -2419,6 +2483,10 @@ https://csclub.uwaterloo.ca/~abandali")
   :init
   (add-hook 'dired-mode-hook 'gnus-dired-mode))
 
+(use-feature gnus-utils
+  :custom
+  (gnus-completing-read-function 'gnus-ido-completing-read))
+
 (use-feature mm-decode
   :config
   (setq mm-discouraged-alternatives '("text/html" "text/richtext")
@@ -2471,7 +2539,7 @@ https://csclub.uwaterloo.ca/~abandali")
         '(gnus-find-subscribed-addresses)
         message-dont-reply-to-names
         "\\(\\(\\(amin\\|mab\\)@shemshak\\.org\\)\\|\\(.*@aminb\\.org\\)\\|\\(\\(bandali\\|mab\\|aminb?\\)@gnu\\.org\\)\\|\\(a?bandali@\\(csclub\\.\\)?uwaterloo\\.ca\\)\\)")
-  (require 'company-ebdb)
+  ;; (require 'company-ebdb)
   :hook (;; (message-setup . mml-secure-message-sign-pgpmime)
          (message-mode . flyspell-mode)
          (message-mode . (lambda ()
@@ -2523,14 +2591,19 @@ https://csclub.uwaterloo.ca/~abandali")
 (use-feature ebdb-com
   :after ebdb)
 
-;; (use-package ebdb-complete
-;;   :after ebdb
-;;   :config
-;;   (ebdb-complete-enable))
-
-(use-package company-ebdb
+(use-feature ebdb-complete
+  :after ebdb
   :config
-  (defun company-ebdb--post-complete (_) nil))
+  ;; (setq ebdb-complete-mail 'capf)
+  (ebdb-complete-enable))
+
+(use-feature ebdb-message
+  :demand
+  :after ebdb)
+
+;; (use-package company-ebdb
+;;   :config
+;;   (defun company-ebdb--post-complete (_) nil))
 
 (use-feature ebdb-gnus
   :after ebdb