From 2031df182beae708b974f9d432ed03a704dc26ab Mon Sep 17 00:00:00 2001 From: Sameer Rahmani Date: Wed, 3 Feb 2021 20:50:17 +0000 Subject: [PATCH] Add paredit and rainbow delimeter to elisp cube --- core/cubes/elisp.el | 9 +++++++-- core/cubes/elisp/core.el | 8 +++++++- core/fg42/cube.el | 12 ++++++++++++ 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/core/cubes/elisp.el b/core/cubes/elisp.el index ba74912..da48f1b 100644 --- a/core/cubes/elisp.el +++ b/core/cubes/elisp.el @@ -28,10 +28,15 @@ (require 'fg42/cube) +(autoload 'fg42/elisp-hook-handler "cubes/elisp/core") + +(package-as-cube paredit) + + (defcube fg42/elisp-cube () - :requires '() + :requires '(paredit) ;;:modes '((emacs-lisp-mode . f42/elisp-cube-after-load)) - ;;:hooks (list (lambda (system) '(emacs-lisp-mode-hook . fssd))) + :hooks '((emacs-lisp-mode-hook . fg42/elisp-hook-handler)) ;;:auto-modes (list (lambda (system) '("\\.el\\'" . fg42/elisp-cube-mmm))) ;;:init #'iii :dependencies '((:name rainbow-delimiters :version :latest))) diff --git a/core/cubes/elisp/core.el b/core/cubes/elisp/core.el index 93bd6dc..564cf15 100644 --- a/core/cubes/elisp/core.el +++ b/core/cubes/elisp/core.el @@ -27,7 +27,13 @@ ;;; Code: - +(defun fg42/elisp-hook-handler () + "Configure the elisp mode." + (require 'rainbow-delimiters) + (require 'paredit) + (rainbow-delimiters-mode t) + (paredit-mode t) + (message "Elisp cube is done")) (provide 'cubes/elisp/core) diff --git a/core/fg42/cube.el b/core/fg42/cube.el index d8157fb..bce219f 100644 --- a/core/fg42/cube.el +++ b/core/fg42/cube.el @@ -45,6 +45,18 @@ ,@body))))) +(defmacro package-as-cube (name &rest body) + "Define a cube based on a package with the given NAME and BODY." + `(defun ,name (&optional __version__) + (lambda (system) + (cons + system + (list + :name ',name + :dependencies (list (list :name ',name :version (or __version__ :latest))) + ,@body))))) + + (defmacro active-cube? (name &rest body) "Run the BODY if the given cube NAME is activated." (declare (indent defun))