From ada2ae0a0f7b536563e48d96549aa35e57294e5a Mon Sep 17 00:00:00 2001 From: Eric Danan Date: Fri, 2 Dec 2016 22:17:10 +0100 Subject: [PATCH] execute find-file/dir/buffer action in ivy-state-buffer needed since swiper commit 6519ecc --- counsel-projectile.el | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/counsel-projectile.el b/counsel-projectile.el index c1b7ed6..9a686b6 100644 --- a/counsel-projectile.el +++ b/counsel-projectile.el @@ -78,11 +78,12 @@ Like `projectile-current-project-files', but fontifies non-visited file names wi (defun counsel-projectile--find-file-action (file &optional other-window) "Find FILE and run `projectile-find-file-hook'." - (funcall (if other-window - 'find-file-other-window - 'find-file) - (projectile-expand-root file)) - (run-hooks 'projectile-find-file-hook)) + (with-current-buffer (ivy-state-buffer ivy-last) + (funcall (if other-window + 'find-file-other-window + 'find-file) + (projectile-expand-root file)) + (run-hooks 'projectile-find-file-hook))) (defun counsel-projectile--find-file-other-window-action (file) "Find FILE in another window and run `projectile-find-file-hook'." @@ -119,11 +120,12 @@ With a prefix ARG invalidates the cache first." (defun counsel-projectile--find-dir-action (dir &optional other-window) "Visit DIR with dired and run `projectile-find-dir-hook'." - (funcall (if other-window - 'dired-other-window - 'dired) - (projectile-expand-root dir)) - (run-hooks 'projectile-find-dir-hook)) + (with-current-buffer (ivy-state-buffer ivy-last) + (funcall (if other-window + 'dired-other-window + 'dired) + (projectile-expand-root dir)) + (run-hooks 'projectile-find-dir-hook))) (defun counsel-projectile--find-dir-other-window-action (dir) "Visit DIR with dired in another window and run `projectile-find-dir-hook'." @@ -161,13 +163,14 @@ Like `projectile-project-buffer-names', but propertize buffer names as in `ivy-- (defun counsel-projectile--switch-buffer-action (buffer &optional other-window) "Switch to BUFFER. BUFFER may be a string or nil." - (cond - ((zerop (length buffer)) - (switch-to-buffer ivy-text nil 'force-same-window)) - (other-window - (switch-to-buffer-other-window buffer)) - (t - (switch-to-buffer buffer nil 'force-same-window)))) + (with-current-buffer (ivy-state-buffer ivy-last) + (cond + ((zerop (length buffer)) + (switch-to-buffer ivy-text nil 'force-same-window)) + (other-window + (switch-to-buffer-other-window buffer)) + (t + (switch-to-buffer buffer nil 'force-same-window))))) (defun counsel-projectile--switch-buffer-other-window-action (buffer) "Switch to BUFFER in other window.