1 ;;; -*- lexical-binding: t -*-
11 (setq ivy-extra-directories '("./"))
12 (setq ivy-count-format "%d/%d ")
13 (setq ivy-case-fold-search-default t)
15 (setq counsel-find-file-at-point t)
16 (setq counsel-find-file-ignore-regexp "\\(?:\\`[#.]\\)\\|\\(?:[#~]\\'\\)")
18 (setq counsel-grep-base-command "grep -E -n -i -e %s %s")
19 (setq counsel-rg-base-command "rg -S --no-heading --line-number --color never --hidden --ignore-file ~/.emacs.d/rg-ignore %s .")
20 (defvar counsel-rg-files-command "rg --files --hidden --ignore-file ~/.emacs.d/rg-ignore")
22 (defun counsel-rg-jump (&optional initial-input initial-directory)
23 "Jump to a file below the current directory.
24 List all files within the current directory or any of its subdirectories.
25 INITIAL-INPUT can be given as the initial minibuffer input.
26 INITIAL-DIRECTORY, if non-nil, is used as the root directory for search."
29 (when current-prefix-arg
30 (read-directory-name "From directory: "))))
31 (counsel-require-program "rg")
32 (let ((default-directory (or initial-directory
33 (locate-dominating-file default-directory ".git")
35 (ivy-read "rg --files: "
37 (shell-command-to-string counsel-rg-files-command)
39 :matcher #'counsel--find-file-matcher
40 :initial-input initial-input
43 (find-file (expand-file-name x ivy--directory))))
44 :preselect (counsel--preselect-file)
45 :require-match 'confirm-after-completion
46 :history 'file-name-history
47 :keymap counsel-find-file-map
48 :caller 'counsel-rg-jump)))