mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-31 04:41:23 -08:00
Normalize the code emitted by :mode, :interpreter, :magic, etc
This commit is contained in:
parent
36cf799853
commit
28084551ac
2 changed files with 62 additions and 52 deletions
71
up-core.el
71
up-core.el
|
|
@ -973,21 +973,20 @@ deferred until the prefix key sequence is pressed."
|
|||
|
||||
(defun use-package-handler/:bind-keymap
|
||||
(name keyword arg rest state &optional override)
|
||||
(let ((form
|
||||
(mapcar
|
||||
#'(lambda (binding)
|
||||
`(,(if override
|
||||
'bind-key*
|
||||
'bind-key)
|
||||
,(car binding)
|
||||
#'(lambda ()
|
||||
(interactive)
|
||||
(use-package-autoload-keymap
|
||||
',(cdr binding) ',(use-package-as-symbol name)
|
||||
,override)))) arg)))
|
||||
(use-package-concat
|
||||
(use-package-process-keywords name rest state)
|
||||
`((ignore ,@form)))))
|
||||
(use-package-concat
|
||||
(use-package-process-keywords name rest state)
|
||||
`((ignore
|
||||
,@(mapcar
|
||||
#'(lambda (binding)
|
||||
`(,(if override
|
||||
'bind-key*
|
||||
'bind-key)
|
||||
,(car binding)
|
||||
#'(lambda ()
|
||||
(interactive)
|
||||
(use-package-autoload-keymap
|
||||
',(cdr binding) ',(use-package-as-symbol name)
|
||||
,override)))) arg)))))
|
||||
|
||||
(defun use-package-handler/:bind-keymap* (name keyword arg rest state)
|
||||
(use-package-handler/:bind-keymap name keyword arg rest state t))
|
||||
|
|
@ -999,17 +998,18 @@ deferred until the prefix key sequence is pressed."
|
|||
(cl-destructuring-bind (nargs . commands)
|
||||
(use-package-normalize-commands args)
|
||||
(use-package-concat
|
||||
(mapcar
|
||||
#'(lambda (thing)
|
||||
`(add-to-list
|
||||
',alist
|
||||
',(cons (use-package-normalize-regex (car thing))
|
||||
(cdr thing))))
|
||||
nargs)
|
||||
(use-package-process-keywords name
|
||||
(use-package-sort-keywords
|
||||
(use-package-plist-append rest :commands commands))
|
||||
state))))
|
||||
state)
|
||||
`((ignore
|
||||
,@(mapcar
|
||||
#'(lambda (thing)
|
||||
`(add-to-list
|
||||
',alist
|
||||
',(cons (use-package-normalize-regex (car thing))
|
||||
(cdr thing))))
|
||||
nargs))))))
|
||||
|
||||
(defalias 'use-package-normalize/:interpreter 'use-package-normalize-mode)
|
||||
|
||||
|
|
@ -1064,21 +1064,22 @@ deferred until the prefix key sequence is pressed."
|
|||
(cl-destructuring-bind (nargs . commands)
|
||||
(use-package-normalize-commands args)
|
||||
(use-package-concat
|
||||
(cl-mapcan
|
||||
#'(lambda (def)
|
||||
(let ((syms (car def))
|
||||
(fun (cdr def)))
|
||||
(when fun
|
||||
(mapcar
|
||||
#'(lambda (sym)
|
||||
`(add-hook (quote ,(intern (format "%s-hook" sym)))
|
||||
(function ,fun)))
|
||||
(if (use-package-non-nil-symbolp syms) (list syms) syms)))))
|
||||
nargs)
|
||||
(use-package-process-keywords name
|
||||
(use-package-sort-keywords
|
||||
(use-package-plist-append rest :commands commands))
|
||||
state))))
|
||||
state)
|
||||
`((ignore
|
||||
,@(cl-mapcan
|
||||
#'(lambda (def)
|
||||
(let ((syms (car def))
|
||||
(fun (cdr def)))
|
||||
(when fun
|
||||
(mapcar
|
||||
#'(lambda (sym)
|
||||
`(add-hook (quote ,(intern (format "%s-hook" sym)))
|
||||
(function ,fun)))
|
||||
(if (use-package-non-nil-symbolp syms) (list syms) syms)))))
|
||||
nargs))))))
|
||||
|
||||
;;;; :commands
|
||||
|
||||
|
|
|
|||
43
up-tests.el
43
up-tests.el
|
|
@ -546,17 +546,19 @@
|
|||
(match-expansion
|
||||
(use-package foo :interpreter "interp")
|
||||
`(progn
|
||||
(add-to-list 'interpreter-mode-alist '("interp" . foo))
|
||||
(unless (fboundp 'foo)
|
||||
(autoload #'foo "foo" nil t)))))
|
||||
(autoload #'foo "foo" nil t))
|
||||
(ignore
|
||||
(add-to-list 'interpreter-mode-alist '("interp" . foo))))))
|
||||
|
||||
(ert-deftest use-package-test/:interpreter-2 ()
|
||||
(match-expansion
|
||||
(use-package foo :interpreter ("interp" . fun))
|
||||
`(progn
|
||||
(add-to-list 'interpreter-mode-alist '("interp" . fun))
|
||||
(unless (fboundp 'fun)
|
||||
(autoload #'fun "foo" nil t)))))
|
||||
(autoload #'fun "foo" nil t))
|
||||
(ignore
|
||||
(add-to-list 'interpreter-mode-alist '("interp" . fun))))))
|
||||
|
||||
(ert-deftest use-package-test-normalize/:mode ()
|
||||
(flet ((norm (&rest args)
|
||||
|
|
@ -577,49 +579,55 @@
|
|||
(match-expansion
|
||||
(use-package foo :mode "interp")
|
||||
`(progn
|
||||
(add-to-list 'auto-mode-alist '("interp" . foo))
|
||||
(unless (fboundp 'foo)
|
||||
(autoload #'foo "foo" nil t)))))
|
||||
(autoload #'foo "foo" nil t))
|
||||
(ignore
|
||||
(add-to-list 'auto-mode-alist '("interp" . foo))))))
|
||||
|
||||
(ert-deftest use-package-test/:mode-2 ()
|
||||
(match-expansion
|
||||
(use-package foo :mode ("interp" . fun))
|
||||
`(progn
|
||||
(add-to-list 'auto-mode-alist '("interp" . fun))
|
||||
(unless (fboundp 'fun)
|
||||
(autoload #'fun "foo" nil t)))))
|
||||
(autoload #'fun "foo" nil t))
|
||||
(ignore
|
||||
(add-to-list 'auto-mode-alist '("interp" . fun))))))
|
||||
|
||||
(ert-deftest use-package-test/:magic-1 ()
|
||||
(match-expansion
|
||||
(use-package foo :magic "interp")
|
||||
`(progn
|
||||
(add-to-list 'magic-mode-alist '("interp" . foo))
|
||||
(unless (fboundp 'foo)
|
||||
(autoload #'foo "foo" nil t)))))
|
||||
(autoload #'foo "foo" nil t))
|
||||
(ignore
|
||||
(add-to-list 'magic-mode-alist '("interp" . foo))))))
|
||||
|
||||
(ert-deftest use-package-test/:magic-2 ()
|
||||
(match-expansion
|
||||
(use-package foo :magic ("interp" . fun))
|
||||
`(progn
|
||||
(add-to-list 'magic-mode-alist '("interp" . fun))
|
||||
(unless (fboundp 'fun)
|
||||
(autoload #'fun "foo" nil t)))))
|
||||
(autoload #'fun "foo" nil t))
|
||||
(ignore
|
||||
(add-to-list 'magic-mode-alist '("interp" . fun))))))
|
||||
|
||||
(ert-deftest use-package-test/:magic-fallback-1 ()
|
||||
(match-expansion
|
||||
(use-package foo :magic-fallback "interp")
|
||||
`(progn
|
||||
(add-to-list 'magic-fallback-mode-alist '("interp" . foo))
|
||||
(unless (fboundp 'foo)
|
||||
(autoload #'foo "foo" nil t)))))
|
||||
(autoload #'foo "foo" nil t))
|
||||
(ignore
|
||||
(add-to-list 'magic-fallback-mode-alist '("interp" . foo))))))
|
||||
|
||||
(ert-deftest use-package-test/:magic-fallback-2 ()
|
||||
(match-expansion
|
||||
(use-package foo :magic-fallback ("interp" . fun))
|
||||
`(progn
|
||||
(add-to-list 'magic-fallback-mode-alist '("interp" . fun))
|
||||
(unless (fboundp 'fun)
|
||||
(autoload #'fun "foo" nil t)))))
|
||||
(autoload #'fun "foo" nil t))
|
||||
(ignore
|
||||
(add-to-list 'magic-fallback-mode-alist '("interp" . fun))))))
|
||||
|
||||
(ert-deftest use-package-test/:commands-1 ()
|
||||
(match-expansion
|
||||
|
|
@ -785,7 +793,6 @@
|
|||
(with-demoted-errors
|
||||
"Cannot load foo: %S" nil
|
||||
(load "foo" nil t))))
|
||||
(add-hook 'hook-hook #'fun)
|
||||
(unless (fboundp 'fun)
|
||||
(autoload #'fun "foo" nil t))
|
||||
(eval-when-compile
|
||||
|
|
@ -794,6 +801,8 @@
|
|||
(autoload #'key "foo" nil t))
|
||||
(eval-when-compile
|
||||
(declare-function key "foo"))
|
||||
(ignore
|
||||
(add-hook 'hook-hook #'fun))
|
||||
(ignore
|
||||
(bind-keys :package foo ("C-a" . key))))))))
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue