From a511d5ea008cfea672b4afb63503d6537ece88dd Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 21 Feb 2017 16:03:12 -0500 Subject: [PATCH] Move core/autoload/set.el into core/core-lib.el --- core/autoload/set.el | 40 ---------------------------------------- core/core-lib.el | 30 ++++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 40 deletions(-) delete mode 100644 core/autoload/set.el diff --git a/core/autoload/set.el b/core/autoload/set.el deleted file mode 100644 index e215bdf8c..000000000 --- a/core/autoload/set.el +++ /dev/null @@ -1,40 +0,0 @@ -;;; set.el -(provide 'doom-lib-set) - -;; This provides a centralized configuration system that a) won't evaluate its -;; arguments if it doesn't need to (performance), b) won't complain if the -;; setting doesn't exist and c) is more elegant than a bunch of `@after' blocks, -;; which can cause intermittent stuttering in large quantities. I'm a fan of -;; concise, do-what-I-mean front-facing configuration, believe it or not. -;; -;; Plus, it can benefit from byte-compilation. - -;;;###autoload -(defmacro @def-setting (keyword arglist &optional docstring &rest forms) - "Define a setting macro. Like `defmacro', this should return a form to be -executed when called with `@set'. FORMS are not evaluated until `@set' calls it." - (declare (indent defun) (doc-string 3)) - (unless (keywordp keyword) - (error "Not a valid property name: %s" keyword)) - `(defun ,(intern (format "doom-setting--setter%s" keyword)) ,arglist - ,docstring - ,@forms)) - -;;;###autoload -(defmacro @set (keyword &rest values) - "Set an option defined by `@def-setting'. Skip if doesn't exist." - (declare (indent defun)) - (unless values - (error "Empty @set for %s" keyword)) - (let ((fn (intern (format "doom-setting--setter%s" keyword)))) - (if (functionp fn) - (apply fn (eval `(list ,@values))) - (when doom-debug-mode - (message "No setting found for %s" keyword))))) - - -;; (defun describe-setting () -;; (interactive) -;; ;; TODO -;; (error "Not implemented yet")) - diff --git a/core/core-lib.el b/core/core-lib.el index 15c3eaf72..18c838894 100644 --- a/core/core-lib.el +++ b/core/core-lib.el @@ -149,5 +149,35 @@ Examples: (t (user-error "@associate invalid rules for mode [%s] (in %s) (match %s) (files %s)" mode in match files)))))) + +;; Provides a centralized configuration system that a) won't evaluate its +;; arguments if it doesn't need to (performance), b) won't complain if the +;; setting doesn't exist and c) is more elegant than a bunch of `@after' blocks, +;; which can cause intermittent stuttering in large quantities. I'm a fan of +;; concise, do-what-I-mean front-facing configuration, believe it or not. +;; +;; Plus, it can benefit from byte-compilation. + +(defmacro @def-setting (keyword arglist &optional docstring &rest forms) + "Define a setting macro. Like `defmacro', this should return a form to be +executed when called with `@set'. FORMS are not evaluated until `@set' calls it." + (declare (indent defun) (doc-string 3)) + (unless (keywordp keyword) + (error "Not a valid property name: %s" keyword)) + `(defun ,(intern (format "doom-setting--setter%s" keyword)) ,arglist + ,docstring + ,@forms)) + +(defmacro @set (keyword &rest values) + "Set an option defined by `@def-setting'. Skip if doesn't exist." + (declare (indent defun)) + (unless values + (error "Empty @set for %s" keyword)) + (let ((fn (intern (format "doom-setting--setter%s" keyword)))) + (if (functionp fn) + (apply fn (eval `(list ,@values))) + (when doom-debug-mode + (message "No setting found for %s" keyword))))) + (provide 'core-lib) ;;; core-lib.el ends here