| @@ -1094,118 +1094,6 @@ THEM are function and its args." | |||||
| (auto-insert-mode 1) | (auto-insert-mode 1) | ||||
| ;; fzf | |||||
| ;; Too slow in term buffer! | |||||
| ;; (set-variable 'fzf/executable "sk") | |||||
| ;; (set-variable 'fzf/args "--color bw --print-query") | |||||
| ;; Modified from hardcoded default to include: | |||||
| ;; - directories | |||||
| ;; - hidden files | |||||
| ;; - root directory (.) | |||||
| ;; - parent directory (..) | |||||
| ;; ripgrep cannot list directories... | |||||
| ;; (setenv "FZF_DEFAULT_COMMAND" "rg --files --hidden --follow --glob '!.git/*' --no-ignore") | |||||
| (defvar my-fzf-default-command nil | |||||
| "My fzf FZF_DEFAULT_COMMAND.") | |||||
| (set-variable 'my-fzf-default-command | |||||
| (let ((find (or (executable-find "bfs") ;; Breadth-first find https://github.com/tavianator/bfs | |||||
| ;; Use gfind if available? | |||||
| "find")) | |||||
| (fd (or (executable-find "fdfind") | |||||
| (executable-find "fd")))) | |||||
| (if fd | |||||
| (concat "set -eu; set -o pipefail; " | |||||
| "echo .; " | |||||
| "echo ..; " | |||||
| "command " fd " " | |||||
| "--follow --hidden --no-ignore " | |||||
| "--color always " | |||||
| "2>/dev/null") | |||||
| (concat "set -eu; set -o pipefail; " | |||||
| "echo .; " | |||||
| "echo ..; " | |||||
| "command " find " -L . " | |||||
| "-mindepth 1 " | |||||
| "\\( -fstype 'sysfs' -o -fstype 'devfs' -o -fstype 'devtmpfs' -o -fstype 'proc' \\) -prune " | |||||
| "-o -print " | |||||
| "2> /dev/null " | |||||
| "| " | |||||
| "cut -b3-")))) | |||||
| (set-variable 'fzf/window-height 45) | |||||
| (set-variable 'fzf/args "--print-query --ansi --color='bg+:-1' --inline-info --cycle") | |||||
| ;; (set-variable 'fzf/args "--print-query --ansi --inline-info --cycle") | |||||
| ;; (set-variable 'fzf/args "--print-query --ansi --color=bw --inline-info --cycle") | |||||
| (declare-function fzf "fzf" t) | |||||
| (defun my-fzf-or-find-file () | |||||
| "Call fzf if usable or call `find-file'." | |||||
| (declare (interactive-only t)) | |||||
| (interactive) | |||||
| (if (and (executable-find "fzf") | |||||
| (fboundp 'fzf) | |||||
| (not (file-remote-p default-directory))) | |||||
| (let ((process-environment (cl-copy-list process-environment))) | |||||
| (setenv "FZF_DEFAULT_COMMAND" my-fzf-default-command) | |||||
| (my-fzf)) | |||||
| (call-interactively 'find-file))) | |||||
| (defvar fzf/position-bottom) | |||||
| (declare-function fzf/start "fzf") | |||||
| (declare-function term-reset-size "term") | |||||
| (defun my-fzf () | |||||
| "Invoke `fzf' with my configurations." | |||||
| (require 'fzf) | |||||
| (let ((dir (or (ignore-errors | |||||
| (require 'projectile) | |||||
| (projectile-project-root)) | |||||
| default-directory))) | |||||
| (set-variable 'fzf/window-height 12) | |||||
| (set-variable 'fzf/args | |||||
| (concat ;; "--print-query " | |||||
| "--ansi " | |||||
| "--color='bg+:-1' " | |||||
| "--inline-info " | |||||
| "--cycle " | |||||
| ;; TODO: fix | |||||
| "--reverse " | |||||
| ;; "--print0 " | |||||
| (format "--prompt='[%s]> ' " | |||||
| dir))) | |||||
| (fzf/start dir) | |||||
| (let* ((buf (or (get-buffer "*fzf*") | |||||
| (error "FZF buffer not found"))) | |||||
| (current-window (or (get-buffer-window buf) | |||||
| (error "FZF window not found"))) | |||||
| (height (window-height current-window)) | |||||
| (root-window nil) | |||||
| (new-window nil)) | |||||
| (with-current-buffer buf | |||||
| (setq mode-line-format nil)) | |||||
| (jump-to-register :fzf-windows) | |||||
| ;; (delete-window current-window) | |||||
| (setq root-window (frame-root-window)) | |||||
| (setq new-window (split-window root-window | |||||
| (- height) | |||||
| 'below)) | |||||
| (select-window new-window) | |||||
| (switch-to-buffer buf) | |||||
| (term-reset-size (window-height) | |||||
| (window-width)) | |||||
| ))) | |||||
| ;; (define-key ctl-x-map "f" 'my-fzf-or-find-file) | |||||
| (defun my-fzf-all-lines () | |||||
| "Fzf all lines." | |||||
| (interactive) | |||||
| (unless (executable-find "rg") | |||||
| (error "rg not found")) | |||||
| (let ((process-environment (cl-copy-list process-environment))) | |||||
| (setenv "FZF_DEFAULT_COMMAND" "rg -nH --no-heading --hidden --follow --glob '!.git/*' --color=always ^") | |||||
| (fzf))) | |||||
| ;; (define-key ctl-x-map "S" 'my-fzf-all-lines) | |||||
| ;; fuzzy-finder | ;; fuzzy-finder | ||||
| (set-variable 'fuzzy-finder-default-command | (set-variable 'fuzzy-finder-default-command | ||||