(require 'config-package) (use-package swiper) (use-package counsel :bind* (("M-x" . counsel-M-x) ("C-s" . counsel-grep-or-swiper) ("C-x C-f" . counsel-find-file) ("C-x C-r" . counsel-recentf) ("C-c f" . counsel-git) ("C-c s" . counsel-git-grep) ("C-c /" . counsel-ag)) :config (setq counsel-find-file-at-point t)) (use-package counsel-projectile) (use-package ivy :diminish (ivy-mode . "") :bind ("C-c m" . ivy-switch-project) :config (ivy-mode 1) (setq ivy-use-virtual-buffers t ivy-height 10 ivy-count-format "(%d/%d) " ivy-initial-inputs-alist nil ivy-use-ignore-default 'always ivy-ignore-buffers '("company-statistics-cache.el" "company-statistics-autoload.el") ivy-re-builders-alist '((swiper . ivy--regex-ignore-order) (t . ivy--regex-fuzzy) (t . ivy--regex-ignore-order))) (defun ivy-switch-project () (interactive) (ivy-read "Switch to project: " (if (projectile-project-p) (cons (abbreviate-file-name (projectile-project-root)) (projectile-relevant-known-projects)) projectile-known-projects) :action #'projectile-switch-project-by-name)) (ivy-set-actions 'ivy-switch-project '(("d" dired "Open Dired in project's directory") ("v" counsel-projectile "Open project root in vc-dir or magit") ("c" projectile-compile-project "Compile project") ("r" projectile-remove-known-project "Remove project(s)")))) (use-package ivy-hydra) (provide 'module-ivy)