Refactor +ivy--file-search & +ivy docstrings

This commit is contained in:
Henrik Lissner 2017-07-08 13:54:44 +02:00
parent d3a6a8317b
commit edeea02de3
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395
2 changed files with 25 additions and 23 deletions

View file

@ -20,10 +20,10 @@
(defvar +ivy--file-search-all-files-p nil) (defvar +ivy--file-search-all-files-p nil)
(defun +ivy--file-search (engine beg end query &optional directory) (defun +ivy--file-search (engine beg end query &optional directory)
(let* ((directory (or directory (doom-project-root))) (let* ((project-root (doom-project-root))
(directory (or directory project-root))
(recursion-p +ivy--file-search-recursion-p) (recursion-p +ivy--file-search-recursion-p)
(all-files-p +ivy--file-search-all-files-p) (all-files-p +ivy--file-search-all-files-p)
(project-root (doom-project-root))
(query (query
(or query (or query
(and beg end (and beg end
@ -40,13 +40,13 @@
(t (t
(file-relative-name directory project-root)))))) (file-relative-name directory project-root))))))
(setq +ivy--file-last-search query) (setq +ivy--file-last-search query)
(cond ((eq engine 'ag) (pcase engine
('ag
(let ((args (concat (let ((args (concat
(if all-files-p " -a") (if all-files-p " -a")
(unless recursion-p " -n")))) (unless recursion-p " -n"))))
(counsel-ag query directory args (format prompt args)))) (counsel-ag query directory args (format prompt args))))
('rg
((eq engine 'rg)
;; smart-case instead of case-insensitive flag ;; smart-case instead of case-insensitive flag
(let ((counsel-rg-base-command (let ((counsel-rg-base-command
(replace-regexp-in-string " -i " " -S " counsel-rg-base-command)) (replace-regexp-in-string " -i " " -S " counsel-rg-base-command))
@ -54,10 +54,8 @@
(if all-files-p " -uu") (if all-files-p " -uu")
(unless recursion-p " --maxdepth 0")))) (unless recursion-p " --maxdepth 0"))))
(counsel-rg query directory args (format prompt args)))) (counsel-rg query directory args (format prompt args))))
('pt) ;; TODO pt search engine (necessary?)
((eq engine 'pt)) ; TODO pt search engine (necessary?) (_ (error "No search engine specified")))))
(t (error "No search engine specified")))))
;;;###autoload (autoload '+ivy:ag "completion/ivy/autoload/evil" nil t) ;;;###autoload (autoload '+ivy:ag "completion/ivy/autoload/evil" nil t)
(evil-define-operator +ivy:ag (beg end query &optional all-files-p directory) (evil-define-operator +ivy:ag (beg end query &optional all-files-p directory)

View file

@ -49,14 +49,18 @@
;;;###autoload ;;;###autoload
(defun +ivy/switch-workspace-buffer (&optional other-window-p) (defun +ivy/switch-workspace-buffer (&optional other-window-p)
"Switch to an open buffer in the current workspace." "Switch to an open buffer in the current workspace.
If OTHER-WINDOW-P (universal arg), then open target in other window."
(interactive "P") (interactive "P")
(+ivy/switch-buffer other-window-p t)) (+ivy/switch-buffer other-window-p t))
;;;###autoload ;;;###autoload
(defun +ivy/switch-buffer (&optional other-window-p workspace-only-p) (defun +ivy/switch-buffer (&optional other-window-p workspace-only-p)
"Switch to an open buffer in the global buffer list. If WORKSPACE-ONLY-P, "Switch to an open buffer in the global buffer list.
limit to buffers in the current workspace."
If OTHER-WINDOW-P (universal arg), then open target in other window.
If WORKSPACE-ONLY-P (universal arg), limit to buffers in the current workspace."
(interactive "P") (interactive "P")
(ivy-read (format "%s buffers: " (if workspace-only-p "Workspace" "Global")) (ivy-read (format "%s buffers: " (if workspace-only-p "Workspace" "Global"))
(+ivy--get-buffers (unless workspace-only-p (buffer-list))) (+ivy--get-buffers (unless workspace-only-p (buffer-list)))