From ca83649a324128fafa33fad2dc58f54eb1c0480c Mon Sep 17 00:00:00 2001 From: Joe Wreschnig Date: Wed, 14 Jun 2017 20:24:01 +0200 Subject: [PATCH] Allow `:diminish` with no arguments MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit When given no arguments, have :diminish assume it should diminish a mode named after the current package (the package’s name, with “-mode” appended, if it’s not already) to an empty string. When given only a string to diminish an implicit package name to, do not append “-mode” to the package name if it already ends with it. (This is a backwards-incompatible change if someone was diminishing a package named “foo-mode” implementing `foo-mode-mode`.) Add test cases for `use-package-normalize-diminish`. This addresses some of the redundancy mentioned in issue https://github.com/jwiegley/use-package/issues/288. --- lisp/use-package/use-package.el | 4 +++- test/lisp/use-package/use-package-tests.el | 12 ++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/lisp/use-package/use-package.el b/lisp/use-package/use-package.el index 593a680eee3..d397e0e4072 100644 --- a/lisp/use-package/use-package.el +++ b/lisp/use-package/use-package.el @@ -1409,10 +1409,12 @@ deferred until the prefix key sequence is pressed." SYMBOL (SYMBOL . STRING)" (cond + ((not arg) + (list (use-package-as-mode name))) ((symbolp arg) (list arg)) ((stringp arg) - (list (cons (intern (concat (use-package-as-string name) "-mode")) arg))) + (list (cons (use-package-as-mode name) arg))) ((and (consp arg) (stringp (cdr arg))) (list arg)) ((and (not recursed) (listp arg) (listp (cdr arg))) diff --git a/test/lisp/use-package/use-package-tests.el b/test/lisp/use-package/use-package-tests.el index 625e95ca587..c52c3810439 100644 --- a/test/lisp/use-package/use-package-tests.el +++ b/test/lisp/use-package/use-package-tests.el @@ -72,6 +72,18 @@ ) +(ert-deftest use-package-normalize-diminish () + (should (equal (use-package-normalize-diminish 'foopkg :diminish nil) + '(foopkg-mode))) + (should (equal (use-package-normalize-diminish 'foopkg :diminish 'bar) + '(bar))) + (should (equal (use-package-normalize-diminish 'foopkg :diminish "bar") + '((foopkg-mode . "bar")))) + (should (equal (use-package-normalize-diminish 'foopkg :diminish 'foo-mode) + '(foo-mode))) + (should (equal (use-package-normalize-diminish 'foopkg :diminish '(foo . "bar")) + '((foo . "bar"))))) + ;; Local Variables: ;; indent-tabs-mode: nil ;; no-byte-compile: t -- 2.39.2