From 22d38c37996d3aa0020b2affd1012248de7246ea Mon Sep 17 00:00:00 2001 From: Case Duckworth Date: Thu, 23 Sep 2021 17:08:47 -0500 Subject: Break out cus-edit functions --- init.el | 29 +++-------------------------- lisp/acdw-cus-edit.el | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 26 deletions(-) create mode 100644 lisp/acdw-cus-edit.el diff --git a/init.el b/init.el index b0d9d77..48f3d39 100644 --- a/init.el +++ b/init.el @@ -345,6 +345,7 @@ In short, DO NOT USE THIS FUNCTION!!!" (blink-cursor-mode +1)) (setup cus-edit + (:also-load acdw-cus-edit) (:option custom-file (acdw/dir "custom.el") custom-magic-show nil custom-magic-show-button t @@ -359,34 +360,10 @@ In short, DO NOT USE THIS FUNCTION!!!" ;; `Custom-mode-hook' fires /before/ the widgets are built, so I have to ;; install advice after the widgets are made. - (:advise custom-buffer-create :after - (defun custom-buffer@expand-widgets (&rest _) - "Expand descriptions in `Custom-mode' buffers." - (interactive) - ;; "More/Hide" widgets (thanks alphapapa!) - (widget-map-buttons (lambda (widget _) - (pcase (widget-get widget :off) - ("More" (widget-apply-action widget))) - nil)) - ;; "Show Value" widgets (the little triangles) - (widget-map-buttons (lambda (widget _) - (pcase (widget-get widget :off) - ("Show Value" - (widget-apply-action widget))) - nil)))) + (:advise custom-buffer-create-internal :after #'acdw-cus/expand-widgets) (:with-mode Custom-mode - (:local-set imenu-generic-expression ; thanks u/oantolin! - '(("Faces" (rx (seq bol - (or "Show" "Hide") " " - (group (zero-or-more nonl)) - " face: [sample]")) - 1) - ("Variables" (rx (seq bol - (or "Show Value" "Hide") " " - (group (zero-or-more - (not (any "\n:")))))) - 1))))) + (:local-set imenu-generic-expression acdw-cus/imenu-generic-expression))) (setup debugger (:hook visual-line-mode)) diff --git a/lisp/acdw-cus-edit.el b/lisp/acdw-cus-edit.el new file mode 100644 index 0000000..c40f137 --- /dev/null +++ b/lisp/acdw-cus-edit.el @@ -0,0 +1,32 @@ +;;; acdw-cus-edit.el -*- lexical-binding: t -*- + +(defun acdw-cus/expand-widgets (&rest _) + "Expand descriptions in `Custom-mode' buffers." + (interactive) + ;; "More/Hide" widgets (thanks alphapapa!) + (widget-map-buttons (lambda (widget _) + (pcase (widget-get widget :off) + ("More" (widget-apply-action widget))) + nil)) + ;; "Show Value" widgets (the little triangles) + (widget-map-buttons (lambda (widget _) + (pcase (widget-get widget :off) + ("Show Value" + (widget-apply-action widget))) + nil))) + +(defvar acdw-cus/imenu-generic-expression ; thanks u/oantolin! + '(("Faces" (rx (seq bol + (or "Show" "Hide") " " + (group (zero-or-more nonl)) + " face: [sample]")) + 1) + ("Variables" (rx (seq bol + (or "Show Value" "Hide") " " + (group (zero-or-more + (not (any "\n:")))))) + 1)) + "Show faces and variables in `imenu'.") + +(provide 'acdw/cus-edit) +;;; acdw-cus-edit.el ends here -- cgit 1.4.1-21-gabe81