;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!\207" [require eieio eieio-custom speedbar] 2) #@48 Make the generic object based speedbar keymap. (defalias 'eieio-speedbar-make-map #[0 "\300 \301\302\303#\210\301\304\305#\210\301\306\305#\210\301\307\310#\210\301\311\312#\210\211\207" [speedbar-make-specialized-keymap define-key " " speedbar-edit-line "+" speedbar-expand-line "=" "-" speedbar-contract-line "C" eieio-speedbar-customize-line] 5 (#$ . 502)]) #@49 A generic object based speedbar display keymap. (defvar eieio-speedbar-key-map (eieio-speedbar-make-map) (#$ . 874)) #@71 Menu part in easymenu format used in speedbar while browsing objects. (defvar eieio-speedbar-menu '(["Edit Object/Field" speedbar-edit-line t] ["Expand Object" speedbar-expand-line (save-excursion (beginning-of-line) (looking-at "[0-9]+: *.\\+. "))] ["Contract Object" speedbar-contract-line (save-excursion (beginning-of-line) (looking-at "[0-9]+: *.-. "))] "---" ["Customize Object" eieio-speedbar-customize-line (eieio-object-p (speedbar-line-token))]) (#$ . 997)) (defalias 'eieio-speedbar-customize-line 'speedbar-edit-line) #@443 Create a speedbar mode for displaying an object hierarchy. MAP-FN is the keymap generator function used for extra keys. MAP-VAR is the keymap variable used. MENU-VAR is the symbol containing an easymenu compatible menu part to use. MODENAME is a string used to identify this browser mode. FETCHER is a generic function used to fetch the base object list used when creating the speedbar display. (fn MAP-FN MAP-VAR MENU-VAR MODENAME FETCHER) (defalias 'eieio-speedbar-create #[1285 "\300\301!\204\302\303\304\305\306     \257E\"\207\306%\207" [featurep speedbar add-hook speedbar-load-hook lambda nil eieio-speedbar-create-engine] 15 (#$ . 1534)]) #@264 Create a speedbar mode for displaying an object hierarchy. Called from `eieio-speedbar-create', or the speedbar load-hook. MAP-FN, MAP-VAR, MENU-VAR, MODENAME, and FETCHER are the same as in `eieio-speedbar-create'. (fn MAP-FN MAP-VAR MENU-VAR MODENAME FETCHER) (defalias 'eieio-speedbar-create-engine #[1285 " \210\300\301\302\303\304\305\306\nDFEF!\210\307\310\311E!\207" [speedbar-add-expansion-list lambda (dir depth) eieio-speedbar-buttons dir depth quote speedbar-add-mode-functions-list (speedbar-item-info . eieio-speedbar-item-info) (speedbar-line-directory . eieio-speedbar-line-path)] 16 (#$ . 2202)]) #@323 Create buttons for the speedbar display. Start in directory DIR-OR-OBJECT. If it is an object, just display that object's subelements. Argument DEPTH specifies how far down we have already been displayed. If it is a directory, use FETCHER to fetch all objects associated with that path. (fn DIR-OR-OBJECT DEPTH FETCHER) (defalias 'eieio-speedbar-buttons #[771 "\300!\203 C\202;\203\211!\202\211\204+\301\302\211\211\211\303\302\211\211 & \202<\211\205<\304@\"\210\211A\262\202+\207" [eieio-object-p speedbar-make-tag-line nil "Empty display" eieio-speedbar-make-tag-line] 14 (#$ . 2830)]) (byte-code "\300\301\302\303\302\304%\210\300\305\302\306\302\307%\210\300\310\302\311\302\312%\210\300\313\302\314\302\315%\210\300\316\302\317\302\320%\210\321\322\323\324!\"\210\321\325\326\324!\"\210\321\327\325\"\210\330\327\331\332#\210\333\324\334\325#\335\324\302\336\337$\207" [cl-generic-define-method eieio-speedbar-description nil (object) #[257 "\300!\207" [eieio-object-name-string] 3 "Return a string describing OBJECT.\n\n(fn OBJECT)"] eieio-speedbar-derive-line-path (_object) #[257 "\300\207" [nil] 2 "Return the path which OBJECT has something to do with.\n\n(fn OBJECT)"] eieio-speedbar-object-buttonname (object) #[257 "\300!\207" [eieio-object-name-string] 3 "Return a string to use as a speedbar button for OBJECT.\n\n(fn OBJECT)"] eieio-speedbar-make-tag-line (object depth) #[514 "\300\301\211\211\211\302!\303\304 & \207" [speedbar-make-tag-line nil eieio-speedbar-object-buttonname eieio-speedbar-object-click speedbar-tag-face] 12 "Insert a tag line into speedbar at point for OBJECT.\nBy default, all objects appear as simple TAGS with no need to inherit from\nthe special `eieio-speedbar' classes. Child classes should redefine this\nmethod to create more accurate tag lines.\nArgument DEPTH is the depth at which the tag line is inserted.\n\n(fn OBJECT DEPTH)"] eieio-speedbar-handle-click (object) #[257 "\300\301!\210\302 r\303\304\305\306\307!\310\"\311$\216\312 \210\313!\210\314 \210*\210\314 \207" [require eieio-custom internal--before-save-selected-window make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-save-selected-window] 2 dframe-select-attached-frame eieio-customize-object dframe-maybee-jump-to-attached-frame] 8 "Handle a click action on OBJECT in speedbar.\nAny object can be represented as a tag in SPEEDBAR without special\nattributes. These default objects will be pulled up in a custom\nobject edit buffer doing an in-place edit.\n\nIf your object represents some other item, override this method\nand take the appropriate action.\n\n(fn OBJECT)"] defalias eieio-speedbar-p eieio-make-class-predicate eieio-speedbar eieio-speedbar--eieio-childp eieio-make-child-predicate eieio-speedbar-child-p make-obsolete "use (cl-typep ... \\='eieio-speedbar) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal ((buttontype :initform nil :type symbol :documentation "The type of expansion button used for objects of this class.\nPossible values are those symbols supported by the `exp-button-type' argument\nto `speedbar-make-tag-line'." :allocation :class) (buttonface :initform speedbar-tag-face :type (or symbol face) :documentation "The face used on the textual part of the button for this class.\nSee `speedbar-make-tag-line' for details." :allocation :class) (expanded :initform nil :type boolean :documentation "State of an object being expanded in speedbar.")) (:documentation "Class which provides basic speedbar support for child classes.\nAdd one of the child classes to this class to the parent list of a class." :method-invocation-order :depth-first :abstract t)] 6) #@72 You cannot create a new object of type `eieio-speedbar'. (fn &rest _) (defalias 'eieio-speedbar #[128 "\300\301!\207" [error "Class eieio-speedbar is abstract"] 3 (#$ . 6524)]) (byte-code "\300\301\302\303!\"\210\300\304\305\303!\"\210\300\306\304\"\210\307\306\310\311#\210\312\303\313\304#\314\303\315\316\317$\207" [defalias eieio-speedbar-directory-button-p eieio-make-class-predicate eieio-speedbar-directory-button eieio-speedbar-directory-button--eieio-childp eieio-make-child-predicate eieio-speedbar-directory-button-child-p make-obsolete "use (cl-typep ... \\='eieio-speedbar-directory-button) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal (eieio-speedbar) ((buttontype :initform angle) (buttonface :initform speedbar-directory-face)) (:documentation "Class providing support for objects which behave like a directory." :method-invocation-order :depth-first :abstract t)] 6) #@89 You cannot create a new object of type `eieio-speedbar-directory-button'. (fn &rest _) (defalias 'eieio-speedbar-directory-button #[128 "\300\301!\207" [error "Class eieio-speedbar-directory-button is abstract"] 3 (#$ . 7450)]) (byte-code "\300\301\302\303!\"\210\300\304\305\303!\"\210\300\306\304\"\210\307\306\310\311#\210\312\303\313\304#\314\303\315\316\317$\207" [defalias eieio-speedbar-file-button-p eieio-make-class-predicate eieio-speedbar-file-button eieio-speedbar-file-button--eieio-childp eieio-make-child-predicate eieio-speedbar-file-button-child-p make-obsolete "use (cl-typep ... \\='eieio-speedbar-file-button) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal (eieio-speedbar) ((buttontype :initform bracket) (buttonface :initform speedbar-file-face)) (:documentation "Class providing support for objects which behave like a file." :method-invocation-order :depth-first :abstract t)] 6) #@84 You cannot create a new object of type `eieio-speedbar-file-button'. (fn &rest _) (defalias 'eieio-speedbar-file-button #[128 "\300\301!\207" [error "Class eieio-speedbar-file-button is abstract"] 3 (#$ . 8394)]) (byte-code "\300\301\302\303\302\304%\210\300\305\302\306\302\307%\210\300\310\302\311\302\312%\207" [cl-generic-define-method eieio-speedbar-make-tag-line nil ((object eieio-speedbar) depth) #[514 "\300!\301\302\"\204G\301\303\"\304=\203,\305\306\307\310\211\311 !\312\n\301\f\313\" & \202r\305\301\303\"\307\310\211\311 !\312\n\301\f\313\" & \202r\305\301\303\"\203T\314\202U\315\316\311 !\312\n\301\f\313\" & \210\211\205r\317T\"\207" [eieio-speedbar-object-children eieio-oref expanded buttontype expandtag speedbar-make-tag-line statictag 32 nil eieio-speedbar-object-buttonname eieio-speedbar-object-click buttonface 45 43 eieio-speedbar-object-expand eieio-speedbar-expand] 15 "Insert a tag line into speedbar at point for OBJECT.\nAll objects a child of symbol `eieio-speedbar' can be created from\nthis method. Override this if you need non-traditional tag lines.\nArgument DEPTH is the depth at which the tag line is inserted.\n\n(fn OBJECT DEPTH)"] eieio-speedbar-child-make-tag-lines ((object eieio-speedbar) _depth) #[514 "\300\301\302!\"\207" [error "You must implement `eieio-speedbar-child-make-tag-lines' for %s" eieio-object-name] 6 "Base method for creating tag lines for non-object children.\n\n(fn OBJECT DEPTH)"] eieio-speedbar-expand ((object eieio-speedbar) depth) #[514 "\300!\301@!\203\302\303\304\305\306\307!\310\"\311\312%\"\202%\211\205%\313\"\207" [eieio-speedbar-object-children eieio-object-p mapcar make-byte-code 257 "\301\300\"\207" vconcat vector [eieio-speedbar-make-tag-line] 4 "\n\n(fn CAR)" eieio-speedbar-child-make-tag-lines] 10 "Expand OBJECT at indentation DEPTH.\nInserts a list of new tag lines representing expanded elements within\nOBJECT.\n\n(fn OBJECT DEPTH)"]] 6) #@123 Handle a user click on TEXT representing object TOKEN. The object is at indentation level INDENT. (fn TEXT TOKEN INDENT) (defalias 'eieio-speedbar-object-click #[771 "\300!\207" [eieio-speedbar-handle-click] 5 (#$ . 10375)]) #@123 Expand object represented by TEXT. TOKEN is the object. INDENT is the current indentation level. (fn TEXT TOKEN INDENT) (defalias 'eieio-speedbar-object-expand #[771 "\301\302\"\203$\303\304!\210\305\306\307#\210\307\212\310\210\311u\210\312T\"\210*\202@\301\313\"\203<\303\314!\210\305\306\310#\210\315!\210\202@\316\317!\210\320 \207" [inhibit-read-only string-match "\\+" speedbar-change-expand-button-char 45 eieio-oset expanded t nil 1 eieio-speedbar-expand "-" 43 speedbar-delete-subblock error "Ooops... not sure what to do" speedbar-center-buffer-smartly] 7 (#$ . 10609)]) (cl-generic-define-method 'eieio-speedbar-child-description nil '((obj eieio-speedbar)) nil #[257 "\300\301\302!\"\207" [error "You must implement `eieio-speedbar-child-description' for %s" eieio-object-name] 5 "Return a description for a child of OBJ which is not an object.\n\n(fn OBJ)"]) #@61 Display info for the current line when in EDE display mode. (defalias 'eieio-speedbar-item-info #[0 "\300 \301!\203\302\303!!\202\304 \211\205\305!\262\207" [speedbar-line-token eieio-object-p message eieio-speedbar-description eieio-speedbar-find-nearest-object eieio-speedbar-child-description] 4 (#$ . 11503)]) #@145 Search backwards to the first line associated with an object. Optional argument DEPTH is the current depth of the search. (fn &optional DEPTH) (defalias 'eieio-speedbar-find-nearest-object #[256 "\212\211\204\300 \210\301\302!\203\303\304\305!!\262\211\2058\306\307 !\2046\211\310V\2036\211S\262\311\312\313\"\314\315#\210\202\307 )\207" [beginning-of-line looking-at "^\\([0-9]+\\):" string-to-number match-string 1 eieio-object-p speedbar-line-token 0 re-search-backward format "^%d:" nil t] 5 (#$ . 11834)]) #@125 If applicable, return the path to the file the cursor is on. Optional DEPTH is the depth we start at. (fn &optional DEPTH) (defalias 'eieio-speedbar-line-path #[256 "\301 \302\303\304\305\306!\307\"\310$\216\204 \311 \210\312\313!\210\314\315\316!!\262\317!\320!\203/\321!\2020\262)\207" [default-directory match-data make-byte-code 0 "\301\300\302\"\207" vconcat vector [set-match-data evaporate] 3 beginning-of-line looking-at "^\\([0-9]+\\):" string-to-number match-string 1 eieio-speedbar-find-nearest-object eieio-object-p eieio-speedbar-derive-line-path] 8 (#$ . 12365)]) (byte-code "\300\301\302\303\302\304%\210\305\306!\207" [cl-generic-define-method eieio-speedbar-object-children nil ((_object eieio-speedbar)) #[257 "\300\207" [nil] 2 "Return a list of children to be displayed in speedbar.\nIf the return value is a list of OBJECTs, then those objects are\nqueried for details. If the return list is made of strings,\nthen this object will be queried for the details needed\nto create a speedbar button.\n\n(fn OBJECT)"] provide eieio-speedbar] 6)