From b1b2fc68a340b615bb7cab5c2c6349c40aec26c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leon=20Schwarz=C3=A4ugl?= Date: Thu, 5 Mar 2026 23:14:13 +0100 Subject: [PATCH] chore[client]: improve emacs repolist --- SwarselSystems.org | 27 ++++++++++++++++++++------- files/emacs/init.el | 28 +++++++++++++++++++++------- 2 files changed, 41 insertions(+), 14 deletions(-) diff --git a/SwarselSystems.org b/SwarselSystems.org index 32536be..f51ce25 100644 --- a/SwarselSystems.org +++ b/SwarselSystems.org @@ -32138,17 +32138,30 @@ At work and when working on private projects, I often have to jump between sever We set a keybinding to this in [[#h:2b827c27-0de7-45ed-9d9e-6c511e2c6bb5][Custom Keybindings]]. #+begin_src emacs-lisp + (declare-function consult--read "consult") (defun swarsel/consult-magit-repos () (interactive) (require 'magit) - (let* ((repos (magit-list-repos)) - (repo (consult--read repos - :prompt "Magit repo: " - :require-match t - :history 'my/consult-magit-repos-history - :sort t))) - (magit-status repo))) + (let ((repos (magit-list-repos))) + (unless repos + (user-error "No repositories found in `magit-repository-directories'")) + (let ((repo + (if (or (fboundp 'consult--read) + (require 'consult nil t)) + (consult--read repos + :prompt "Magit repo: " + :require-match t + :history 'my/consult-magit-repos-history + :sort t) + (completing-read "Magit repo: " + repos + nil + t + nil + 'my/consult-magit-repos-history)))) + (when (and repo (> (length repo) 0)) + (magit-status repo))))) #+end_src **** org-mode: General setup diff --git a/files/emacs/init.el b/files/emacs/init.el index f613c31..f1adba1 100644 --- a/files/emacs/init.el +++ b/files/emacs/init.el @@ -162,16 +162,30 @@ create a new one." (define-key minibuffer-local-filename-completion-map [C-backspace] #'up-directory) +(declare-function consult--read "consult") + (defun swarsel/consult-magit-repos () (interactive) (require 'magit) - (let* ((repos (magit-list-repos)) - (repo (consult--read repos - :prompt "Magit repo: " - :require-match t - :history 'my/consult-magit-repos-history - :sort t))) - (magit-status repo))) + (let ((repos (magit-list-repos))) + (unless repos + (user-error "No repositories found in `magit-repository-directories'")) + (let ((repo + (if (or (fboundp 'consult--read) + (require 'consult nil t)) + (consult--read repos + :prompt "Magit repo: " + :require-match t + :history 'my/consult-magit-repos-history + :sort t) + (completing-read "Magit repo: " + repos + nil + t + nil + 'my/consult-magit-repos-history)))) + (when (and repo (> (length repo) 0)) + (magit-status repo))))) (defun swarsel/org-mode-setup () (variable-pitch-mode 1)