Move setup-defines into acdw-setup.el
This commit is contained in:
parent
9b1789697d
commit
6a6d966432
|
@ -194,44 +194,7 @@ say, `tool-bar-mode' once to toggle the tool bar back on."
|
||||||
;;; `setup'
|
;;; `setup'
|
||||||
(straight-use-package '(setup :host nil :repo "https://git.sr.ht/~pkal/setup"))
|
(straight-use-package '(setup :host nil :repo "https://git.sr.ht/~pkal/setup"))
|
||||||
(require 'setup)
|
(require 'setup)
|
||||||
|
(require 'acdw-setup)
|
||||||
(setup setup
|
|
||||||
;; Install a package using `straight-use-package'
|
|
||||||
(setup-define :straight
|
|
||||||
(lambda (recipe)
|
|
||||||
`(straight-use-package ',recipe))
|
|
||||||
:documentation
|
|
||||||
"Install RECIPE with `straight-use-package'.
|
|
||||||
This macro can be used as HEAD, and will replace itself with the
|
|
||||||
first RECIPE's package."
|
|
||||||
:repeatable t
|
|
||||||
:shorthand (lambda (sexp)
|
|
||||||
(let ((recipe (cadr sexp)))
|
|
||||||
(if (consp recipe)
|
|
||||||
(car recipe)
|
|
||||||
recipe))))
|
|
||||||
;; Install a package with straight, but only under a condition
|
|
||||||
(setup-define :straight-if
|
|
||||||
(lambda (recipe condition)
|
|
||||||
`(if ,condition
|
|
||||||
(straight-use-package ',recipe)
|
|
||||||
,(setup-quit)))
|
|
||||||
:documentation
|
|
||||||
"Install RECIPE with `straight-use-package' when CONDITION is met.
|
|
||||||
If CONDITION is false, stop evaluating the body. This macro can
|
|
||||||
be used as HEAD, and will replace itself with the RECIPE's
|
|
||||||
package. This macro is not repeatable."
|
|
||||||
:repeatable nil
|
|
||||||
:shorthand (lambda (sexp)
|
|
||||||
(let ((recipe (cadr sexp)))
|
|
||||||
(if (consp recipe) (car recipe) recipe))))
|
|
||||||
;; Hotfix
|
|
||||||
(setup-define :file-match
|
|
||||||
(lambda (pat)
|
|
||||||
`(add-to-list 'auto-mode-alist (cons ,pat ',(setup-get 'mode))))
|
|
||||||
:documentation "Associate the current mode with files that match PAT."
|
|
||||||
:debug '(form)
|
|
||||||
:repeatable t))
|
|
||||||
|
|
||||||
;;; `no-littering'
|
;;; `no-littering'
|
||||||
(setup (:straight no-littering)
|
(setup (:straight no-littering)
|
||||||
|
|
|
@ -0,0 +1,71 @@
|
||||||
|
;;; acdw-setup.el -- my `setup' commands -*- lexical-binding: t -*-
|
||||||
|
|
||||||
|
;; Author: Case Duckworth <acdw@acdw.net>
|
||||||
|
|
||||||
|
;; This file is NOT part of GNU Emacs.
|
||||||
|
|
||||||
|
;;; License:
|
||||||
|
;; Everyone is permitted to do whatever with this software, without
|
||||||
|
;; limitation. This software comes without any warranty whatsoever,
|
||||||
|
;; but with two pieces of advice:
|
||||||
|
;; - Don't hurt yourself.
|
||||||
|
;; - Make good choices.
|
||||||
|
|
||||||
|
;;; Code:
|
||||||
|
|
||||||
|
(setup-define :autoload
|
||||||
|
(lambda (func)
|
||||||
|
(if (listp func)
|
||||||
|
(let ((plist (cdr func)))
|
||||||
|
`(autoload ',(car func)
|
||||||
|
,(symbol-name (setup-get 'feature))
|
||||||
|
,(plist-get plist :docstring)
|
||||||
|
,(plist-get plist :interactive)
|
||||||
|
,(plist-get plist :type)))
|
||||||
|
`(autoload ',func ,(symbol-name (setup-get 'feature)))))
|
||||||
|
:documentation "Autoload FUNC from FEATURE.
|
||||||
|
`:autoload' can be passed a list with keywords:
|
||||||
|
:docstring - The DOCSTRING to give the autoloaded function.
|
||||||
|
:interactive - Whether the function is INTERACTIVE or not.
|
||||||
|
:type - Either `nil', `keymap', or `macro': see `autoload' for details."
|
||||||
|
:repeatable t)
|
||||||
|
|
||||||
|
(setup-define :file-match
|
||||||
|
;; Hotfix; patch here: https://github.com/phikal/setup.el/pull/1
|
||||||
|
(lambda (pat)
|
||||||
|
`(add-to-list 'auto-mode-alist (cons ,pat ',(setup-get 'mode))))
|
||||||
|
:documentation "Associate the current mode with files that match PAT."
|
||||||
|
:debug '(form)
|
||||||
|
:repeatable t)
|
||||||
|
|
||||||
|
(setup-define :straight
|
||||||
|
(lambda (recipe)
|
||||||
|
`(straight-use-package ',recipe))
|
||||||
|
:documentation
|
||||||
|
"Install RECIPE with `straight-use-package'.
|
||||||
|
This macro can be used as HEAD, and will replace itself with the
|
||||||
|
first RECIPE's package."
|
||||||
|
:repeatable t
|
||||||
|
:shorthand (lambda (sexp)
|
||||||
|
(let ((recipe (cadr sexp)))
|
||||||
|
(if (consp recipe)
|
||||||
|
(car recipe)
|
||||||
|
recipe))))
|
||||||
|
|
||||||
|
(setup-define :straight-if
|
||||||
|
(lambda (recipe condition)
|
||||||
|
`(if ,condition
|
||||||
|
(straight-use-package ',recipe)
|
||||||
|
,(setup-quit)))
|
||||||
|
:documentation
|
||||||
|
"Install RECIPE with `straight-use-package' when CONDITION is met.
|
||||||
|
If CONDITION is false, stop evaluating the body. This macro can
|
||||||
|
be used as HEAD, and will replace itself with the RECIPE's
|
||||||
|
package. This macro is not repeatable."
|
||||||
|
:repeatable nil
|
||||||
|
:shorthand (lambda (sexp)
|
||||||
|
(let ((recipe (cadr sexp)))
|
||||||
|
(if (consp recipe) (car recipe) recipe))))
|
||||||
|
|
||||||
|
(provide 'acdw-setup)
|
||||||
|
;;; acdw-setup.el ends here
|
Loading…
Reference in New Issue