From 4389e2b1c5e26498b7e5ee2f8a770bb6968ecc0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellis=20Keny=C5=91?= Date: Fri, 17 Jun 2022 18:57:32 +0100 Subject: [PATCH] feat(vertico): add tramp sources to consult-dir Fix: #6258 --- modules/completion/vertico/config.el | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/modules/completion/vertico/config.el b/modules/completion/vertico/config.el index 8dd27abd4..690b26993 100644 --- a/modules/completion/vertico/config.el +++ b/modules/completion/vertico/config.el @@ -183,8 +183,34 @@ orderless." :bind (([remap list-directory] . consult-dir) :map vertico-map ("C-x C-d" . consult-dir) - ("C-x C-j" . consult-dir-jump-file))) + ("C-x C-j" . consult-dir-jump-file)) + :config + (when (featurep! :tools docker) + (defun +vertico--consult-dir-docker-hosts () + "Get a list of hosts from docker." + (when (require 'docker-tramp nil t) + (let ((hosts) + (docker-tramp-use-names t)) + (dolist (cand (docker-tramp--parse-running-containers)) + (let ((user (unless (string-empty-p (car cand)) + (concat (car cand) "@"))) + (host (car (cdr cand)))) + (push (concat "/docker:" user host ":/") hosts))) + hosts))) + (defvar +vertico--consult-dir-source-tramp-docker + `(:name "Docker" + :narrow ?d + :category file + :face consult-file + :history file-name-history + :items ,#'+vertico--consult-dir-docker-hosts) + "Docker candiadate source for `consult-dir'.") + + (add-to-list 'consult-dir-sources '+vertico--consult-dir-source-tramp-docker t)) + + (add-to-list 'consult-dir-sources 'consult-dir--source-tramp-ssh t) + (add-to-list 'consult-dir-sources 'consult-dir--source-tramp-local t)) (use-package! consult-flycheck :when (featurep! :checkers syntax)