-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow to use quelpa-use-package as source of truth for quelpa-cache #26
base: master
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -37,17 +37,35 @@ | |
|
||
;;; Code: | ||
|
||
(defvar quelpa-use-package-inhibit-loading-quelpa nil | ||
(defgroup quelpa-use-package nil | ||
"Quelpa handler for `use-package'." | ||
:prefix "quelpa-use-package" | ||
:group 'use-package) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Should the parent group be |
||
|
||
(defcustom quelpa-use-package-inhibit-loading-quelpa nil | ||
"If non-nil, `quelpa-use-package' will do its best to avoid | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The first line of a docstring should be a complete sentence. If this one's is being updated, it might as well be fixed. |
||
loading `quelpa' unless necessary. This improves performance, but | ||
can prevent packages from being updated automatically.") | ||
can prevent packages from being updated automatically." | ||
:type 'boolean | ||
:group 'quelpa-use-package) | ||
|
||
(defcustom quelpa-use-package-as-source-of-truth nil | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The name of this variable seems unclear, and a bit mysterious. Could it be given a more descriptive one? |
||
"If non-nil, only packages installed via this will be managed by `quelpa'. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It may be unclear what "this" refers to. As well, it seems unclear what "managed by Quelpa" means. |
||
This option will disable `quelpa-persistent-cache-p'." | ||
:type 'boolean | ||
:group 'quelpa-use-package) | ||
|
||
(require 'cl-lib) | ||
(unless quelpa-use-package-inhibit-loading-quelpa | ||
(require 'quelpa)) | ||
(require 'use-package-core) | ||
|
||
(defvar quelpa-use-package-keyword :quelpa) | ||
(defvar quelpa-cache) | ||
(defvar quelpa-persistent-cache-p) | ||
|
||
(when quelpa-use-package-as-source-of-truth | ||
(setq quelpa-persistent-cache-p nil)) | ||
Comment on lines
+67
to
+68
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This form belongs in the |
||
|
||
;; insert `:quelpa' keyword after `:unless' so that quelpa only runs | ||
;; if either `:if', `:when', `:unless' or `:requires' are satisfied | ||
|
@@ -76,10 +94,15 @@ can prevent packages from being updated automatically.") | |
;; compiled or evaluated. | ||
(if args | ||
(use-package-concat | ||
`((unless (and quelpa-use-package-inhibit-loading-quelpa | ||
`((if (and quelpa-use-package-inhibit-loading-quelpa | ||
(package-installed-p ',(pcase (car args) | ||
((pred symbolp) (car args)) | ||
((pred listp) (car (car args)))))) | ||
(when quelpa-use-package-as-source-of-truth | ||
(setq quelpa-cache (append (when (boundp 'quelpa-cache) quelpa-cache) | ||
',(pcase (car args) | ||
((pred symbolp) (list args)) | ||
((pred listp) args))))) | ||
(apply 'quelpa ',args))) | ||
body) | ||
body))) | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's not harmful to specify the prefix, but it's unnecessary for options specified later in the same file.