From 8b93e8b15cc081860a8eb156b1584ef60b6bc9e4 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 20 Jun 2022 02:05:03 +0200 Subject: [PATCH] fix(tabs): wrong-type-arg stringp (Git "...") error Newer versions of project.el changed the return value of `project-current` to a three-part list, rather than a cons cell. centaur-tabs expects the old signature and we get a type error. This advice ensures centaur-tabs works with old or new versions of project, and is a temporary measure until the issue is resolved upstream. Ref: ema2159/centaur-tabs#181 Fix: #6280 --- modules/ui/tabs/config.el | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/modules/ui/tabs/config.el b/modules/ui/tabs/config.el index fba46edd1..d55cae640 100644 --- a/modules/ui/tabs/config.el +++ b/modules/ui/tabs/config.el @@ -19,7 +19,20 @@ (defun +tabs-disable-centaur-tabs-mode-maybe-h () "Disable `centaur-tabs-mode' in current buffer." (when (centaur-tabs-mode-on-p) - (centaur-tabs-local-mode))))) + (centaur-tabs-local-mode)))) + + (defadvice! +tabs--fixed-centaur-tabs-project-name-a () + :override #'centaur-tabs-project-name + (let ((project-name (cdr (project-current)))) + ;; In earlier versions of project.el, `project-current' returned a cons + ;; cell (VCBACKEND . PROJECTROOT). In more recent versions it returns + ;; (TYPE VCBACKEND PROJECTROOT), which throws an error. + ;; REVIEW This should be upstreamed. + (when (listp project-name) + (setq project-name (cadr project-name))) + (if project-name + (format "Project: %s" (expand-file-name project-name)) + centaur-tabs-common-group-name)))) ;; TODO tab-bar-mode (emacs 27)