;ELC ;;; Compiled ;;; in Emacs version 26.3 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (require 'elisp-mode) #@122 Local macro definitions to be bound in `setup' bodies. Do not modify this variable by hand. Instead use `setup-define.' (defvar setup-macros nil (#$ . 431)) #@33 Return a docstring for `setup'. (defalias 'setup-make-docstring #[0 "\301\302!r\211q\210\303\304\305\306\307!\310\"\311$\216\312\313K\314\"\315\261\210\204&\316c\210\202Y\317c\210\320\321\322\"\323\"\211\203X\211@\324\311!\210\321\325\326N\"\327\330B\"\331N\206M\332\261\266A\266\202\2020\210\333 *\207" [setup-macros generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 documentation setup raw "\n\n" "No local macros are defined." "Within BODY, `setup' provides these local macros:" sort mapcar car string-lessp newline #[257 "\300\301\302!\"\203\n\207\303\302!\226!\207" [string-match "\\`&" symbol-name intern] 5 "\n\n(fn ARG)"] setup-signature format " - %s\n\n" setup-documentation "No documentation." buffer-string] 8 (#$ . 595)]) #@216 Configure feature or subsystem NAME. BODY may contain special forms defined by `setup-define', but will otherwise just be evaluated as is. NAME may also be a macro, if it can provide a symbol. (fn NAME &rest BODY) (defalias 'setup '(macro . #[385 "\204\303\304!\210:\203 B\262@\305N\211\205\211!\262\210\306\307 \236\2035\310\311\307BB\312BBB\202>\310\313\314!\315BBB\316 \n\"\"\207" [lexical-binding setup-macros macroexpand-all-environment error "The `setup' macro requires lexical binding" setup-shorthand macroexpand-all :with-feature catch 'setup-exit (t) 'setup-exit macroexp-progn (t) append] 8 (#$ . 1427)])) (byte-code "\300\301\302\303#\210\304\301\305\306#\300\301\307\310#\207" [put setup edebug-form-spec (&rest &or [symbolp sexp] form) function-put lisp-indent-function defun function-documentation (setup-make-docstring)] 5) #@906 Define `setup'-local macro NAME using function FN. The plist OPTS may contain the key-value pairs: :indent SPEC Change indentation behaviour. See symbol `lisp-indent-function'. :after-loaded BOOL Wrap the macro in a `with-eval-after-load' body. :repeatable ARITY Allow macro to be automatically repeated. If ARITY is t, use `func-arity' to determine the minimal number of arguments. :signature SIG Give an advertised calling convention. :documentation STRING A documentation string. :shorthand EXTRACTOR If a macro defines a shorthand, it might be used as the first argument of a `setup' form, instead of a symbol. EXTRACTOR must be a function of one argument. It takes the entire macro and returns a symbol to replace NAME. :debug SPEC A edebug specification, see Info node `(elisp) Specification List'. If not given, it is assumed nothing is evaluated. (fn NAME FN &rest OPTS) (defalias 'setup-define #[642 "9\204 \303\304!\210\305\306\307\310\"#\210\305\311\307\312\"\206,\313\314\315\"\307\316\"\205+\317\"#\210\305\320\307\321\"#\210\305\322\206? #\210\305\323\307\324\"#\210\n\236\307\316\"\325=\203]\326!@\202a\307\316\"\211\204i\202x\327\330\331\332\333\"\334\"\335\336%\307\337\"\203\216\327\330\340\332\333!\341\"\335\336%\202\217\211\266\202\203\234\241\210\202\245B\211\262\nB\266\342!\343\344NAA\345A\346#\307\347\"\211\204\301\350\202\317\307\316\"\203\316\351B\202\317\211\262\203\333\241\202\346B\211\262AB\241\207" [load-file-name buffer-file-name setup-macros error "Macro name must be a symbol" put setup-documentation plist-get :documentation setup-signature :signature append help-function-arglist preserve-names :repeatable (\.\.\.) setup-shorthand :shorthand setup-definition-file lisp-indent-function :indent t func-arity make-byte-code 128 "\302G\301\"\303U\204\304\305!\210\306\2038\301\233\301\211\303X\203#\306\262\202*\211S\233\306\241\210\210\307\300\"B\262\262\202\310\237!\207" vconcat vector [mod 0 error "Illegal arguments" nil apply macroexp-progn] 6 "\n\n(fn &rest ARGS)" :after-loaded "\301\302\303\300\"E\207" [with-eval-after-load setup-name apply] symbol-name setup edebug-form-spec assoc equal :debug (&rest sexp) &rest] 12 (#$ . 2293)]) (byte-code "\300\301\302\303#\300\207" [function-put setup-define lisp-indent-function 1] 4) #@56 Return an elisp xref location for SYMBOL. (fn SYMBOL) (defalias 'setup-xref-def-function #[257 "\211\236\205\211\301N\302\303#C\262\207" [setup-macros setup-definition-file elisp--xref-make-xref nil] 6 (#$ . 4682)]) (byte-code "\300\301\302\"\210\303\304\305\306\307\310\311\312\313&\210\303\314\315\306\316\310\317\312\313&\210\303\320\321\306\322\310\323\312\313&\210\303\324\325\306\326\310\327\312\313&\210\303\330\331\306\332\333\334\335\336&\210\303\337\340\306\341\333\334\335\336&\210\303\342\343\306\344\310\345\333\334&\210\303\346\347\306\350\351\334\310\352\333\334&\n\210\303\353\354\306\355\351\334\310\356\333\334&\n\210\303\357\360\306\361\351\334\310\362\333\334&\n\210\303\363\364\306\365\333\334&\210\303\366\367\306\370\333\334&\210\303\371\372\306\373\310\374\333\334&\210\303\375\376\306\377\351\334&\210\303\201@\201A\306\201B\310\201C\333\334&\210\303\201D\201E\306\201F\310\201G\333\334&\210\303\201H\201I\306\201J\351\334\310\201K\333\334&\n\210\303\201L\201M\306\201N\351\334\333\334&\210\303\201O\201P\306\201Q\333\313&\210\303\201R\201S\306\201T\333\334\335\336&\210\303\201U\201V\306\201W\333\334\335\336&\210\303\201X\201Y\306\201Z$\210\303\201[\201\\\306\201]\310\201^\333\334&\210\303\201_\201`\306\201a\335\201b&\210\303\201c\201d\306\201e\310\201f\333\334&\210\303\201g\201h\306\201i\310\201j\351\334&\210\201k\201l!\207" [add-to-list elisp-xref-find-def-functions setup-xref-def-function setup-define :with-feature #[385 "\2030\301\302\303DDC\304\305\306\307!\310\311\312#)\266\203\203$\202+\313\314\315\"!BBF\207\316!\207" [inhibit-changing-match-data let setup-name quote (ignore setup-name) :with-mode "-mode\\'" symbol-name nil t string-match intern format "%s-mode" macroexp-progn] 13 "\n\n(fn FEATURE &rest BODY)"] :documentation "Change the FEATURE that BODY is configuring.\nThis macro also declares a current mode by appending \"-mode\" to\nFEATURE, unless it already ends with \"-mode\"." :debug (sexp setup) :indent 1 :with-mode #[385 "\300\301\302DD\303\302\304\305\306\"!DD\307\302\304\305\310 \"!DDE\311BBB\207" [let setup-mode quote setup-map intern format "%s-map" setup-hook "%s-hook" (ignore setup-mode setup-map setup-hook)] 11 "\n\n(fn MODE &rest BODY)"] "Change the MODE that BODY is configuring." (sexp setup) :with-map #[385 "\300\301\302DDCBB\207" [let setup-map quote] 6 "\n\n(fn MAP &rest BODY)"] "Change the MAP that BODY will bind to" (sexp setup) :with-hook #[385 "\300\301\302DDCBB\207" [let setup-hook quote] 6 "\n\n(fn HOOK &rest BODY)"] "Change the HOOK that BODY will use." (sexp setup) :package #[257 "\300\301\302DD\303\302DDE\207" [unless package-installed-p quote package-install] 6 "\n\n(fn PACKAGE)"] "Install PACKAGE if it hasn't been installed yet.\nThis macro can be used as HEAD, and it will replace itself with\nthe first PACKAGE." :repeatable t :shorthand cadr :require #[257 "\300\301\302D\303BB\304BB\207" [unless require quote (nil t) ((throw 'setup-exit nil))] 5 "\n\n(fn FEATURE)"] "Try to require FEATURE, or stop evaluating body.\nThis macro can be used as HEAD, and it will replace itself with\nthe first FEATURE." :global #[514 "\300;\203\f\301!\2029\203\301D\202\302DE\207" [global-set-key kbd function] 6 "\n\n(fn KEY COMMAND)"] "Globally bind KEY to COMMAND." (form sexp) :bind #[514 "\300\301;\203 \302!\2029\203\302D\202\303DF\207" [define-key (symbol-value setup-map) kbd function] 7 "\n\n(fn KEY COMMAND)"] "Bind KEY to COMMAND in current map." :after-loaded (form sexp) :unbind #[257 "\300\301;\203 \302!\2029\203\302D\202\303BBB\207" [define-key (symbol-value setup-map) kbd (nil)] 5 "\n\n(fn KEY)"] "Unbind KEY in current map." (form) :rebind #[514 "\300\301\302\303\304D\305BBD\306BB\307\310;\203\311!\202)9\203(\311D\202)\312DFE\207" [progn dolist key where-is-internal quote ((symbol-value setup-map)) ((define-key (symbol-value setup-map) key nil)) define-key (symbol-value setup-map) kbd function] 9 "\n\n(fn KEY COMMAND)"] "Unbind the current key for COMMAND, and bind it to KEY." (form sexp) :hook #[257 "\300\301\302DE\207" [add-hook setup-hook function] 5 "\n\n(fn FUNCTION)"] "Add FUNCTION to current hook." :hook-into #[257 "\301\302\303!\304\305\306\307#)\266\203\203\202\310\311P!\262D\312BB\207" [inhibit-changing-match-data add-hook quote symbol-name "-hook\\'" nil t string-match intern "-hook" (setup-mode)] 11 "\n\n(fn MODE)"] "Add current mode to HOOK." :option #[514 "9\204\253\242\300=\203CA@\262\301 \302D\303\304\305\306\307 D\310BB\311BB\307DEDD\312\313\314BB\303\300\303\211DEFE\262\262\202\253\242\315=\203\200A@\262\301 \302D\303\304\305\306\307 D\316BB\317BB\307DEDD\312\313\320BB\303\321\322BBFE\262\262\202\253\242\323=\203\246A@\262\323\304\305\306\307D\324BB\325BB\307DEE\262\202\253\326\327\"\210\330\331\307DD\304\305\306\307D\332BB\333BB\307DF\334\307D\335BBF\207" [append gensym let list funcall or get quote ('custom-get) (#'symbol-value) if member (list) prepend ('custom-get) (#'symbol-value) (list) cons (list) remove ('custom-get) (#'symbol-value) error "Invalid option %S" progn custom-load-symbol ('custom-set) (#'set-default) put ('variable-comment "Modified by `setup'")] 12 "\n\n(fn NAME VAL)"] "Set the option NAME to VAL.\nNAME may be a symbol, or a cons-cell. If NAME is a cons-cell, it\nwill use the car value to modify the behaviour. These forms are\nsupported:\n\n(append VAR) Assuming VAR designates a list, add VAL as its last\n element, unless it is already member of the list.\n\n(prepend VAR) Assuming VAR designates a list, add VAL to the\n beginning, unless it is already member of the\n list.\n\n(remove VAR) Assuming VAR designates a list, remove all instances\n of VAL.\n\nNote that if the value of an option is modified partially by\nappend, prepend, remove, one should ensure that the default value\nhas been loaded. Also keep in mind that user options customized\nwith this macro are not added to the \"user\" theme, and will\ntherefore not be stored in `custom-set-variables' blocks." (sexp form) :hide-mode #[0 "\300\207" [(setq minor-mode-alist (delq (assq setup-mode minor-mode-alist) minor-mode-alist))] 1] "Hide the mode-line lighter of the current mode." :local-set #[514 "9\204x\242\300=\2032A@\262\301 \302D\303DD\304\305\306BB\303\300\303\211DEFE\262\262\202x\242\307=\203^A@\262\301 \302D\303DD\304\305\310BB\303\311\312BBFE\262\262\202x\242\313=\203sA@\262\313E\262\202x\314\315\"\210\316\317\320\321\322EEE\207" [append gensym let list if member (list) prepend (list) cons (list) remove error "Invalid variable %S" add-hook setup-hook lambda nil setq-local] 12 "\n\n(fn NAME VAL)"] "Set the value of NAME to VAL in buffers of the current mode.\nNAME may be a symbol, or a cons-cell. If NAME is a cons-cell, it\nwill use the car value to modify the behaviour. These forms are\nsupported:\n\n(append VAR) Assuming VAR designates a list, add VAL as its last\n element, unless it is already member of the list.\n\n(prepend VAR) Assuming VAR designates a list, add VAL to the\n beginning, unless it is already member of the\n list.\n\n(remove VAR) Assuming VAR designates a list, remove all instances\n of VAL." (sexp form) :local-hook #[514 "\300\301\302\303\300\304D\305D\306BBBEE\207" [add-hook setup-hook lambda nil quote function (nil t)] 10 "\n\n(fn HOOK FUNCTION)"] "Add FUNCTION to HOOK only in buffers of the current mode." (symbolp sexp) :advise #[771 "\300\301DF\207" [advice-add quote] 7 "\n\n(fn SYMBOL WHERE FUNCTION)"] "Add a piece of advice on a function.\nSee `advice-add' for more details." (sexp sexp function-form) :also-load #[257 "\300\301DD\207" [require quote] 4 "\n\n(fn FEATURE)"] "Load FEATURE with the current body." :needs #[257 "\300\301D\302BB\207" [unless executable-find ((throw 'setup-exit nil))] 4 "\n\n(fn EXECUTABLE)"] "If EXECUTABLE is not in the path, stop here." :if-package #[257 "\300\301\302DD\303BB\207" [unless package-installed-p quote ((throw 'setup-exit nil))] 5 "\n\n(fn PACKAGE)"] "If package is not installed, stop evaluating the body.\nThis macro can be used as HEAD, and it will replace itself with\nthe first PACKAGE." :if-feature #[257 "\300\301\302DD\303BB\207" [unless featurep quote ((throw 'setup-exit nil))] 5 "\n\n(fn FEATURE)"] "If FEATURE is not available, stop evaluating the body.\nThis macro can be used as HEAD, and it will replace itself with\nthe first PACKAGE." :if-host #[257 "\300\301\302E\303BB\207" [unless string= (system-name) ((throw 'setup-exit nil))] 5 "\n\n(fn HOSTNAME)"] "If HOSTNAME is not the current hostname, stop evaluating form." :only-if #[257 "\300\301BB\207" [unless ((throw 'setup-exit nil))] 4 "\n\n(fn CONDITION)"] "If CONDITION is non-nil, stop evaluating the body." (form) :load-from #[257 "\300\301D\302\303\304DE\305BBB\207" [if file-exists-p add-to-list 'load-path expand-file-name ((throw 'setup-exit t))] 7 "\n\n(fn PATH)"] "Add PATH to load path.\nThis macro can be used as HEAD, and it will replace itself with\nthe nondirectory part of PATH.\nIf PATH does not exist, abort the evaluation." #[257 "\300\301\302A@!!!\207" [intern file-name-nondirectory directory-file-name] 5 "\n\n(fn ARGS)"] :file-match #[257 "\300\301\302\303BBE\207" [add-to-list 'auto-mode-alist cons (setup-mode)] 6 "\n\n(fn PAT)"] "Associate the current mode with files that match PAT." (form) :when-loaded #[128 "\300!\207" [macroexp-progn] 3 "\n\n(fn &rest BODY)"] "Evaluate BODY after the current feature has been loaded.\nAvoid using this macro whenever possible, and\ninstead choose a more specialized alternative or write one\nyourself." (setup) provide setup] 11)