abo-abo / swiper

Ivy - a generic completion frontend for Emacs, Swiper - isearch with an overview, and more. Oh, man!
https://oremacs.com/swiper/
2.31k stars 338 forks source link

When I try to use ivy-occur after counsel-git-grep I get an error. #2571

Closed flamingbear closed 4 years ago

flamingbear commented 4 years ago

When I try to use ivy-occur after counsel-git-grep I get an error.

Thanks in advance for an awesome product!

wrong-type-argument listp ...

start swiper with

git clone https://github.com/abo-abo/swiper/
cd swiper
make plain
keystrokes to reproduce
 C-c j [counsel-git-grep]
 t [self-insert-command]
 e [self-insert-command]
 s [self-insert-command]
 t [self-insert-command]
 C-c C-o [ivy-occur]

debug log:

Debugger entered--Lisp error: (wrong-type-argument listp "git --no-pager grep -n --no-color -I -e \"test\" -i")
  car("git --no-pager grep -n --no-color -I -e \"test\" -i")
  (apply (function process-file) (car command) nil (list t stderr) nil (cdr command))
  (setq status (apply (function process-file) (car command) nil (list t stderr) nil (cdr command)))
  (progn (setq status (apply (function process-file) (car command) nil (list t stderr) nil (cdr command))) (if (eq status 0) (if result-fn (funcall result-fn) (buffer-substring (point-min) (- (point) (if (eq (bobp) (bolp)) 0 1)))) (setq status (list (quote file-error) (mapconcat (function identity) (append command (quote ("failed"))) " ") status)) (let ((msg (condition-case err (if (= 0 ...) nil (buffer-string)) (error (error-message-string err))))) (lwarn (quote ivy) :warning "%s" (apply (function concat) (error-message-string status) (and msg (list "\n" msg))))) (signal (car status) (cdr status))))
  (unwind-protect (progn (setq status (apply (function process-file) (car command) nil (list t stderr) nil (cdr command))) (if (eq status 0) (if result-fn (funcall result-fn) (buffer-substring (point-min) (- (point) (if (eq ... ...) 0 1)))) (setq status (list (quote file-error) (mapconcat (function identity) (append command (quote ...)) " ") status)) (let ((msg (condition-case err (if ... nil ...) (error ...)))) (lwarn (quote ivy) :warning "%s" (apply (function concat) (error-message-string status) (and msg (list "\n" msg))))) (signal (car status) (cdr status)))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))
  (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (setq status (apply (function process-file) (car command) nil (list t stderr) nil (cdr command))) (if (eq status 0) (if result-fn (funcall result-fn) (buffer-substring (point-min) (- (point) (if ... 0 1)))) (setq status (list (quote file-error) (mapconcat (function identity) (append command ...) " ") status)) (let ((msg (condition-case err ... ...))) (lwarn (quote ivy) :warning "%s" (apply (function concat) (error-message-string status) (and msg ...)))) (signal (car status) (cdr status)))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))
  (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (setq status (apply (function process-file) (car command) nil (list t stderr) nil (cdr command))) (if (eq status 0) (if result-fn (funcall result-fn) (buffer-substring (point-min) (- ... ...))) (setq status (list (quote file-error) (mapconcat ... ... " ") status)) (let ((msg ...)) (lwarn (quote ivy) :warning "%s" (apply ... ... ...))) (signal (car status) (cdr status)))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))))
  (unwind-protect (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (setq status (apply (function process-file) (car command) nil (list t stderr) nil (cdr command))) (if (eq status 0) (if result-fn (funcall result-fn) (buffer-substring ... ...)) (setq status (list ... ... status)) (let (...) (lwarn ... :warning "%s" ...)) (signal (car status) (cdr status)))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (delete-file stderr))
  (let ((stderr (make-temp-file "counsel-call-stderr-")) status) (unwind-protect (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (setq status (apply ... ... nil ... nil ...)) (if (eq status 0) (if result-fn ... ...) (setq status ...) (let ... ...) (signal ... ...))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (delete-file stderr)))
  counsel--call("git --no-pager grep -n --no-color -I -e \"test\" -i")
  (if (stringp cmd-template) (shell-command-to-string cmd) (counsel--call cmd))
  (counsel--split-string (if (stringp cmd-template) (shell-command-to-string cmd) (counsel--call cmd)))
  (let* ((cmd (if (functionp cmd-template) (funcall cmd-template ivy-text) (let* ((command-args (counsel--split-command-args ivy-text)) (regex (counsel--grep-regex ...)) (all-args (append ... ... ...))) (if (stringp cmd-template) (counsel--format cmd-template (mapconcat ... all-args " ")) (cl-mapcan (function ...) (copy-sequence cmd-template)))))) (cands (counsel--split-string (if (stringp cmd-template) (shell-command-to-string cmd) (counsel--call cmd))))) (swiper--occur-insert-lines (mapcar (function counsel--normalize-grep-match) cands)))
  counsel-grep-like-occur(counsel--git-grep-occur-cmd)
  counsel-git-grep-occur((#(".travis.yml:16:  - make test" 0 11 (face ivy-grep-info) 12 14 (face ivy-grep-line-number)) #("CONTRIBUTING.org:52:- =make deps= - install dependencies for testing" 0 16 (face ivy-grep-info) 17 19 (face ivy-grep-line-number)) #("CONTRIBUTING.org:53:- =make test= - check for failing tests" 0 16 (face ivy-grep-info) 17 19 (face ivy-grep-line-number)) #("Makefile:7:all: test" 0 8 (face ivy-grep-info) 9 10 (face ivy-grep-line-number)) #("Makefile:12:test:" 0 8 (face ivy-grep-info) 9 11 (face ivy-grep-line-number)) #("Makefile:13:\011$(emacs) -batch $(LOAD) -l ivy-test.el -f ivy-test-run-tests" 0 8 (face ivy-grep-info) 9 11 (face ivy-grep-line-number)) #("Makefile:34:.PHONY: all test checkdoc compile plain obsolete update-issues clean" 0 8 (face ivy-grep-info) 9 11 (face ivy-grep-line-number)) #("counsel.el:962:        (cands (make-hash-table :test #'equal))" 0 10 (face ivy-grep-info) 11 14 (face ivy-grep-line-number)) #("counsel.el:1725:                             :key #'counsel-git-worktree-parse-root :test #'string=)" 0 10 (face ivy-grep-info) 11 15 (face ivy-grep-line-number)) "counsel.el:4334:  (or (cl-position s kill-ring-yank-pointer :test #'equal-including-properties)" "counsel.el:4335:      (cl-position s kill-ring-yank-pointer :test #'equal)" "counsel.el:4336:      (+ (or (cl-position s kill-ring :test #'equal-including-properties)" "counsel.el:4337:             (cl-position s kill-ring :test #'equal))" "counsel.el:4369:              :test #'equal-including-properties :from-end t)))" "counsel.el:4402:                        :test #'equal-including-properties)))" "counsel.el:5959:  (let ((hash (make-hash-table :test #'equal))" "doc/Changelog.org:1098:**** Add a few tests for alists" "doc/Changelog.org:1353:(defun small-test ()" "doc/Changelog.org:1358: '((small-test)" "doc/Changelog.org:1372:   (small-test)))" "doc/Changelog.org:3121:Add some entries, and tests. See [[https://github.com/abo-abo/swiper/issues/1049][#1049]]." "doc/Changelog.org:3637:Extend unquote-regex-parens tests. See [[https://github.com/abo-abo/swiper/issues/1704][#1704]], [[https://github.com/abo-abo/swiper/issues/1708][#1708]], [[https://github.com/abo-abo/swiper/issues/1863][#1863]]." "doc/Changelog.org:3978:Use =all-completions= and add test. See [[https://github.com/abo-abo/swiper/issues/1832][#1832]]." "doc/Changelog.org:4056:Update and add test for \"add path!\" input. See [[https://github.com/abo-abo/swiper/issues/1418][#1418]]." "doc/Changelog.org:4406:Add test to history even for ~C-g~. See [[https://github.com/abo-abo/swiper/issues/1305][#1305]]." "doc/Changelog.org:4598:Fix el:org-version testing. See [[https://github.com/abo-abo/swiper/issues/2006][#2006]]." "doc/Changelog.org:5269:Add the latest mark to selection. See [[https://github.com/abo-abo/swiper/issues/2252][#2252]]." "doc/Changelog.org:5477:*** Tests" "doc/Changelog.org:5479::CUSTOM_ID: 0.13.0-fx-tests" "doc/Changelog.org:5481:Keep the test files in worktree instead of in a =test= branch. See [[https://github.com/abo-abo/swiper/issues/2187][#2187]]." "doc/Changelog.org:5483:Fix tests using file names on Windows. See [[https://github.com/abo-abo/swiper/issues/2217][#2217]]." "doc/gpl-3.0.txt:625:  If you develop a new program, and you want it to be of the greatest" "doc/ivy.org:154:different package archives, GNU ELPA and MELPA. For the latest stable" "doc/ivy.org:373:     Example ERT test:" "doc/ivy.org:379:                (ivy-read \"Test: \" '(\"can do\" \"can't, sorry\" \"other\"))" "doc/ivy.org:702:=\"for example\"= will match =\"example test for\"=." "doc/ivy.org:938:  (ivy-read \"test: \" '(\"foo\" \"bar\" \"baz\")" "doc/ivy.org:948:**** Test the above function with =ivy-occur=" "doc/ivy.org:950::CUSTOM_ID: test-the-above-function-with-ivy-occur" "doc/ivy.texi:123:* Test the above function with @code{ivy-occur}::" "doc/ivy.texi:220:different package archives, GNU ELPA and MELPA. For the latest stable" "doc/ivy.texi:479:Example ERT test:" "doc/ivy.texi:485:\011   (ivy-read \"Test: \" '(\"can do\" \"can't, sorry\" \"other\"))" "doc/ivy.texi:937:@code{\"for example\"} will match @code{\"example test for\"}." "doc/ivy.texi:1224:  (ivy-read \"test: \" '(\"foo\" \"bar\" \"baz\")" "doc/ivy.texi:1235:* Test the above function with @code{ivy-occur}::" "doc/ivy.texi:1238:@node Test the above function with @code{ivy-occur}" "doc/ivy.texi:1239:@subsubsection Test the above function with @code{ivy-occur}" "ivy-test.el:1:;;; ivy-test.el --- tests for ivy -*- lexical-binding: t -*-" "ivy-test.el:24:;; This packages provides the tests for `ert'.  They can be executed" ...))
  funcall(counsel-git-grep-occur (#(".travis.yml:16:  - make test" 0 11 (face ivy-grep-info) 12 14 (face ivy-grep-line-number)) #("CONTRIBUTING.org:52:- =make deps= - install dependencies for testing" 0 16 (face ivy-grep-info) 17 19 (face ivy-grep-line-number)) #("CONTRIBUTING.org:53:- =make test= - check for failing tests" 0 16 (face ivy-grep-info) 17 19 (face ivy-grep-line-number)) #("Makefile:7:all: test" 0 8 (face ivy-grep-info) 9 10 (face ivy-grep-line-number)) #("Makefile:12:test:" 0 8 (face ivy-grep-info) 9 11 (face ivy-grep-line-number)) #("Makefile:13:\011$(emacs) -batch $(LOAD) -l ivy-test.el -f ivy-test-run-tests" 0 8 (face ivy-grep-info) 9 11 (face ivy-grep-line-number)) #("Makefile:34:.PHONY: all test checkdoc compile plain obsolete update-issues clean" 0 8 (face ivy-grep-info) 9 11 (face ivy-grep-line-number)) #("counsel.el:962:        (cands (make-hash-table :test #'equal))" 0 10 (face ivy-grep-info) 11 14 (face ivy-grep-line-number)) #("counsel.el:1725:                             :key #'counsel-git-worktree-parse-root :test #'string=)" 0 10 (face ivy-grep-info) 11 15 (face ivy-grep-line-number)) "counsel.el:4334:  (or (cl-position s kill-ring-yank-pointer :test #'equal-including-properties)" "counsel.el:4335:      (cl-position s kill-ring-yank-pointer :test #'equal)" "counsel.el:4336:      (+ (or (cl-position s kill-ring :test #'equal-including-properties)" "counsel.el:4337:             (cl-position s kill-ring :test #'equal))" "counsel.el:4369:              :test #'equal-including-properties :from-end t)))" "counsel.el:4402:                        :test #'equal-including-properties)))" "counsel.el:5959:  (let ((hash (make-hash-table :test #'equal))" "doc/Changelog.org:1098:**** Add a few tests for alists" "doc/Changelog.org:1353:(defun small-test ()" "doc/Changelog.org:1358: '((small-test)" "doc/Changelog.org:1372:   (small-test)))" "doc/Changelog.org:3121:Add some entries, and tests. See [[https://github.com/abo-abo/swiper/issues/1049][#1049]]." "doc/Changelog.org:3637:Extend unquote-regex-parens tests. See [[https://github.com/abo-abo/swiper/issues/1704][#1704]], [[https://github.com/abo-abo/swiper/issues/1708][#1708]], [[https://github.com/abo-abo/swiper/issues/1863][#1863]]." "doc/Changelog.org:3978:Use =all-completions= and add test. See [[https://github.com/abo-abo/swiper/issues/1832][#1832]]." "doc/Changelog.org:4056:Update and add test for \"add path!\" input. See [[https://github.com/abo-abo/swiper/issues/1418][#1418]]." "doc/Changelog.org:4406:Add test to history even for ~C-g~. See [[https://github.com/abo-abo/swiper/issues/1305][#1305]]." "doc/Changelog.org:4598:Fix el:org-version testing. See [[https://github.com/abo-abo/swiper/issues/2006][#2006]]." "doc/Changelog.org:5269:Add the latest mark to selection. See [[https://github.com/abo-abo/swiper/issues/2252][#2252]]." "doc/Changelog.org:5477:*** Tests" "doc/Changelog.org:5479::CUSTOM_ID: 0.13.0-fx-tests" "doc/Changelog.org:5481:Keep the test files in worktree instead of in a =test= branch. See [[https://github.com/abo-abo/swiper/issues/2187][#2187]]." "doc/Changelog.org:5483:Fix tests using file names on Windows. See [[https://github.com/abo-abo/swiper/issues/2217][#2217]]." "doc/gpl-3.0.txt:625:  If you develop a new program, and you want it to be of the greatest" "doc/ivy.org:154:different package archives, GNU ELPA and MELPA. For the latest stable" "doc/ivy.org:373:     Example ERT test:" "doc/ivy.org:379:                (ivy-read \"Test: \" '(\"can do\" \"can't, sorry\" \"other\"))" "doc/ivy.org:702:=\"for example\"= will match =\"example test for\"=." "doc/ivy.org:938:  (ivy-read \"test: \" '(\"foo\" \"bar\" \"baz\")" "doc/ivy.org:948:**** Test the above function with =ivy-occur=" "doc/ivy.org:950::CUSTOM_ID: test-the-above-function-with-ivy-occur" "doc/ivy.texi:123:* Test the above function with @code{ivy-occur}::" "doc/ivy.texi:220:different package archives, GNU ELPA and MELPA. For the latest stable" "doc/ivy.texi:479:Example ERT test:" "doc/ivy.texi:485:\011   (ivy-read \"Test: \" '(\"can do\" \"can't, sorry\" \"other\"))" "doc/ivy.texi:937:@code{\"for example\"} will match @code{\"example test for\"}." "doc/ivy.texi:1224:  (ivy-read \"test: \" '(\"foo\" \"bar\" \"baz\")" "doc/ivy.texi:1235:* Test the above function with @code{ivy-occur}::" "doc/ivy.texi:1238:@node Test the above function with @code{ivy-occur}" "doc/ivy.texi:1239:@subsubsection Test the above function with @code{ivy-occur}" "ivy-test.el:1:;;; ivy-test.el --- tests for ivy -*- lexical-binding: t -*-" "ivy-test.el:24:;; This packages provides the tests for `ert'.  They can be executed" ...))
  (save-current-buffer (set-buffer buffer) (funcall occur-fn ivy--old-cands) (progn (or (and (memq (type-of ivy-last) cl-struct-ivy-state-tags) t) (signal (quote wrong-type-argument) (list (quote ivy-state) ivy-last))) (let* ((v ivy-last)) (aset v 14 ivy-text))) (setq ivy-occur-last ivy-last))
  (let* ((caller (progn (or (and (memq (type-of ivy-last) cl-struct-ivy-state-tags) t) (signal (quote wrong-type-argument) (list (quote ivy-state) ivy-last))) (aref ivy-last 22))) (occur-fn (or (plist-get ivy--occurs-list caller) (function ivy--occur-default))) (buffer (generate-new-buffer (format "*ivy-occur%s \"%s\"*" (if caller (concat " " (prin1-to-string caller)) "") ivy-text)))) (save-current-buffer (set-buffer buffer) (funcall occur-fn ivy--old-cands) (progn (or (and (memq (type-of ivy-last) cl-struct-ivy-state-tags) t) (signal (quote wrong-type-argument) (list (quote ivy-state) ivy-last))) (let* ((v ivy-last)) (aset v 14 ivy-text))) (setq ivy-occur-last ivy-last)) (ivy-exit-with-action (function (lambda (_) (pop-to-buffer buffer) (setq next-error-last-buffer buffer) (set (make-local-variable (quote next-error-function)) (function ivy-occur-next-error))))))
  (if (not (window-minibuffer-p)) (user-error "No completion session is active") (let* ((caller (progn (or (and (memq ... cl-struct-ivy-state-tags) t) (signal (quote wrong-type-argument) (list ... ivy-last))) (aref ivy-last 22))) (occur-fn (or (plist-get ivy--occurs-list caller) (function ivy--occur-default))) (buffer (generate-new-buffer (format "*ivy-occur%s \"%s\"*" (if caller (concat " " ...) "") ivy-text)))) (save-current-buffer (set-buffer buffer) (funcall occur-fn ivy--old-cands) (progn (or (and (memq (type-of ivy-last) cl-struct-ivy-state-tags) t) (signal (quote wrong-type-argument) (list (quote ivy-state) ivy-last))) (let* ((v ivy-last)) (aset v 14 ivy-text))) (setq ivy-occur-last ivy-last)) (ivy-exit-with-action (function (lambda (_) (pop-to-buffer buffer) (setq next-error-last-buffer buffer) (set (make-local-variable (quote next-error-function)) (function ivy-occur-next-error)))))))
  ivy-occur()
  funcall-interactively(ivy-occur)
  call-interactively(ivy-occur nil nil)
  command-execute(ivy-occur)
  read-from-minibuffer("git grep: " nil (keymap (keymap (24 keymap (4 . counsel-cd)) (3 keymap (13 . counsel-git-grep-switch-cmd)) (27 keymap (113 . counsel-git-grep-query-replace)) (12 . ivy-call-and-recenter)) keymap (36 . ivy-magic-read-file-env) (3 keymap (19 . ivy-rotate-sort) (1 . ivy-toggle-ignore) (15 . ivy-occur)) (33554464 . ivy-restrict-to-matches) (15 . hydra-ivy/body) (22 . ivy-scroll-up-command) (prior . ivy-scroll-down-command) (next . ivy-scroll-up-command) (7 . minibuffer-keyboard-quit) (right . ivy-forward-char) (32 . self-insert-command) (18 . ivy-reverse-i-search) (remap keymap (describe-mode . ivy-help) (kill-ring-save . ivy-kill-ring-save) (kill-whole-line . ivy-kill-whole-line) (kill-line . ivy-kill-line) (scroll-down-command . ivy-scroll-down-command) (scroll-up-command . ivy-scroll-up-command) (end-of-buffer . ivy-end-of-buffer) (beginning-of-buffer . ivy-beginning-of-buffer) (kill-word . ivy-kill-word) (forward-char . ivy-forward-char) (delete-char . ivy-delete-char) (backward-kill-word . ivy-backward-kill-word) (backward-delete-char-untabify . ivy-backward-delete-char) (delete-backward-char . ivy-backward-delete-char) (previous-line . ivy-previous-line) (next-line . ivy-next-line)) (9 . ivy-partial-or-done) (10 . ivy-alt-done) (27 keymap (1 . ivy-read-action) (15 . ivy-dispatching-call) (111 . ivy-dispatching-done) (25 . ivy-insert-current-full) (105 . ivy-insert-current) (106 . ivy-yank-word) (114 . ivy-toggle-regexp-quote) (97 . ivy-toggle-marks) (16 . ivy-previous-line-and-call) (14 . ivy-next-line-and-call) (118 . ivy-scroll-down-command) (112 . ivy-previous-history-element) (110 . ivy-next-history-element) (10 . ivy-immediate-done) (13 . ivy-call)) (mouse-3 . ivy-mouse-dispatching-done) (mouse-1 . ivy-mouse-done) (down-mouse-1 . ignore) (13 . ivy-done)) nil counsel-git-grep-history)
  (condition-case err (read-from-minibuffer prompt (progn (or (and (memq (type-of ivy-last) cl-struct-ivy-state-tags) t) (signal (quote wrong-type-argument) (list (quote ivy-state) ivy-last))) (aref ivy-last 5)) (make-composed-keymap keymap ivy-minibuffer-map) nil hist) (error (if (equal err (quote (error "Selecting deleted buffer"))) nil (signal (car err) (cdr err)))))
  (if (and ivy-auto-select-single-candidate ivy--all-candidates (null (cdr ivy--all-candidates))) (progn (progn (or (and (memq (type-of ivy-last) cl-struct-ivy-state-tags) t) (signal (quote wrong-type-argument) (list (quote ivy-state) ivy-last))) (let* ((v ivy-last)) (aset v 23 (car ivy--all-candidates)))) (setq ivy-exit (quote done))) (condition-case err (read-from-minibuffer prompt (progn (or (and (memq (type-of ivy-last) cl-struct-ivy-state-tags) t) (signal (quote wrong-type-argument) (list (quote ivy-state) ivy-last))) (aref ivy-last 5)) (make-composed-keymap keymap ivy-minibuffer-map) nil hist) (error (if (equal err (quote (error "Selecting deleted buffer"))) nil (signal (car err) (cdr err))))))
  (let* ((hist (or history (quote ivy-history))) (minibuffer-completion-table collection) (minibuffer-completion-predicate predicate) (ivy-height (ivy--height caller)) (resize-mini-windows (if (display-graphic-p) nil (quote grow-only)))) (if (and ivy-auto-select-single-candidate ivy--all-candidates (null (cdr ivy--all-candidates))) (progn (progn (or (and (memq (type-of ivy-last) cl-struct-ivy-state-tags) t) (signal (quote wrong-type-argument) (list (quote ivy-state) ivy-last))) (let* ((v ivy-last)) (aset v 23 (car ivy--all-candidates)))) (setq ivy-exit (quote done))) (condition-case err (read-from-minibuffer prompt (progn (or (and (memq ... cl-struct-ivy-state-tags) t) (signal (quote wrong-type-argument) (list ... ivy-last))) (aref ivy-last 5)) (make-composed-keymap keymap ivy-minibuffer-map) nil hist) (error (if (equal err (quote (error "Selecting deleted buffer"))) nil (signal (car err) (cdr err)))))) (if (eq ivy-exit (quote done)) (progn (ivy--update-history hist))))
  (progn (add-hook (quote minibuffer-setup-hook) setup-hook) (let* ((hist (or history (quote ivy-history))) (minibuffer-completion-table collection) (minibuffer-completion-predicate predicate) (ivy-height (ivy--height caller)) (resize-mini-windows (if (display-graphic-p) nil (quote grow-only)))) (if (and ivy-auto-select-single-candidate ivy--all-candidates (null (cdr ivy--all-candidates))) (progn (progn (or (and (memq ... cl-struct-ivy-state-tags) t) (signal (quote wrong-type-argument) (list ... ivy-last))) (let* ((v ivy-last)) (aset v 23 (car ivy--all-candidates)))) (setq ivy-exit (quote done))) (condition-case err (read-from-minibuffer prompt (progn (or (and ... t) (signal ... ...)) (aref ivy-last 5)) (make-composed-keymap keymap ivy-minibuffer-map) nil hist) (error (if (equal err (quote ...)) nil (signal (car err) (cdr err)))))) (if (eq ivy-exit (quote done)) (progn (ivy--update-history hist)))))
  (unwind-protect (progn (add-hook (quote minibuffer-setup-hook) setup-hook) (let* ((hist (or history (quote ivy-history))) (minibuffer-completion-table collection) (minibuffer-completion-predicate predicate) (ivy-height (ivy--height caller)) (resize-mini-windows (if (display-graphic-p) nil (quote grow-only)))) (if (and ivy-auto-select-single-candidate ivy--all-candidates (null (cdr ivy--all-candidates))) (progn (progn (or (and ... t) (signal ... ...)) (let* (...) (aset v 23 ...))) (setq ivy-exit (quote done))) (condition-case err (read-from-minibuffer prompt (progn (or ... ...) (aref ivy-last 5)) (make-composed-keymap keymap ivy-minibuffer-map) nil hist) (error (if (equal err ...) nil (signal ... ...))))) (if (eq ivy-exit (quote done)) (progn (ivy--update-history hist))))) (remove-hook (quote minibuffer-setup-hook) setup-hook))
  (let ((fun (function ivy--minibuffer-setup)) setup-hook) (setq setup-hook (function (lambda nil (remove-hook (quote minibuffer-setup-hook) setup-hook) (funcall fun)))) (unwind-protect (progn (add-hook (quote minibuffer-setup-hook) setup-hook) (let* ((hist (or history (quote ivy-history))) (minibuffer-completion-table collection) (minibuffer-completion-predicate predicate) (ivy-height (ivy--height caller)) (resize-mini-windows (if (display-graphic-p) nil (quote grow-only)))) (if (and ivy-auto-select-single-candidate ivy--all-candidates (null (cdr ivy--all-candidates))) (progn (progn (or ... ...) (let* ... ...)) (setq ivy-exit (quote done))) (condition-case err (read-from-minibuffer prompt (progn ... ...) (make-composed-keymap keymap ivy-minibuffer-map) nil hist) (error (if ... nil ...)))) (if (eq ivy-exit (quote done)) (progn (ivy--update-history hist))))) (remove-hook (quote minibuffer-setup-hook) setup-hook)))
  (unwind-protect (let ((fun (function ivy--minibuffer-setup)) setup-hook) (setq setup-hook (function (lambda nil (remove-hook (quote minibuffer-setup-hook) setup-hook) (funcall fun)))) (unwind-protect (progn (add-hook (quote minibuffer-setup-hook) setup-hook) (let* ((hist (or history ...)) (minibuffer-completion-table collection) (minibuffer-completion-predicate predicate) (ivy-height (ivy--height caller)) (resize-mini-windows (if ... nil ...))) (if (and ivy-auto-select-single-candidate ivy--all-candidates (null ...)) (progn (progn ... ...) (setq ivy-exit ...)) (condition-case err (read-from-minibuffer prompt ... ... nil hist) (error ...))) (if (eq ivy-exit (quote done)) (progn (ivy--update-history hist))))) (remove-hook (quote minibuffer-setup-hook) setup-hook))) (let ((session (or (plist-get extra-props :session) (if (or (minibufferp) (null ...) (eq ... ...)) nil caller)))) (if session (progn (progn (or (and (memq ... cl-struct-ivy-state-tags) t) (signal (quote wrong-type-argument) (list ... ivy-last))) (let* ((v ivy-last)) (aset v 27 (plist-put extra-props :ivy-data ...)))) (ivy--alist-set (quote ivy--sessions) session ivy-last)))) (ivy--cleanup))
  (let* ((ivy-recursive-last (and (active-minibuffer-window) ivy-last)) (ivy--display-function (if (or ivy-recursive-last (not (window-minibuffer-p))) (progn (ivy-alist-setting ivy-display-functions-alist caller))))) (setq update-fn (or update-fn (ivy-alist-setting ivy-update-fns-alist caller))) (setq unwind (or unwind (ivy-alist-setting ivy-unwind-fns-alist caller))) (setq ivy-last (make-ivy-state :prompt (ivy--update-prompt prompt) :collection collection :predicate predicate :require-match require-match :initial-input initial-input :history history :preselect preselect :keymap keymap :update-fn (if (eq update-fn (quote auto)) (function (lambda nil (let (...) (save-current-buffer ...)))) update-fn) :sort sort :action (ivy--compute-extra-actions action caller) :multi-action multi-action :frame (selected-frame) :window (selected-window) :buffer (current-buffer) :unwind unwind :re-builder re-builder :matcher matcher :dynamic-collection dynamic-collection :display-transformer-fn (ivy-alist-setting ivy--display-transformers-alist caller) :directory default-directory :extra-props extra-props :caller caller :def def)) (ivy--reset-state ivy-last) (unwind-protect (let ((fun (function ivy--minibuffer-setup)) setup-hook) (setq setup-hook (function (lambda nil (remove-hook (quote minibuffer-setup-hook) setup-hook) (funcall fun)))) (unwind-protect (progn (add-hook (quote minibuffer-setup-hook) setup-hook) (let* ((hist ...) (minibuffer-completion-table collection) (minibuffer-completion-predicate predicate) (ivy-height ...) (resize-mini-windows ...)) (if (and ivy-auto-select-single-candidate ivy--all-candidates ...) (progn ... ...) (condition-case err ... ...)) (if (eq ivy-exit ...) (progn ...)))) (remove-hook (quote minibuffer-setup-hook) setup-hook))) (let ((session (or (plist-get extra-props :session) (if (or ... ... ...) nil caller)))) (if session (progn (progn (or (and ... t) (signal ... ...)) (let* (...) (aset v 27 ...))) (ivy--alist-set (quote ivy--sessions) session ivy-last)))) (ivy--cleanup)) (ivy-call))
  (progn (let ((init-fn (ivy-alist-setting ivy-init-fns-alist caller))) (if init-fn (progn (funcall init-fn)))) (if (equal overriding-local-map (quote (keymap))) (progn (keyboard-quit))) (setq caller (or caller this-command)) (let* ((ivy-recursive-last (and (active-minibuffer-window) ivy-last)) (ivy--display-function (if (or ivy-recursive-last (not (window-minibuffer-p))) (progn (ivy-alist-setting ivy-display-functions-alist caller))))) (setq update-fn (or update-fn (ivy-alist-setting ivy-update-fns-alist caller))) (setq unwind (or unwind (ivy-alist-setting ivy-unwind-fns-alist caller))) (setq ivy-last (make-ivy-state :prompt (ivy--update-prompt prompt) :collection collection :predicate predicate :require-match require-match :initial-input initial-input :history history :preselect preselect :keymap keymap :update-fn (if (eq update-fn (quote auto)) (function (lambda nil (let ... ...))) update-fn) :sort sort :action (ivy--compute-extra-actions action caller) :multi-action multi-action :frame (selected-frame) :window (selected-window) :buffer (current-buffer) :unwind unwind :re-builder re-builder :matcher matcher :dynamic-collection dynamic-collection :display-transformer-fn (ivy-alist-setting ivy--display-transformers-alist caller) :directory default-directory :extra-props extra-props :caller caller :def def)) (ivy--reset-state ivy-last) (unwind-protect (let ((fun (function ivy--minibuffer-setup)) setup-hook) (setq setup-hook (function (lambda nil (remove-hook ... setup-hook) (funcall fun)))) (unwind-protect (progn (add-hook (quote minibuffer-setup-hook) setup-hook) (let* (... ... ... ... ...) (if ... ... ...) (if ... ...))) (remove-hook (quote minibuffer-setup-hook) setup-hook))) (let ((session (or (plist-get extra-props :session) (if ... nil caller)))) (if session (progn (progn (or ... ...) (let* ... ...)) (ivy--alist-set (quote ivy--sessions) session ivy-last)))) (ivy--cleanup)) (ivy-call)))
  (progn (let ((--cl-keys-- --cl-rest--)) (while --cl-keys-- (cond ((memq (car --cl-keys--) (quote (:predicate :require-match :initial-input :history :preselect :def :keymap :update-fn :sort :action :multi-action :unwind :re-builder :matcher :dynamic-collection :extra-props :caller :allow-other-keys))) (setq --cl-keys-- (cdr (cdr --cl-keys--)))) ((car (cdr (memq ... --cl-rest--))) (setq --cl-keys-- nil)) (t (error "Keyword argument %s not one of (:predicate :require-match :initial-input :history :preselect :def :keymap :update-fn :sort :action :multi-action :unwind :re-builder :matcher :dynamic-collection :extra-props :caller)" (car --cl-keys--)))))) (progn (let ((init-fn (ivy-alist-setting ivy-init-fns-alist caller))) (if init-fn (progn (funcall init-fn)))) (if (equal overriding-local-map (quote (keymap))) (progn (keyboard-quit))) (setq caller (or caller this-command)) (let* ((ivy-recursive-last (and (active-minibuffer-window) ivy-last)) (ivy--display-function (if (or ivy-recursive-last (not ...)) (progn (ivy-alist-setting ivy-display-functions-alist caller))))) (setq update-fn (or update-fn (ivy-alist-setting ivy-update-fns-alist caller))) (setq unwind (or unwind (ivy-alist-setting ivy-unwind-fns-alist caller))) (setq ivy-last (make-ivy-state :prompt (ivy--update-prompt prompt) :collection collection :predicate predicate :require-match require-match :initial-input initial-input :history history :preselect preselect :keymap keymap :update-fn (if (eq update-fn (quote auto)) (function (lambda nil ...)) update-fn) :sort sort :action (ivy--compute-extra-actions action caller) :multi-action multi-action :frame (selected-frame) :window (selected-window) :buffer (current-buffer) :unwind unwind :re-builder re-builder :matcher matcher :dynamic-collection dynamic-collection :display-transformer-fn (ivy-alist-setting ivy--display-transformers-alist caller) :directory default-directory :extra-props extra-props :caller caller :def def)) (ivy--reset-state ivy-last) (unwind-protect (let ((fun (function ivy--minibuffer-setup)) setup-hook) (setq setup-hook (function (lambda nil ... ...))) (unwind-protect (progn (add-hook ... setup-hook) (let* ... ... ...)) (remove-hook (quote minibuffer-setup-hook) setup-hook))) (let ((session (or ... ...))) (if session (progn (progn ... ...) (ivy--alist-set ... session ivy-last)))) (ivy--cleanup)) (ivy-call))))
  (let* ((predicate (car (cdr (plist-member --cl-rest-- (quote :predicate))))) (require-match (car (cdr (plist-member --cl-rest-- (quote :require-match))))) (initial-input (car (cdr (plist-member --cl-rest-- (quote :initial-input))))) (history (car (cdr (plist-member --cl-rest-- (quote :history))))) (preselect (car (cdr (plist-member --cl-rest-- (quote :preselect))))) (def (car (cdr (plist-member --cl-rest-- (quote :def))))) (keymap (car (cdr (plist-member --cl-rest-- (quote :keymap))))) (update-fn (car (cdr (plist-member --cl-rest-- (quote :update-fn))))) (sort (car (cdr (plist-member --cl-rest-- (quote :sort))))) (action (car (cdr (plist-member --cl-rest-- (quote :action))))) (multi-action (car (cdr (plist-member --cl-rest-- (quote :multi-action))))) (unwind (car (cdr (plist-member --cl-rest-- (quote :unwind))))) (re-builder (car (cdr (plist-member --cl-rest-- (quote :re-builder))))) (matcher (car (cdr (plist-member --cl-rest-- (quote :matcher))))) (dynamic-collection (car (cdr (plist-member --cl-rest-- (quote :dynamic-collection))))) (extra-props (car (cdr (plist-member --cl-rest-- (quote :extra-props))))) (caller (car (cdr (plist-member --cl-rest-- (quote :caller)))))) (progn (let ((--cl-keys-- --cl-rest--)) (while --cl-keys-- (cond ((memq (car --cl-keys--) (quote ...)) (setq --cl-keys-- (cdr ...))) ((car (cdr ...)) (setq --cl-keys-- nil)) (t (error "Keyword argument %s not one of (:predicate :require-match :initial-input :history :preselect :def :keymap :update-fn :sort :action :multi-action :unwind :re-builder :matcher :dynamic-collection :extra-props :caller)" (car --cl-keys--)))))) (progn (let ((init-fn (ivy-alist-setting ivy-init-fns-alist caller))) (if init-fn (progn (funcall init-fn)))) (if (equal overriding-local-map (quote (keymap))) (progn (keyboard-quit))) (setq caller (or caller this-command)) (let* ((ivy-recursive-last (and (active-minibuffer-window) ivy-last)) (ivy--display-function (if (or ivy-recursive-last ...) (progn ...)))) (setq update-fn (or update-fn (ivy-alist-setting ivy-update-fns-alist caller))) (setq unwind (or unwind (ivy-alist-setting ivy-unwind-fns-alist caller))) (setq ivy-last (make-ivy-state :prompt (ivy--update-prompt prompt) :collection collection :predicate predicate :require-match require-match :initial-input initial-input :history history :preselect preselect :keymap keymap :update-fn (if (eq update-fn ...) (function ...) update-fn) :sort sort :action (ivy--compute-extra-actions action caller) :multi-action multi-action :frame (selected-frame) :window (selected-window) :buffer (current-buffer) :unwind unwind :re-builder re-builder :matcher matcher :dynamic-collection dynamic-collection :display-transformer-fn (ivy-alist-setting ivy--display-transformers-alist caller) :directory default-directory :extra-props extra-props :caller caller :def def)) (ivy--reset-state ivy-last) (unwind-protect (let ((fun ...) setup-hook) (setq setup-hook (function ...)) (unwind-protect (progn ... ...) (remove-hook ... setup-hook))) (let ((session ...)) (if session (progn ... ...))) (ivy--cleanup)) (ivy-call)))))
  ivy-read("git grep: " counsel-git-grep-function :initial-input nil :dynamic-collection t :keymap (keymap (24 keymap (4 . counsel-cd)) (3 keymap (13 . counsel-git-grep-switch-cmd)) (27 keymap (113 . counsel-git-grep-query-replace)) (12 . ivy-call-and-recenter)) :action counsel-git-grep-action :history counsel-git-grep-history :require-match t :caller counsel-git-grep)
  (let ((collection-function (if proj (function counsel-git-grep-proj-function) (function counsel-git-grep-function))) (default-directory (or initial-directory (if proj (car proj) (counsel-locate-git-root))))) (ivy-read "git grep: " collection-function :initial-input initial-input :dynamic-collection t :keymap counsel-git-grep-map :action (function counsel-git-grep-action) :history (quote counsel-git-grep-history) :require-match t :caller (quote counsel-git-grep)))
  (let ((proj-and-cmd (counsel--git-grep-cmd-and-proj cmd)) proj) (setq proj (car proj-and-cmd)) (setq counsel-git-grep-cmd (cdr proj-and-cmd)) (counsel-require-program counsel-git-grep-cmd) (let ((collection-function (if proj (function counsel-git-grep-proj-function) (function counsel-git-grep-function))) (default-directory (or initial-directory (if proj (car proj) (counsel-locate-git-root))))) (ivy-read "git grep: " collection-function :initial-input initial-input :dynamic-collection t :keymap counsel-git-grep-map :action (function counsel-git-grep-action) :history (quote counsel-git-grep-history) :require-match t :caller (quote counsel-git-grep))))
  counsel-git-grep()
  funcall-interactively(counsel-git-grep)
  call-interactively(counsel-git-grep nil nil)
  command-execute(counsel-git-grep)

emacs report bug information

In GNU Emacs 26.3 (build 1, x86_64-apple-darwin18.2.0, NS appkit-1671.20 Version 10.14.3 (Build 18D109))
 of 2019-09-02 built on builder10-14.porkrind.org
Windowing system distributor 'Apple', version 10.3.1894
Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
apply: Wrong type argument: listp, "git --no-pager grep -n --no-color -I -e \"test\" -i"
Type C-x 1 to delete the help window.
funcall-interactively: Buffer is read-only: #<buffer *Help*>

Configured using:
 'configure --with-ns '--enable-locallisppath=/Library/Application
 Support/Emacs/${version}/site-lisp:/Library/Application
 Support/Emacs/site-lisp' --with-modules'

Configured features:
NOTIFY ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS MODULES THREADS

Important settings:
  value of $LC_ALL: en_US.UTF-8
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  counsel-mode: t
  ivy-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message rmc puny format-spec rfc822 mml
mml-sec epa epg gnus-util rmail rmail-loaddefs mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail
rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils grep thingatpt
two-column counsel xdg advice xref project dired dired-loaddefs compile
comint ansi-color swiper cl-extra help-mode ivy derived easy-mmode
edmacro kmacro delsel ring ivy-faces ivy-overlay subr-x colir color
finder-inf package easymenu epg-config url-handlers url-parse
auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs
password-cache url-vars seq byte-opt gv bytecomp byte-compile cconv
cl-loaddefs cl-lib elec-pair time-date tooltip eldoc electric uniquify
ediff-hook vc-hooks lisp-float-type mwheel term/ns-win ns-win
ucs-normalize mule-util term/common-win tool-bar dnd fontset image
regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode
lisp-mode prog-mode register page menu-bar rfn-eshadow isearch timer
select scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame cl-generic cham georgian utf-8-lang misc-lang
vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932
hebrew greek romanian slovak czech european ethiopic indian cyrillic
chinese composite charscript charprop case-table epa-hook jka-cmpr-hook
help simple abbrev obarray minibuffer cl-preloaded nadvice loaddefs
button faces cus-face macroexp files text-properties overlay sha1 md5
base64 format env code-pages mule custom widget hashtable-print-readable
backquote threads kqueue cocoa ns multi-tty make-network-process emacs)

Memory information:
((conses 16 295108 32460)
 (symbols 48 25174 1)
 (miscs 40 69 161)
 (strings 32 41352 1521)
 (string-bytes 1 1181299)
 (vectors 16 39464)
 (vector-slots 8 781291 16622)
 (floats 8 216 317)
 (intervals 56 505 0)
 (buffers 992 15))

Thanks.

basil-conto commented 4 years ago

Thanks for the detailed report. Bisected to commit ce5b20a088911fdc25d3b811fb2c4d9a71ed01ff.

mcfarljm commented 4 years ago

This one was really bugging me. I submitted a pull request that does seem to fix it, but will need abo-abo to double-check that the fix is correct.