branch: elpa/helm commit 87db6ba09505d18e5c611041d03ae9f0d897e283 Author: Thierry Volpiatto <thie...@posteo.net> Commit: Thierry Volpiatto <thie...@posteo.net>
Make HFF consistent with buffers for switching to tab --- helm-buffers.el | 18 ++++-------------- helm-files.el | 14 ++++++++++---- helm-utils.el | 14 ++++++++++++++ 3 files changed, 28 insertions(+), 18 deletions(-) diff --git a/helm-buffers.el b/helm-buffers.el index 7997b1bcce..1852fd4ce6 100644 --- a/helm-buffers.el +++ b/helm-buffers.el @@ -972,20 +972,10 @@ If REGEXP-FLAG is given use `query-replace-regexp'." "Run switch to other frame action from `helm-source-buffers-list'." 'helm-buffer-switch-to-buffer-other-frame) -(defun helm-buffers-switch-buffers-in-tab (candidate) - "Switch marked buffers in a new tab. -If no marked candidates or only one marked, try to switch to CANDIDATE in its -tab if some, otherwise, display it in a new tab." - (when (fboundp 'switch-to-buffer-other-tab) - (let ((bufs (helm-marked-candidates))) - (if (cdr bufs) - (progn - (switch-to-buffer-other-tab (car bufs)) - (helm-window-show-buffers bufs)) - (if helm-current-prefix-arg - (switch-to-buffer-other-tab candidate) - (helm-buffers-maybe-switch-to-buffer-in-tab - candidate #'switch-to-buffer-other-tab)))))) +(defun helm-buffers-switch-buffers-in-tab (_candidate) + "Display marked buffers in a new tab. +See `helm-buffers-switch-buffers-in-tab-1' for more infos." + (helm-buffers-switch-buffers-in-tab-1 (helm-marked-candidates))) (helm-make-command-from-action helm-buffers-switch-to-buffer-new-tab "Run switch to buffer in other tab action from `helm-source-buffers-list'." diff --git a/helm-files.el b/helm-files.el index d5a2858d64..17901bcd32 100644 --- a/helm-files.el +++ b/helm-files.el @@ -266,7 +266,7 @@ Should not be used among other sources.") ([C-c DEL] . helm-ff-run-toggle-auto-update)) nil 'helm-ff-delete-char-backward--exit-fn) (when (fboundp 'tab-bar-mode) - (define-key map (kbd "C-c C-t") 'helm-ff-find-file-other-tab)) + (define-key map (kbd "C-c C-t") 'helm-ff-run-find-file-other-tab)) map) "Keymap for `helm-find-files'.") @@ -869,7 +869,7 @@ want to use it, helm is still providing "Find file other frame `C-c C-o'" 'find-file-other-frame (lambda () (and (fboundp 'tab-bar-mode) "Find file other tab `C-c C-t'")) - 'find-file-other-tab + 'helm-ff-find-file-other-tab "Print File `C-c p, C-u to refresh'" 'helm-ff-print "Locate `C-x C-f, C-u to specify locate db'" 'helm-ff-locate) "Actions for `helm-find-files'." @@ -6438,9 +6438,15 @@ selecting them." ;; unspecified e.g user hit C-k foo RET. (t (find-file candidate))))))) -(helm-make-command-from-action helm-ff-find-file-other-tab +(defun helm-ff-find-file-other-tab (_candidate) + "Display marked files in a new tab. +See `helm-buffers-switch-buffers-in-tab-1' for more infos." + (helm-buffers-switch-buffers-in-tab-1 + (mapcar 'find-file-noselect (helm-marked-candidates)))) + +(helm-make-command-from-action helm-ff-run-find-file-other-tab "Run find file in other tab action from `helm-find-files'." - 'find-file-other-tab + 'helm-ff-find-file-other-tab (cl-assert (fboundp 'tab-bar-mode) nil "Tab-bar-mode not available")) (defun helm-ff--new-dirs-to-update (path) diff --git a/helm-utils.el b/helm-utils.el index 94d32024c6..4e4b125c40 100644 --- a/helm-utils.el +++ b/helm-utils.el @@ -350,6 +350,20 @@ If a prefix arg is given split windows vertically." when (member tab-name (split-string (cdr (assq 'name tab)) ", " t)) return tab)) +(defun helm-buffers-switch-buffers-in-tab-1 (buffers) + "Display BUFFERS in a new tab. +If only one buffer in BUFFERS, try to switch to it in its +tab if some, otherwise, display it in a new tab." + (when (fboundp 'switch-to-buffer-other-tab) + (if (cdr buffers) + (progn + (switch-to-buffer-other-tab (car buffers)) + (helm-window-show-buffers buffers)) + (if helm-current-prefix-arg + (switch-to-buffer-other-tab (car buffers)) + (helm-buffers-maybe-switch-to-buffer-in-tab + (car buffers) #'switch-to-buffer-other-tab))))) + (defun helm--get-tab-names () (let ((tab-bar-tab-name-function #'tab-bar-tab-name-all)) (mapcar (lambda (tab)