diff --git a/oni/home/config/rincewind.scm b/oni/home/config/rincewind.scm index e2b73f1..7ae0be3 100644 --- a/oni/home/config/rincewind.scm +++ b/oni/home/config/rincewind.scm @@ -86,7 +86,7 @@ #:select (home-emacs-service-type home-emacs-configuration home-emacs-helpful-configuration - home-emacs-yasnippet-capf-service-type + home-emacs-yasnippet-capf-configuration home-emacs-dashboard-service-type home-emacs-dashboard-configuration home-emacs-eros-service-type @@ -415,6 +415,8 @@ (configurations (list (local-file "../services/emacs/oni-helpful.el"))))) + (yasnippet-capf + (home-emacs-yasnippet-capf-configuration)) (configurations (list (local-file "../services/emacs/init.el") @@ -427,7 +429,6 @@ "(load custom-file)\n" "(provide 'init)\n" ";;; init.el ends here\n"))))) - (service home-emacs-yasnippet-capf-service-type) (service home-emacs-dashboard-service-type (home-emacs-dashboard-configuration (configurations diff --git a/oni/home/services/emacs.scm b/oni/home/services/emacs.scm index 62dfe00..ec1d49e 100644 --- a/oni/home/services/emacs.scm +++ b/oni/home/services/emacs.scm @@ -52,8 +52,6 @@ #:export (home-emacs-service-type home-emacs-configuration home-emacs-helpful-configuration - - home-emacs-yasnippet-capf-service-type home-emacs-yasnippet-capf-configuration home-emacs-dashboard-service-type @@ -118,6 +116,16 @@ (define-maybe home-emacs-helpful-configuration) +(define-configuration/no-serialization home-emacs-yasnippet-capf-configuration + (package + (package emacs-yasnippet-capf) + "Package to use for setting emacs-yasnippet-capf.") + (configurations + (text-config '()) + "Configuration for emacs-yasnippet-capf.")) + +(define-maybe home-emacs-yasnippet-capf-configuration) + (define-configuration/no-serialization home-emacs-configuration (package (package emacs) @@ -128,6 +136,9 @@ (helpful-configuration maybe-home-emacs-helpful-configuration "Configuration for helpful.") + (yasnippet-capf + maybe-home-emacs-yasnippet-capf-configuration + "Configuration for yasnippet-capf.") (configurations (text-config '()) "A list of other configuration files to autoload")) @@ -139,7 +150,12 @@ (home-emacs-configuration-helpful-configuration config)) (home-emacs-helpful-configuration-package (maybe-value - (home-emacs-configuration-helpful-configuration config))))))) + (home-emacs-configuration-helpful-configuration config)))) + (when (maybe-value-set? + (home-emacs-configuration-yasnippet-capf config)) + (home-emacs-yasnippet-capf-configuration-package + (maybe-value + (home-emacs-configuration-yasnippet-capf config))))))) (define (home-emacs-extensions original-config extension-configs) (home-emacs-configuration @@ -173,6 +189,16 @@ (maybe-value (home-emacs-configuration-helpful-configuration config)))) "") + (if (maybe-value-set? + (home-emacs-configuration-yasnippet-capf config)) + (serialize-text-config + config (append + (list (mixed-text-file "yasnippet-capf-config" + "(with-eval-after-load 'minibuffer (add-to-list 'completion-at-point-functions #'yasnippet-capf))\n")) + (home-emacs-yasnippet-capf-configuration-configurations + (maybe-value + (home-emacs-configuration-yasnippet-capf config))))) + "") (format #f "(setq custom-file (expand-file-name ~s user-emacs-directory))~%" (home-emacs-configuration-custom-file config)) "(load custom-file :noerror)\n" @@ -197,41 +223,6 @@ (default-value (home-emacs-configuration)) (description "Install and configure Emacs."))) -;;; Emacs Yasnippet Capf - -(define-configuration/no-serialization home-emacs-yasnippet-capf-configuration - (package - (package emacs-yasnippet-capf) - "Package to use for setting emacs-yasnippet-capf.") - (configurations - (text-config '()) - "Configuration for emacs-yasnippet-capf.")) - -(define (add-emacs-yasnippet-capf config) - (home-emacs-extension - (configurations - (append - (list (mixed-text-file "yasnippet-capf-config" - "(with-eval-after-load 'minibuffer (add-to-list 'completion-at-point-functions #'yasnippet-capf))\n")) - (home-emacs-yasnippet-capf-configuration-configurations config))))) - -(define (add-emacs-yasnippet-capf-packages config) - (list (home-emacs-yasnippet-capf-configuration-package config))) - -(define home-emacs-yasnippet-capf-service-type - (service-type - (name 'home-yasnippet-capf) - (extensions - (list (service-extension - home-emacs-service-type - add-emacs-yasnippet-capf) - (service-extension - home-profile-service-type - add-emacs-yasnippet-capf-packages))) - (compose identity) - (default-value (home-emacs-yasnippet-capf-configuration)) - (description "Install and configure emacs-yasnippet-capf."))) - ;;; Emacs Dashboard (define-configuration/no-serialization home-emacs-dashboard-configuration