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'
|
||||
(straight-use-package '(setup :host nil :repo "https://git.sr.ht/~pkal/setup"))
|
||||
(require '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))
|
||||
(require 'acdw-setup)
|
||||
|
||||
;;; `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