;ELC ;;; Compiled ;;; in Emacs version 27.1 ;;; 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. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\305\306\307\310!\"\210\305\311\312\310!\"\210\305\313\311\"\210\314\313\315\316#\210\317\310\320\311#\321\310\322\323\324$\207" [require eieio widget wid-edit custom defalias eieio-widget-test-class-p eieio-make-class-predicate eieio-widget-test-class eieio-widget-test-class--eieio-childp eieio-make-child-predicate eieio-widget-test-class-child-p make-obsolete "use (cl-typep ... \\='eieio-widget-test-class) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal nil ((a-string :initarg :a-string :initform "The moose is loose" :custom string :label "Amorphous String" :group (default foo) :documentation "A string for testing custom.\nThis is the next line of documentation.") (listostuff :initarg :listostuff :initform ("1" "2" "3") :type list :custom (repeat (string :tag "Stuff")) :label "List of Strings" :group foo :documentation "A list of stuff.") (uninitialized :initarg :uninitialized :type string :custom string :documentation "This slot is not initialized.\nUsed to make sure that custom doesn't barf when it encounters one\nof these.") (a-number :initarg :a-number :initform 2 :custom integer :documentation "A number of thingies.")) (:documentation "A class for testing the widget on.")] 6) #@80 Create a new object of class type `eieio-widget-test-class'. (fn &rest SLOTS) (defalias 'eieio-widget-test-class #[128 "\300\301\302#\207" [apply make-instance eieio-widget-test-class] 5 (#$ . 1706)]) (byte-code "\300\301\302\303#\300\207" [function-put eieio-widget-test-class compiler-macro eieio-widget-test-class--anon-cmacro] 4) #@26 (fn WHOLE &rest SLOTS) (defalias 'eieio-widget-test-class--anon-cmacro #[385 "\211@;\204\207\300\301\302@@#@\303@DABB\"\207" [macroexp--warn-and-return format "Obsolete name arg %S to constructor %S" identity] 7 (#$ . 2048)]) (byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\312\313\314\315\310\316%\207" [custom-declare-variable eieio-widget-test funcall function #[0 "\300 \207" [eieio-widget-test-class] 1] "Test variable for editing an object." :type object :group eieio custom-declare-face eieio-custom-slot-tag-face ((((class color) (background dark)) (:foreground "light blue")) (((class color) (background light)) (:foreground "blue")) (t (:italic t))) "Face used for unpushable variable tags." custom-faces] 8) #@75 Buffer local variable in object customize buffers for the current widget. (defvar eieio-wo nil (#$ . 2796)) #@72 Buffer local variable in object customize buffers for the current obj. (defvar eieio-co nil (#$ . 2910)) #@74 Buffer local variable in object customize buffers for the current group. (defvar eieio-cog nil (#$ . 3021)) #@131 When true, all customizable slots of the current object are updated. Updates occur regardless of the current customization group. (defvar eieio-custom-ignore-eieio-co nil (#$ . 3136)) (define-widget 'object-slot 'group "Abstractly modify a single slot in an object." :tag "Slot" :format "%t %v%h\n" :convert-widget 'widget-types-convert-widget :value-create 'eieio-slot-value-create :value-get 'eieio-slot-value-get :value-delete 'widget-children-value-delete :validate 'widget-children-validate :match 'eieio-object-match) #@42 Create the value of WIDGET. (fn WIDGET) (defalias 'eieio-slot-value-create #[257 "\300\301\302\303\"\304\305\306\302\306\"&B\262\307\310#\207" [nil widget-create-child-and-convert widget-get :childtype :tag "" :value widget-put :children] 11 (#$ . 3666)]) #@39 Get the value of WIDGET. (fn WIDGET) (defalias 'eieio-slot-value-get #[257 "\300\301\302\"@!\207" [widget-value widget-get :children] 5 (#$ . 3938)]) #@43 Toggle visibility of WIDGET. (fn WIDGET) (defalias 'eieio-custom-toggle-hide #[257 "\300\301\"@\300\302\"\303=\203 \304\302\305#\210\304\306\300\307\"#\210\2025\304\302\303#\210\304\307\300\306\"#\210\304\306\310#\210\311\312!\"\207" [widget-get :children :eieio-custom-state hidden widget-put visible :value-face :orig-face invisible widget-value-set widget-value] 8 (#$ . 4096)]) #@114 Toggle visibility of parent of WIDGET. Optional argument IGNORE is an extraneous parameter. (fn WIDGET &rest _) (defalias 'eieio-custom-toggle-parent #[385 "\300\301\302\"!\207" [eieio-custom-toggle-hide widget-get :parent] 6 (#$ . 4499)]) (define-widget 'object-edit 'group "Abstractly modify a CLOS object." :tag "Object" :format "%v" :convert-widget 'widget-types-convert-widget :value-create 'eieio-object-value-create :value-get 'eieio-object-value-get :value-delete 'widget-children-value-delete :validate 'widget-children-validate :match 'eieio-object-match :clone-object-children nil) #@57 Match info for WIDGET against VALUE. (fn WIDGET VALUE) (defalias 'eieio-object-match #[514 "\300\207" [t] 3 (#$ . 5100)]) #@48 Filter WIDGETs SLOTTYPE. (fn WIDGET SLOTTYPE) (defalias 'eieio-filter-slot-type #[514 "\300\301\"\203\207\211\302=\203\303\207\211<\203!\211@\302=\203!\303AB\207\211\304\232\203)\305\207\211<\203N\211@\306=\203N\211A@<\203N\211A@@\302=\203N\306\303A@ABD\207\207" [widget-get :clone-object-children object object-edit (repeat object) (repeat object-edit) repeat] 5 (#$ . 5229)]) #@42 Create the value of WIDGET. (fn WIDGET) (defalias 'eieio-object-value-create #[257 "\302\303\"\204.\304\303\302\305\"\203\302\305\"\306!\202,\302\307\"\203)\302\307\" \202,\310\311!#\210\312\302\303\"\302\313\"\211\211\314H\262\203X\211\2119\203R\211\315N\206S\211\202S\211\262\202Y\211\262\262\211\316H\302\317\"\203z\320\321\322\323\324\325\326 !&B\262\203\357\211\211\314H\262\203\237\211\2119\203\231\211\315N\206\232\211\202\232\211\262\202\240\211\262\262\327\211\330H>A\242\266\202\331\332!\210\211\203\352\331\333!\210\211@=\203\317\331\334\335\336!!\334#\210\202\343\337\340\341@B\342\343\335\336@!!&\210\211A\262\202\262\331\344!\266\211G\314\211W\203\211H\345!\346! >\204\347\350\351D\"\210\316H\352\353\"\203\203'\352\354\"\235\203\355\n\346! >\204:\347\350\351D\"\210\356H\"\203\357\f\352\353\"\"\312<\203\215\360>\211\262\203\215\361\fA@\"\312@\360=\204t@B\262A\262\202`\203\207\362@DB\262A\262\202t\211\237\262\266\320\363\364\324\365\322\366\302\367\"\206\240\314\370\"\352\371 \"\206\360\336\372\211\211\314H\262\203\316\211\2119\203\310\211\315N\206\311\211\202\311\211\262\202\317\211\262\262\"\206\333 !\335\373\374\"\203\354\375\314\225\"\202\355!\262P\303\376\"\377\352\201@\"\206\201A\201B\201C& B\262 \266\266\211T\262\202\362\266\304\201D\237#\207" [eieio-backward-compatibility cl-struct-cl-slot-descriptor-tags widget-get :value widget-put :objecttype "Custom-new" :objectcreatefcn error "No create method specified" nil :eieio-group 0 cl--class 4 :eieio-show-name widget-create-child-and-convert string :tag "Object " :sample-face bold eieio-object-name-string :custom-groups 11 widget-insert "Groups:" " " "*" capitalize symbol-name widget-create push-button :thing :notify #[385 "\300\301\302\"@\301\302\"A\"\207" [eieio-customize-object widget-get :thing] 7 "\n\n(fn WIDGET &rest _)"] "\n\n" eieio-slot-descriptor-name type-of signal wrong-type-argument cl-slot-descriptor alist-get :custom :group slot-boundp 1 eieio-filter-slot-type :slotofchoices eieio-oref const object-slot :childtype eieio-custom-slot-tag-face make-string :indent 32 :label eieio--class-slot-initarg string-match "^:" substring slot-value :doc :documentation "Slot not Documented." :eieio-custom-visibility visible :children] 30 (#$ . 5628)]) #@39 Get the value of WIDGET. (fn WIDGET) (defalias 'eieio-object-value-get #[257 "\304\305\"\304\306\"\304\307\"\205\310@\311\"@\304\307\"\203\"A\202#\211\211\312H\262 \203D\211\2119\203>\211\313N\206?\211\202?\211\262\202E\211\262\262\312\314HGW\203\322\203\322\211H\315!\n>\204j\316\317\320D\"\210\211\314H\321\322\"T\262\211\203\315 \204\214 \203\214 \321\323\"\235\203\315\324 \315!\n>\204\237\316\317\320D\"\210\325H\"\203\315\326\327 \315!\n>\204\273\316\317\320D\"\210\325H\310\n@\311\"@#\210)A\262\266\202M\203\340\327\330#\266\207" [eieio-cog eieio-backward-compatibility cl-struct-cl-slot-descriptor-tags eieio-custom-ignore-eieio-co widget-get :value :children :eieio-show-name widget-apply :value-inline 0 cl--class 4 type-of signal wrong-type-argument cl-slot-descriptor alist-get :custom :group slot-boundp 1 t eieio-oset object-name] 18 (#$ . 8059)]) (cl-generic-define-method 'eieio-done-customizing nil '((_obj eieio-default-superclass)) nil #[257 "\300\207" [nil] 2 "When applying change to a widget, call this method.\nThis method is called by the default widget-edit commands.\nUser made commands should also call this method when applying changes.\nArgument OBJ is the object that has been customized.\n\n(fn OBJ)"]) #@123 Customize OBJ in a custom buffer. Optional argument GROUP is the sub-group of slots to display. (fn OBJ &optional GROUP) (defalias 'customize-object #[513 "\300\"\207" [eieio-customize-object] 5 (#$ . 9373)]) #@30 Keymap for EIEIO Custom mode (defvar eieio-custom-mode-map (byte-code "\301 \302\"\210\211\207" [widget-keymap make-sparse-keymap set-keymap-parent] 4) (#$ . 9591)) (defvar eieio-custom-mode-hook nil) (byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [eieio-custom-mode-hook variable-documentation put "Hook run after entering EIEIO Custom mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp eieio-custom-mode-map definition-name eieio-custom-mode] 4) (defvar eieio-custom-mode-map (make-sparse-keymap)) (byte-code "\301\302N\204\303\301\302\304\305!#\210\306\307!\204\303\307\310\311#\210\312\313 !\210\307\302N\204-\303\307\302\304\314!#\210\306\300!\204B\303\300\310\311#\210\315\316\300\317\"\210!\210\300\302N\204P\303\300\302\304\320!#\210\303\311\321\317#\207" [eieio-custom-mode-abbrev-table eieio-custom-mode-map variable-documentation put purecopy "Keymap for `eieio-custom-mode'." boundp eieio-custom-mode-syntax-table definition-name eieio-custom-mode (lambda (#1=#:def-tmp-var) (defvar eieio-custom-mode-syntax-table #1#)) make-syntax-table "Syntax table for `eieio-custom-mode'." (lambda (#1#) (defvar eieio-custom-mode-abbrev-table #1#)) define-abbrev-table nil "Abbrev table for `eieio-custom-mode'." derived-mode-parent] 5) #@175 Major mode for customizing EIEIO objects. \{eieio-custom-mode-map} This mode runs the hook `eieio-custom-mode-hook', as the final or penultimate step during initialization. (defalias 'eieio-custom-mode #[0 "\306\300!\210\307\310 \210\311\312\313 !\210\314\f!\210 )\315\316!\207" [delay-mode-hooks major-mode mode-name eieio-custom-mode-map eieio-custom-mode-syntax-table eieio-custom-mode-abbrev-table make-local-variable t kill-all-local-variables eieio-custom-mode "EIEIO Custom" use-local-map set-syntax-table run-mode-hooks eieio-custom-mode-hook local-abbrev-table] 2 (#$ . 10983) nil]) (byte-code "\300\301\302\303\302\304%\210\300\305\302\306\302\307%\210\300\310\302\311\302\312%\210\313\314\315\316\317\320\321\322\323\324\325\326& \207" [cl-generic-define-method eieio-customize-object nil ((obj eieio-default-superclass) &optional group) #[513 "\211\206\304\305\306\307\310!\311\312!\313\260!!\210\314\315 \210\316 \210\317 \210\320 \321\322@\"\210\321\322A\"\266\323!\210\324\325!\210\324\326\310!\325#\210\327\301!\210\330\331#\324\332!\210\323!\210\333 \210eb\210\334\335!\210\327\302!\210\327\303!\210\211\211\207" [buffer-read-only eieio-wo eieio-co eieio-cog default switch-to-buffer get-buffer-create "*CUSTOMIZE " eieio-object-name " " symbol-name "*" nil kill-all-local-variables eieio-custom-mode erase-buffer overlay-lists mapc delete-overlay eieio-custom-object-apply-reset widget-insert "\n\n" "Edit object " make-local-variable eieio-custom-widget-insert :eieio-group "\n" widget-setup widget-forward 3] 10 "Customize OBJ in a specialized custom buffer.\nTo override call the `eieio-custom-widget-insert' to just insert the\nobject widget.\nOptional argument GROUP specifies a subgroup of slots to edit as a symbol.\nThese groups are specified with the `:group' slot flag.\n\n(fn OBJ &optional GROUP)"] eieio-custom-object-apply-reset ((_obj eieio-default-superclass)) #[257 "\300\301\302\303\304$\210\305\306!\210\300\301\302\307\310$\210\305\306!\210\300\301\302\311\312$\210\305\306!\210\300\301\302\313\314$\207" [widget-create push-button :notify #[128 "\302\303\"\210\304 !\210\305 \207" [eieio-wo eieio-co widget-apply :value-get eieio-done-customizing bury-buffer] 4 "\n\n(fn &rest _)"] "Accept" widget-insert " " #[128 "\302\303!\210\304\305\"\210\306 !\210\302\307!\207" [eieio-wo eieio-co message "Applying Changes..." widget-apply :value-get eieio-done-customizing "Applying Changes...Done"] 4 "\n\n(fn &rest _)"] "Apply" #[128 "\302\303!\210\304 \"\207" [eieio-co eieio-cog message "Resetting" eieio-customize-object] 4 "\n\n(fn &rest _)"] "Reset" #[128 "\300 \207" [bury-buffer] 2 "\n\n(fn &rest _)"] "Cancel"] 6 "Insert an Apply and Reset button into the object editor.\nArgument OBJ is the object being customized.\n\n(fn OBJ)"] eieio-custom-widget-insert ((obj eieio-default-superclass) &rest flags) #[385 "\300\301\302\303%\207" [apply widget-create object-edit :value] 8 "Insert the widget used for editing object OBJ in the current buffer.\nArguments FLAGS are widget compatible flags.\nMust return the created widget.\n\n(fn OBJ &rest FLAGS)"] define-widget object object-edit "Instance of a CLOS class." :format "%{%t%}:\n%v" :value-to-internal eieio-object-value-to-abstract :value-to-external eieio-object-abstract-to-value :clone-object-children t] 12) #@84 For WIDGET, convert VALUE to an abstract /safe/ representation. (fn WIDGET VALUE) (defalias 'eieio-object-value-to-abstract #[514 "\300!\205\211\207" [eieio-object-p] 4 (#$ . 14325)]) #@86 For WIDGET, convert VALUE from an abstract /safe/ representation. (fn WIDGET VALUE) (defalias 'eieio-object-abstract-to-value #[514 "\207" [] 3 (#$ . 14519)]) (cl-generic-define-method 'eieio-customize-object-group nil '((obj eieio-default-superclass)) nil #[257 "\301\302\303\304\305\306!\307\"\310\311%\211\211\312H\262\203/\211\2119\203)\211\313N\206*\211\202*\211\262\2020\211\262\262\314\211\315H>A\242\266\202\"\207" [eieio-backward-compatibility mapcar make-byte-code 257 "\301\302\303!P\304\300\305DE\306#\207" vconcat vector [vector "Group " symbol-name customize-object quote t] 7 "\n\n(fn GROUP)" 0 cl--class :custom-groups 11] 8 "Create a list of vectors for customizing sections of OBJ.\n\n(fn OBJ)"]) #@38 History for the custom group reader. (defvar eieio-read-custom-group-history nil (#$ . 15257)) (byte-code "\300\301\302\303\302\304%\210\305\306!\207" [cl-generic-define-method eieio-read-customization-group nil ((obj eieio-default-superclass)) #[257 "\211\211\211\302H\262\203!\211\2119\203\211\303N\206\211\202\211\262\202\"\211\262\262\304\211\305H>A\242\266\202\211G\306U\203<\211@\202d\307\310\"\262\311\312\313\314\"\203W\315\316\317 \"\"\260\202X\320\321P\322\323\322\324&\"A\207" [eieio-backward-compatibility obarray 0 cl--class :custom-groups 11 1 mapcar #[257 "\300!B\207" [symbol-name] 3 "\n\n(fn G)"] assoc completing-read slot-exists-p name slot-value intern "name" "" "Custom Group: " nil t eieio-read-custom-group-history] 10 "Do a completing read on the name of a customization group in OBJ.\nReturn the symbol for the group, or nil.\n\n(fn OBJ)"] provide eieio-custom] 6)