在一些第三方包的源码里经常会看到 ;;;###autoload
,比方说:racket-mode.el里:
;;;###autoload
(define-derived-mode racket-mode prog-mode
"Racket"
"Major mode for editing Racket.
\\{racket-mode-map}"
(racket--common-variables)
(racket--variables-imenu)
(hs-minor-mode t))
;;;###autoload
(progn
(add-to-list 'auto-mode-alist '("\\.rkt[dl]?\\'" . racket-mode))
(modify-coding-system-alist 'file "\\.rkt[dl]?\\'" 'utf-8)
(add-to-list 'interpreter-mode-alist '("racket" . racket-mode)))
这两个 ;;;###autoload
是普通的注释吗?
它有什么用?
如果删掉它们有什么问题?(假如是一个自己写的mode,也要用模仿着它们加上 ;;;###autoload
吗?)