%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/local/share/emacs/27.2/lisp/cedet/
Upload File :
Create Path :
Current File : //usr/local/share/emacs/27.2/lisp/cedet/ede.elc

;ELC
;;; Compiled
;;; in Emacs version 27.2
;;; 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\300\305!\210\300\306!\210\300\307!\210\300\310!\210\300\311!\210\312\313\314\315#\207" [require cedet cl-lib eieio cl-generic eieio-speedbar ede/source ede/base ede/auto ede/detect load "ede/loaddefs" nil nomessage] 4)
#@35 Current version of the Emacs EDE.
(defconst ede-version "2.0" (#$ . 692))
#@45 Display the current running version of EDE.
(defalias 'ede-version #[nil "\301\302\"\207" [ede-version message "EDE %s"] 3 (#$ . 772) nil])
(byte-code "\300\301\302\303\304\305\304\306&\210\307\310\311\312\304\301\313\314&\210\307\315\316\317\304\301\313\320&\210\307\321\302\322\304\301\313\323\324\325\326\327&\207" [custom-declare-group ede nil "Emacs Development Environment." :group tools extensions custom-declare-variable ede-auto-add-method 'ask "Whether a new source file should be automatically added to a target.\nWhenever a new file is encountered in a directory controlled by a\nproject file, all targets are queried to see if it should be added.\nIf the value is `always', then the new file is added to the first\ntarget encountered.  If the value is `multi-ask', then if more than one\ntarget wants the file, the user is asked.  If only one target wants\nthe file, then it is automatically added to that target.  If the\nvalue is `ask', then the user is always asked, unless there is no\ntarget willing to take the file.  `never' means never perform the check." :type (choice (const always) (const multi-ask) (const ask) (const never)) ede-debug-program-function 'gdb "Default Emacs command used to debug a target." function ede-project-directories "Directories in which EDE may search for project files.\nIf the value is t, EDE may search in any directory.\n\nIf the value is a function, EDE calls that function with one\nargument, the directory name; the function should return t if\nEDE should look for project files in the directory.\n\nOtherwise, the value should be a list of fully-expanded directory\nnames.  EDE searches for project files only in those directories.\nIf you invoke the commands \\[ede] or \\[ede-new] on a directory\nthat is not listed, Emacs will offer to add it to the list.\n\nAny other value disables searching for EDE project files." (choice (const :tag "Any directory" t) (repeat :tag "List of directories" (directory)) (function :tag "Predicate")) :version "23.4" :risky t] 12)
#@300 Return non-nil if DIR is a safe directory to load projects from.
Projects that do not load a project definition as Emacs Lisp code
are safe, and can be loaded automatically.  Other project types,
such as those created with Project.ede files, are safe only if
specified by `ede-project-directories'.
(defalias 'ede-directory-safe-p #[(dir) "\302\303!!	\304=\206 \305	!\203	!\206 	<\205 	\235\207" [dir ede-project-directories directory-file-name expand-file-name t functionp] 3 (#$ . 2808)])
#@58 A list of all active projects currently loaded in Emacs.
(defvar ede-projects nil (#$ . 3314))
#@140 The current buffer's current root project.
If a file is under a project, this specifies the project that is at
the root of a project tree.
(defvar ede-object-root-project nil (#$ . 3416))
(make-variable-buffer-local 'ede-object-root-project)
#@144 The current buffer's current project at that level.
If a file is under a project, this specifies the project that contains the
current target.
(defvar ede-object-project nil (#$ . 3665))
(make-variable-buffer-local 'ede-object-project)
#@108 The current buffer's target object.
This object's class determines how to compile and debug from a buffer.
(defvar ede-object nil (#$ . 3908))
(make-variable-buffer-local 'ede-object)
#@115 The currently user-selected project or target.
If `ede-object' is nil, then commands will operate on this object.
(defvar ede-selected-object nil (#$ . 4099))
#@152 Non-nil when constructing a project hierarchy.
If the project is being constructed from an autoload, then the
value is the autoload object being used.
(defvar ede-constructing nil (#$ . 4265))
#@132 Non-nil means scan down a tree, otherwise rescans are top level only.
Do not set this to non-nil globally.  It is used internally.
(defvar ede-deep-rescan nil (#$ . 4465))
#@63 Using PROMPT, choose a single object from the current buffer.
(defalias 'ede-singular-object #[(prompt) "<\203\n\302	\"\207\207" [ede-object prompt ede-choose-object] 3 (#$ . 4643)])
#@130 Using PROMPT, ask the user which OBJECT to use based on the name field.
Argument LIST-O-O is the list of objects to choose from.
(defalias 'ede-choose-object #[(prompt list-o-o) "\304\305\"\306\n	\307\310$\311	\"\211A*\207" [list-o-o al prompt ans object-assoc-list name completing-read nil t assoc] 6 (#$ . 4837)])
#@36 Keymap used in project minor mode.
(defvar ede-minor-mode-map (byte-code "\302 \302 \303\304\305#\210\303\306\307#\210\303\310\311#\210\303\312\313#\210\303\314\315#\210\303\316\317#\210\303\320\321#\210\303\322\323#\210\303\324\325#\210\303\326\327#\210\303\330\331#\210\303\332\333#\210\303	\334#\210	*\207" [pmap map make-sparse-keymap define-key "e" ede-edit-file-target "a" ede-add-file "d" ede-remove-file "t" ede-new-target "g" ede-rescan-toplevel "s" ede-speedbar "f" ede-find-file "C" ede-compile-project "c" ede-compile-target "" ede-compile-selected "D" ede-debug-target "R" ede-run-target "."] 4) (#$ . 5164))
#@35 Keymap used in `global-ede-mode'.
(defvar global-ede-mode-map (byte-code "\302 \303\304\305	B#\210)\207" [map cedet-menu-map make-sparse-keymap define-key [menu-bar cedet-menu] "Development"] 5) (#$ . 5809))
(byte-code "\301\302\303#\210\301\304\305#\210\301\306\307#\210\301\310\311#\210\301\312\313#\210\301\314\315#\210\301\316\317#\207" [cedet-menu-map define-key [ede-find-file] (menu-item "Find File in Project..." ede-find-file :enable ede-object :visible global-ede-mode) [ede-speedbar] (menu-item "View Project Tree" ede-speedbar :enable ede-object :visible global-ede-mode) [ede] (menu-item "Load Project" ede :visible global-ede-mode) [ede-new] (menu-item "Create Project" ede-new :enable (not ede-object) :visible global-ede-mode) [ede-target-options] (menu-item "Target Options" ede-target-options :filter ede-target-forms-menu :visible global-ede-mode) [ede-project-options] (menu-item "Project Options" ede-project-options :filter ede-project-forms-menu :visible global-ede-mode) [ede-build-forms-menu] (menu-item "Build Project" ede-build-forms-menu :filter ede-build-forms-menu :enable ede-object :visible global-ede-mode)] 4)
#@63 Return non-nil if this buffer belongs to at least one target.
(defalias 'ede-buffer-belongs-to-target-p #[nil "\211:\203\n	@	\205\302	\303\")\207" [ede-object obj obj-of-class-p ede-target] 4 (#$ . 6969)])
#@64 Return non-nil if this buffer belongs to at least one project.
(defalias 'ede-buffer-belongs-to-project-p #[nil "?\206:?\205\302	\303\"\207" [ede-object ede-object-project obj-of-class-p ede-project] 3 (#$ . 7187)])
#@68 Return non-nil if some member of `ede-object' is a child of CLASS.
(defalias 'ede-menu-obj-of-class-p #[(class) "<\203\n\302\303\"\207\304	\"\207" [ede-object class cl-some #[(o) "\302	\"\207" [o class obj-of-class-p] 3] obj-of-class-p] 3 (#$ . 7415)])
#@115 Create a sub menu for building different parts of an EDE system.
Argument MENU-DEF is the menu definition to use.
(defalias 'ede-build-forms-menu #[(_menu-def) "\306\307\310\311 \312\211\211\211\211\211\205\212\313
\303\"\205\314
\303\"<\203+\202.C\315\f\316
\317\"\"	\203X\320\321!\203X	\203X\315\f\316	@\317\"\"	@	A\211\204E\203\205@=\204~\316@\312\"\315\f\nG\322U\203v\n\202|\323@!\nB\"A\211\204\\\315\f\324C\".\"!\207" [tskip ede-obj targitems targets newmenu obj easy-menu-filter-return easy-menu-create-menu "Build Forms" ede-current-project nil slot-boundp eieio-oref append ede-menu-items-build t ede-menu-obj-of-class-p ede-target 1 ede-name ["Make distribution" ede-make-dist t] ede-object] 10 (#$ . 7680)])
#@72 Create a target MENU-DEF based on the object belonging to this buffer.
(defalias 'ede-target-forms-menu #[(_menu-def) "\303\304\305\206	\306\307\n\205,\n<\204\"\310\n\311\"\203\"\310\n\311\"\202,\n<\205,\310\n@\311\"\")\"!\207" [ede-selected-object ede-object obj easy-menu-filter-return easy-menu-create-menu "Target Forms" append (["Add File" ede-add-file (and (ede-current-project) (oref (ede-current-project) targets))] ["Remove File" ede-remove-file (ede-buffer-belongs-to-project-p)] "-") eieio-oref menu] 8 (#$ . 8446)])
#@72 Create a target MENU-DEF based on the object belonging to this buffer.
(defalias 'ede-project-forms-menu #[(_menu-def) "\304\305\306\307 \211\205
\310!\311\3121@	\2038\313	\302\"\2038\314\n\315	\302\"\"\316	!@\211<\203	@\211\204\314\317\n\"0\202H\320\321\"\210\n)+\"!\207" [obj class menu err easy-menu-filter-return easy-menu-create-menu "Project Forms" ede-current-project eieio-object-class nil (error) slot-exists-p append eieio-oref-default eieio-class-parents (["Add Target" ede-new-target (ede-current-project)] ["Remove Target" ede-delete-target ede-object] ("Default configuration" :filter ede-configuration-forms-menu) "-") message "Err found: %S"] 9 (#$ . 8989)])
#@254 Create a submenu for selecting the default configuration for this project.
The current default is in the current object's CONFIGURATION-DEFAULT slot.
All possible configurations are in CONFIGURATIONS.
Argument MENU-DEF specifies the menu being created.
(defalias 'ede-configuration-forms-menu #[(_menu-def) "\306\307\310\311 \211\205\312\313\"\205\312\314\"\315	\315\211\203<
@\316\f\317\fD\320\321\322\f\n\230&B
A\211\204\"*\237,\"!\207" [obj conf cdef menu C --dolist-tail-- easy-menu-filter-return easy-menu-create-menu "Configurations" ede-current-project eieio-oref configurations configuration-default nil vector ede-project-configurations-set :style toggle :selected] 12 (#$ . 9689)])
#@170 Set the current project's current configuration to NEWCONFIG.
This function is designed to be used by `ede-configuration-forms-menu'
but can also be used interactively.
(defalias 'ede-project-configurations-set #[(newconfig) "\301\302 \303#\210\304\305\306\302 !#\207" [newconfig eieio-oset ede-current-project configuration-default message "%s will now build in %s mode." eieio-object-name] 4 (#$ . 10409) (list (let* ((proj (ede-current-project)) (configs (eieio-oref proj 'configurations))) (completing-read "New configuration: " configs nil t (eieio-oref proj 'configuration-default))))])
#@124 Create a menu of the project, and targets that can be customized.
Argument MENU-DEF is the definition of the current menu.
(defalias 'ede-customize-forms-menu #[(_menu-def) "\302\303\304\305 \306\205-\205\307\310\"\205\311\310\"\312\313\314!P\315!B\316D\317\320	\"\"*\"!\207" [obj targ easy-menu-filter-return easy-menu-create-menu "Customize Project" ede-current-project nil slot-boundp targets eieio-oref append "Project " ede-name eieio-customize-object-group ["Reorder Targets" ede-project-sort-targets t] mapcar #[(o) "\301\302!P\303!B\207" [o "Target " ede-name eieio-customize-object-group] 3]] 8 (#$ . 11011)])
#@149 Add target specific keybindings into the local map.
Optional argument DEFAULT indicates if this should be set to the default
version of the keymap.
(defalias 'ede-apply-object-keymap #[(&optional _default) "\206	\n\3061H\307\f!\f=\203
\202 \310
\307!\"\311\f\211
\205C
@\f\312\313\f@P\fA\"\210
A\211
\204)\311+0\202J\210\311*\207" [ede-object ede-selected-object ede-object-project proj object keys (error) ede-object-keybindings append nil local-set-key "." key --dolist-tail--] 5 (#$ . 11653)])
(byte-code "\300\301\302\303\302\304%\210\300\301\302\305\302\306%\207" [cl-generic-define-method ede-menu-items-build nil ((obj ede-project) &optional current) #[(obj &optional current) "\203\302C\207\303\304\305	!P\306	DD!C\207" [current obj ["Build Current Project" ede-compile-project t] vector "Build Project " ede-name project-compile-project] 4 "Return a list of menu items for building project OBJ.\nIf optional argument CURRENT is non-nil, return sub-menu code."] ((obj ede-target) &optional current) #[(obj &optional current) "\203\302C\207\303\304\305	!P\306	D\307#C\207" [current obj ["Build Current Target" ede-compile-target t] vector "Build Target " ede-name project-compile-target t] 4 "Return a list of menu items for building target OBJ.\nIf optional argument CURRENT is non-nil, return sub-menu code."]] 6)
#@68 Apply options to the current buffer for the active project/target.
(defalias 'ede-apply-target-options #[nil "\300 \210\301 \210\302 \207" [ede-apply-project-local-variables ede-apply-object-keymap ede-apply-preprocessor-map] 1 (#$ . 13012)])
#@87 Turn on EDE minor mode in the current buffer if needed.
To be used in hook functions.
(defalias 'ede-turn-on-hook #[nil "\302 ;\203;\204	\303=\204	\304=\205\305\306!\207" [default-directory major-mode buffer-file-name dired-mode vc-dired-mode ede-minor-mode 1] 2 (#$ . 13261)])
#@97 Non-nil if Ede minor mode is enabled.
Use the command `ede-minor-mode' to change this variable.
(defvar ede-minor-mode nil (#$ . 13554))
(make-variable-buffer-local 'ede-minor-mode)
#@459 Toggle EDE (Emacs Development Environment) minor mode.

If called interactively, enable Ede minor mode if ARG is positive, and
disable it if ARG is zero or negative.  If called from Lisp, also
enable the mode if ARG is omitted or nil, and toggle it if ARG is
`toggle'; disable the mode otherwise.

If this file is contained, or could be contained in an EDE
controlled project, then this mode is activated automatically
provided `global-ede-mode' is enabled.
(defalias 'ede-minor-mode #[(&optional arg) "\306 	\307=\203\n?\202\310	!\311V\312=\204 \313=\203/\314\n\203)\315\202*\316!\210\202A\n\203A\f\204=\317 \210\202A\302\316!\210\320\321\n\203K\322\202L\323\"\210\324\325!\203q\306 \203`\306 \232\203q\326\327\330\n\203l\331\202m\332
#\210))\333 \210\n\207" [#1=#:last-message arg ede-minor-mode major-mode ede-constructing local current-message toggle prefix-numeric-value 0 dired-mode vc-dired-mode ede-dired-minor-mode 1 -1 ede-initialize-state-current-buffer run-hooks ede-minor-mode-hook ede-minor-mode-on-hook ede-minor-mode-off-hook called-interactively-p any " in current buffer" message "Ede minor mode %sabled%s" "en" "dis" force-mode-line-update] 4 (#$ . 13743) (list (or current-prefix-arg 'toggle))])
(defvar ede-minor-mode-hook nil)
(byte-code "\301\302N\204\f\303\301\302\304#\210\305\306\307\310\300!\205\307\211%\207" [ede-minor-mode-map ede-minor-mode-hook variable-documentation put "Hook run after entering or leaving `ede-minor-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" add-minor-mode ede-minor-mode nil boundp] 6)
#@85 Initialize the current buffer's state for EDE.
Sets buffer local variables for EDE.
(defalias 'ede-initialize-state-current-buffer #[nil "\306 \210\307\310	\300\"\211\204/\311	!\211\203.\312A\313\"\204(@\314\f!)\203.\315	\300#)\n\205P\316p\317\"\206@\320!
\204N\203N\321 \210\322 *\207" [ROOT default-directory proj projdetect top ede-object ede-flush-deleted-projects nil ede-directory-get-open-project ede-directory-project-cons eieio-oref safe-p ede-directory-safe-p ede-load-project-file ede-buffer-object ede-object-project ede-project-root ede-auto-add-to-target ede-apply-target-options ede-object-root-project] 5 (#$ . 15409)])
#@45 Reset all the buffers due to change in EDE.
(defalias 'ede-reset-all-buffers #[nil "\305 \306\211\205(	@\307!\203 rq\210\306\211\306\310 \210)	A\211\204	\306*\207" [b --dolist-tail-- ede-object ede-object-project ede-object-root-project buffer-list nil buffer-file-name ede-initialize-state-current-buffer] 3 (#$ . 16075) nil])
#@266 Non-nil if Global Ede mode is enabled.
See the `global-ede-mode' command
for a description of this minor mode.
Setting this variable directly does not take effect;
either customize it (see the info node `Easy Customization')
or call the function `global-ede-mode'.
(custom-declare-variable 'global-ede-mode nil '(#$ . 16422) :set 'custom-set-minor-mode :initialize 'custom-initialize-default :group 'ede :type 'boolean)
#@394 Toggle global EDE (Emacs Development Environment) mode.

If called interactively, enable Global Ede mode if ARG is positive,
and disable it if ARG is zero or negative.  If called from Lisp, also
enable the mode if ARG is omitted or nil, and toggle it if ARG is
`toggle'; disable the mode otherwise.

This global minor mode enables `ede-minor-mode' in all buffers in
an EDE controlled project.
(defalias 'global-ede-mode #[(&optional arg) "\306 \307\302	\310=\203\311\302!?\202\312	!\313V\"\210\n\203O\203'\314\f\315\316#\210\317\320\321\"\210\317\322\323\"\210\317\324\325\"\210\317\326\327\330#\210\317\331\327\"\210\317\332\333\"\210\334 \210\335 \210\202y\314\f\336\337#\210\340\320\321\"\210\340\322\323\"\210\340\324\325\"\210\340\326\327\"\210\340\331\327\"\210\340\332\333\"\210\333 \210\335 \210\341\342\311\302!\203\205\343\202\206\344\"\210\345\346!\203\261\347\302!\210\306 \203\236\306 \232\203\261\350\351\352\311\302!\203\254\353\202\255\354
#\210))\355 \210\311\302!\207" [#1=#:last-message arg global-ede-mode semantic-mode cedet-menu-map local current-message set-default toggle default-value prefix-numeric-value 0 define-key [cedet-menu-separator] ("--") add-hook semanticdb-project-predicate-functions ede-directory-project-p semanticdb-project-root-functions ede-toplevel-project-or-nil ecb-source-path-functions ede-ecb-project-paths find-file-hook ede-turn-on-hook t dired-mode-hook kill-emacs-hook ede-save-cache ede-load-cache ede-reset-all-buffers [cedet-menu-separator] nil remove-hook run-hooks global-ede-mode-hook global-ede-mode-on-hook global-ede-mode-off-hook called-interactively-p any customize-mark-as-set "" message "Global Ede mode %sabled%s" "en" "dis" force-mode-line-update] 4 (#$ . 16849) (list (or current-prefix-arg 'toggle))])
(defvar global-ede-mode-hook nil)
(byte-code "\301\302N\204\f\303\301\302\304#\210\305\306\307\310\300!\205\307\211%\207" [global-ede-mode-map global-ede-mode-hook variable-documentation put "Hook run after entering or leaving `global-ede-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" add-minor-mode global-ede-mode nil boundp] 6)
#@58 List of file name patters that EDE will never ask about.
(defvar ede-ignored-file-alist '("\\.cvsignore$" "\\.#" "~$") (#$ . 19069))
#@28 Should we ignore FILENAME?
(defalias 'ede-ignore-file #[(filename) "\304\n\204	\203\305	@\"\203\306	A\202\n*\207" [ede-ignored-file-alist F any filename nil string-match t] 3 (#$ . 19208)])
#@171 Look for a target that wants to own the current file.
Follow the preference set with `ede-auto-add-method' and get the list
of objects with the `ede-want-file-p' method.
(defalias 'ede-auto-add-to-target #[nil "\203\n\306\307\310 \"\210	\311=\206\312\313 !?\205\273\314\315\316 \317\"\314\211\203<\f@\320\313 \"\2035\nB\fA\211\204&*\n\205\272	\321=\204T	\322=\203\237\323\nGW\203\237\324\325\326
!?\205^\327\330\331\n\"#$\332%\333\334\335\313 \"$\314\332$&\336&$\"&\337&A!\203\215\340&A!\202\233&A\341=\203\232\342 \202\233\314+\202\272	\343=\204\262	\322=\203\271\nG\323U\203\271\340\n@!\202\272\314)\207" [ede-object ede-auto-add-method desires want --dolist-tail-- default-directory error "ede-object already defined for %s" buffer-name never ede-ignore-file buffer-file-name nil eieio-oref ede-current-project targets ede-want-file-p ask multi-ask 1 append (("none") ("new target" . new)) ede-directory-project-p (("create subproject" . project)) object-assoc-list name t completing-read format "Add %s to target: " assoc eieio-object-p ede-add-file new ede-new-target always al case-fold-search ans] 7 (#$ . 19419)])
#@120 Start up EDE for directory DIR.
If DIR has an existing project file, load it.
Otherwise, create a new project for DIR.
(defalias 'ede #[(dir) "\302!\204\303\304\"\210\305!\203\303\306\"\210\307!\2032\310!\210\311!\203)\312 \207\313!\314\315!)\207\303\316\"\207" [dir default-directory file-directory-p error "%s is not a directory" ede-directory-get-open-project "%s already has an open project associated with it" ede-check-project-directory ede-load-project-file ede-current-project ede-reset-all-buffers expand-file-name call-interactively ede-new "%s is not an allowed project directory in `ede-project-directories'"] 3 (#$ . 20588) (let* ((top (ede-toplevel-project default-directory)) (promptdflt (or top default-directory))) (list (read-directory-name "Project directory: " promptdflt promptdflt t)))])
#@136 Function used to ask the user if they want to permit a project to load.
This is abstracted out so that tests can answer this question.
(defvar ede-check-project-query-fcn 'y-or-n-p (#$ . 21421))
#@237 Check if DIR should be in `ede-project-directories'.
If it is not, try asking the user if it should be added; if so,
add it and save `ede-project-directories' via Customize.
Return nil if DIR should not be in `ede-project-directories'.
(defalias 'ede-check-project-directory #[(dir) "\306\307!!	\310=\206A\311	!\203	!\206A	<\205A	\235\206A\n\312\313\"!\205A	B\2048\f\203@\314\315\301	\"\210)\310\207" [dir ede-project-directories ede-check-project-query-fcn custom-file user-init-file coding-system-for-read directory-file-name expand-file-name t functionp format-message "`%s' is not listed in `ede-project-directories'.\nAdd it to the list of allowed project directories? " nil customize-save-variable] 4 (#$ . 21623)])
#@112 Create a new project starting from project type TYPE.
Optional argument NAME is the name to give this project.
(defalias 'ede-new #[(type &optional name) "\306\307!\210\310!\204\311\312\"\210\313!\204\311\314\"\210\315!\204%\311\316\"\210\315!\210\317	\320\n#\321\322\"\321\323\"\324!\210\306
!\210\325\321\326\"\327\206O\330\331!\332\333\f;\203]\334\f!\202l\335\f!\203h\f \202l\311\336\f\"\337\340&	*+\321\341\",+-\342-\343\321+\320\"#\210),\203\244\342+,@,A@#\210,AA\211,\204\216\344 \211.\203\270\345.+\"\210\346.!\210)\346+!\210+\347!\210\350/\351\352!\207" [default-directory type ede-project-class-files obj pf f require ede/custom file-exists-p error "Cannot create project in non-existent directory %s" file-writable-p "No write permissions for %s" ede-check-project-directory "%s is not an allowed project directory in `ede-project-directories'" object-assoc name eieio-oref file proj-file ede-project-directory-remove-hash make-instance class-sym :name read-string "Name: " :directory :file expand-file-name fboundp "Unknown file name specifier %S" :targets nil initializers eieio-oset object-name ede-parent-project ede-add-subproject ede-commit-project ede-load-project-file t message "Project created and saved.  You may now create targets." nobj inits #1=#:v pp ede-minor-mode] 11 (#$ . 22370) (list (completing-read "Project Type: " (object-assoc-list 'name (let* ((l ede-project-class-files) (cp (ede-current-project)) (cs (if cp (progn (eieio-object-class cp)))) (r nil)) (while l (if cs (if (eq (eieio-oref (car l) 'class-sym) cs) (setq r (cons (car l) r))) (if (eieio-oref (car l) 'new-p) (setq r (cons (car l) r)))) (setq l (cdr l))) (if (not r) (progn (if cs (error "No valid interactive sub project types for %s" cs) (error "EDE error: Can't find project types to create")))) r)) nil t))])
(cl-generic-define-method 'ede-add-subproject nil '((proj-a ede-project) proj-b) nil #[(proj-a proj-b) "\302\303	\304\303\"B#\207" [proj-a proj-b eieio-oset subproj eieio-oref] 7 "Add into PROJ-A, the subproject PROJ-B."])
#@112 Invoke method SYM on the current buffer's project object.
ARGS are additional arguments to pass to method SYM.
(defalias 'ede-invoke-method #[(sym &rest args) "\204
\303\304\305	!\306 #\210\307	\310\311!\n#\207" [ede-object sym args error "Cannot invoke %s for %s" symbol-name buffer-name apply ede-singular-object "Target: "] 4 (#$ . 24464)])
#@27 Rescan all project files.
(defalias 'ede-rescan-toplevel #[nil "\302 \204	\303\304!\210\302 \305\306	!\210\307 *\207" [ede-deep-rescan root ede-toplevel error "Attempt to rescan a project that isn't open" t project-rescan ede-reset-all-buffers] 2 (#$ . 24816) nil])
#@259 Create a new target specific to this type of project file.
Different projects accept different arguments ARGS.
Typically you can specify NAME, target TYPE, and AUTOADD, where AUTOADD is
a string "y" or "n", which answers the y/n question done interactively.
(defalias 'ede-new-target #[(&rest args) "\303\304\305 #\210	\205\306	!?\205\307\310p!\311 \207" [args buffer-file-name ede-object apply project-new-target ede-current-project file-directory-p nil ede-buffer-object ede-apply-target-options] 4 (#$ . 25092) nil])
#@60 Create a new target specific to this type of project file.
(defalias 'ede-new-target-custom #[nil "\300\301 !\207" [project-new-target-custom ede-current-project] 2 (#$ . 25625) nil])
#@41 Delete TARGET from the current project.
(defalias 'ede-delete-target #[(target) "\303!\304!\210\212	\203	@q\210\305\306p!	A\211\204
)\307 )\207" [target condemned ede-object ede-target-buffers project-delete-target nil ede-buffer-object ede-apply-target-options] 3 (#$ . 25815) (list (let ((ede-object (ede-current-project))) (ede-invoke-method 'project-interactive-select-target "Target: ")))])
#@60 Add the current buffer to a TARGET in the current project.
(defalias 'ede-add-file #[(target) ";\203\304 \305\306\307	\310\"\"\311\n\"A*\204 \312\313\"\210\314\315 \"\210\316\317 \210\204:\312\320\321\315 !\322!#\210\323 \207" [target proj ob ede-object ede-current-project object-assoc-list name eieio-oref targets assoc error "Could not find specified target %S" project-add-file buffer-file-name nil ede-initialize-state-current-buffer "Can't add %s to target %s: Wrong file type" file-name-nondirectory eieio-object-name ede-apply-target-options] 5 (#$ . 26226) (list (let ((ede-object (ede-current-project))) (ede-invoke-method 'project-interactive-select-target "Target: ")))])
#@109 Remove the current file from targets.
Optional argument FORCE forces the file to be removed without asking.
(defalias 'ede-remove-file #[(&optional force) "\204\n\303\304\305 \"\210<\203\306\202C\211\203:	\204,\307\310\311\312\n@!\"!\2033\313\n@\314 \"\210\nA\211\204\306\315p!\316 )\207" [ede-object force eo error "Cannot invoke remove-file for %s" buffer-name nil y-or-n-p format "Remove from %s? " ede-name project-remove-file buffer-file-name ede-buffer-object ede-apply-target-options] 6 (#$ . 26932) "P"])
#@66 Enter the project file to hand edit the current buffer's target.
(defalias 'ede-edit-file-target #[nil "\300\301!\207" [ede-invoke-method project-edit-file-target] 2 (#$ . 27470) nil])
#@30 Compile the current project.
(defalias 'ede-compile-project #[nil "\302 \303!\203\303!\202\304\305!*\207" [cp ede-object ede-current-project ede-parent-project ede-invoke-method project-compile-project] 2 (#$ . 27661) nil])
#@47 Compile some TARGET from the current project.
(defalias 'ede-compile-selected #[(target) "\301!\207" [target project-compile-target] 2 (#$ . 27901) (list (project-interactive-select-target (ede-current-project) "Target to Build: "))])
#@49 Compile the current buffer's associated target.
(defalias 'ede-compile-target #[nil "\300\301!\207" [ede-invoke-method project-compile-target] 2 (#$ . 28143) nil])
#@47 Debug the current buffer's associated target.
(defalias 'ede-debug-target #[nil "\300\301!\207" [ede-invoke-method project-debug-target] 2 (#$ . 28313) nil])
#@45 Run the current buffer's associated target.
(defalias 'ede-run-target #[nil "\300\301!\207" [ede-invoke-method project-run-target] 2 (#$ . 28477) nil])
#@49 Create a distribution from the current project.
(defalias 'ede-make-dist #[nil "\301 \302\303!)\207" [ede-object ede-toplevel ede-invoke-method project-make-dist] 2 (#$ . 28635) nil])
(byte-code "\300\301\302\303\302\304%\210\300\301\302\305\302\306%\210\300\307\302\310\302\311%\210\300\307\302\312\302\313%\210\300\314\302\315\302\316%\210\300\317\302\320\302\321%\210\300\322\302\323\302\324%\210\300\325\302\326\302\327%\210\300\330\302\331\302\332%\210\300\333\302\334\302\335%\210\300\336\302\337\302\340%\210\300\341\302\342\302\343%\210\300\344\302\345\302\346%\210\300\347\302\350\302\351%\210\300\352\302\353\302\354%\210\300\355\302\356\302\357%\207" [cl-generic-define-method project-interactive-select-target nil ((this ede-project-placeholder) prompt) #[(this prompt) "\302	\"\207" [this prompt project-interactive-select-target] 3 "Make sure placeholder THIS is replaced with the real thing, and pass through."] ((this ede-project) prompt) #[(this prompt) "\303\304\305\306\"\"\307\310\n	\311\312$	\"A)\207" [this ob prompt object-assoc-list name eieio-oref targets assoc completing-read nil t] 6 "Interactively query for a target that exists in project THIS.\nArgument PROMPT is the prompt to use when querying the user for a target."] project-add-file ((this ede-project-placeholder) file) #[(this file) "\302	\"\207" [this file project-add-file] 3 "Make sure placeholder THIS is replaced with the real thing, and pass through."] ((ot ede-target) _file) #[(ot _file) "\301\302\303!\"\207" [ot error "add-file not supported by %s" eieio-object-name] 4 "Add the current buffer into project target OT.\nArgument FILE is the file to add."] project-remove-file ((ot ede-target) _fnnd) #[(ot _fnnd) "\301\302\303!\"\207" [ot error "remove-file not supported by %s" eieio-object-name] 4 "Remove the current buffer from project target OT.\nArgument FNND is an argument."] project-edit-file-target ((_ot ede-target)) #[(_ot) "\300\301\302 \303\"!\207" [find-file eieio-oref ede-current-project file] 4 "Edit the target OT associated with this file."] project-new-target ((proj ede-project) &rest _args) #[(proj &rest _args) "\301\302\303!\"\207" [proj error "new-target not supported by %s" eieio-object-name] 4 "Create a new target.  It is up to the project PROJ to get the name.\n\n(fn PROJ &rest ARGS)"] project-new-target-custom ((proj ede-project)) #[(proj) "\301\302\303!\"\207" [proj error "New-target-custom not supported by %s" eieio-object-name] 4 "Create a new target.  It is up to the project PROJ to get the name."] project-delete-target ((ot ede-target)) #[(ot) "\301\302\303!\"\207" [ot error "add-file not supported by %s" eieio-object-name] 4 "Delete the current target OT from its parent project."] project-compile-project ((obj ede-project) &optional _command) #[(obj &optional _command) "\301\302\303!\"\207" [obj error "compile-project not supported by %s" eieio-object-name] 4 "Compile the entire current project OBJ.\nArgument COMMAND is the command to use when compiling."] project-compile-target ((obj ede-target) &optional _command) #[(obj &optional _command) "\301\302\303!\"\207" [obj error "compile-target not supported by %s" eieio-object-name] 4 "Compile the current target OBJ.\nArgument COMMAND is the command to use for compiling the target."] project-debug-target ((obj ede-target)) #[(obj) "\301\302\303!\"\207" [obj error "debug-target not supported by %s" eieio-object-name] 4 "Run the current project target OBJ in a debugger."] project-run-target ((obj ede-target)) #[(obj) "\301\302\303!\"\207" [obj error "run-target not supported by %s" eieio-object-name] 4 "Run the current project target OBJ."] project-make-dist ((this ede-project)) #[(this) "\301\302\303!\"\207" [this error "Make-dist not supported by %s" eieio-object-name] 4 "Build a distribution for the project based on THIS project."] project-dist-files ((this ede-project)) #[(this) "\301\302\303!\"\207" [this error "Dist-files is not supported by %s" eieio-object-name] 4 "Return a list of files that constitute a distribution of THIS project."] project-rescan ((this ede-project)) #[(this) "\301\302\303!\"\207" [this error "Rescanning a project is not supported by %s" eieio-object-name] 4 "Rescan the EDE project THIS."]] 6)
#@99 Return a list of all paths for all active EDE projects.
This functions is meant for use with ECB.
(defalias 'ede-ecb-project-paths #[nil "\303\211\203\304\305\n@\306\"!	B\nA\211\204	*\207" [ede-projects d p nil file-name-directory eieio-oref file] 5 (#$ . 32900)])
#@92 Add the project PROJ to the master list of projects.
On success, return the added project.
(defalias 'ede-add-project-to-global-list #[(proj) "\204\302\303!\210\304!\204\302\305!\210\306\307\"\204\302\310!\210	\235\204'	B\207" [proj ede-projects error "No project created to add to master list" eieio-object-p "Attempt to add non-object to master project list" obj-of-class-p ede-project-placeholder "Attempt to add a non-project to the ede projects list"] 3 (#$ . 33180)])
#@55 Remove project PROJ from the master list of projects.
(defalias 'ede-delete-project-from-global-list #[(proj) "\302	\"\211\207" [proj ede-projects remove] 3 (#$ . 33674)])
#@108 Scan the projects list for projects which no longer exist.
Flush the dead projects from the project cache.
(defalias 'ede-flush-deleted-projects #[nil "\305	\305\211\203'@\306\307\n\310\"!\204 \n\235\204 \nBA\211\204\n*\305\211\205?@\311\f!\210A\211\2040\305+\207" [dead ede-projects P --dolist-tail-- D nil file-exists-p eieio-oref file ede-delete-project-from-global-list] 5 (#$ . 33855) nil])
#@70 Perform a sanity check to make sure there are no duplicate projects.
(defalias 'ede-global-list-sanity-check #[nil "\305	\305\211\203/@\306\n\307\"\235\203!\310\311\306\n\307\"\"\210\202(\306\n\307\"BA\211\204\n*\f\204a\305	\305\211\203`@\312\n!\235\203S\310\313\312\n!\"\210\202Y\312\n!BA\211\204>*\314\315\f\203k\316\202l\317\")\207" [scanned ede-projects P --dolist-tail-- ede--disable-inode nil eieio-oref directory error "Duplicate project (by dir) found in %s!" ede--project-inode "Duplicate project (by inode) found in %s!" message "EDE by directory %sis still sane." "" "& inode "] 6 (#$ . 34280) nil])
#@234 Project file independent way to read a project in from DIR.
Optional DETECTIN is an autoload cons from `ede-detect-directory-for-project'
which can be passed in to save time.
Optional ROOTRETURN will return the root project for DIR.
(defalias 'ede-load-project-file #[(dir &optional detectin rootreturn) "?\205S\306	!\210\307\310	!!\206\311\n!\312\211\312\f\205R\f@\fA\313\314\"\211\204?
\315
\")\203JL\210\316\n\"\210-\207" [ede-constructing dir path detectin detect autoloader ede-project-directory-remove-hash file-name-as-directory expand-file-name ede-directory-project-cons nil ede-directory-get-toplevel-open-project exact ede-auto-load-project ede-find-subproject-for-directory toppath o rootreturn] 4 (#$ . 34929)])
#@159 Return the project belonging to the parent directory.
Return nil if there is no previous directory.
Optional argument OBJ is an object to find the parent of.
(defalias 'ede-parent-project #[(&optional obj) "\206	\203\306!\202\211\205\n\205\f\n=?\205T\203,\307\310\"\202-

\311
!\211\205S\f\206A\312!\211\203N\313\f\"\206R\314!)**\207" [obj ede-object-project proj ede-object-root-project root default-directory ede-project-root eieio-oref directory ede-up-directory ede-directory-get-toplevel-open-project ede-find-subproject-for-directory ede-directory-get-open-project thisdir updir] 4 (#$ . 35698)])
#@96 Return the current project file.
If optional DIR is provided, get the project for DIR instead.
(defalias 'ede-current-project #[(&optional dir) "\203\n	\230\205\n\205\n\211\203\202\"\206	\305\f!))\207" [dir default-directory ede-object-project proj ldir ede-directory-get-open-project] 3 (#$ . 36343)])
#@209 Return the target object for BUFFER.
This function clears cached values and recalculates.
Optional PROJSYM is a symbol, which will be set to the project
that contains the target that becomes buffer's object.
(defalias 'ede-buffer-object #[(&optional buffer projsym) "\212\204pq\210\306\307 \211\310!\203\311\"	\2049\f=\2049\312!\211\203\311\"\211\203\"	G\313U\203C	@
\203[
9\203[	\203W
L\210\202[
\nL\210+	)\207" [buffer ede-object localpo po top projsym nil ede-current-project ede-toplevel ede-find-target ede-parent-project 1] 4 (#$ . 36669)])
(cl-generic-define-method 'ede-target-in-project-p nil '((proj ede-project) target) nil #[(proj target) "\304\305\"\203	\306\305\">\203\207\306\307\"\310\211\203.\n\204.\311@	\"A\211\204\n*\207" [proj target ans s slot-boundp targets eieio-oref subproj nil ede-target-in-project-p] 5 "Is PROJ the parent of TARGET?\nIf TARGET belongs to a subproject, return that project file."])
#@151 Return the project which is the parent of TARGET.
It is recommended you track the project a different way as this function
could become slow in time.
(defalias 'ede-target-parent #[(target) "\206\305	\204\n\203\306\n@\f\"\nA\202*\207" [ede-object-project ede-projects projs ans target nil ede-target-in-project-p] 3 (#$ . 37655)])
(byte-code "\300\301\302\303\302\304%\210\300\305\302\306\302\307%\210\300\310\302\311\302\312%\210\300\310\302\313\302\314%\207" [cl-generic-define-method ede-find-target nil ((proj ede-project) buffer) #[(proj buffer) "rq\210	\203\n\205B\n=\205B	\202B\306\"\203!\202B\307\305\"\310\211\203@\306
@\"\2039
@\fB
A\211\204,\f*)\207" [buffer ede-object ede-object-project proj f targets ede-buffer-mine eieio-oref nil] 4 "Fetch the target in PROJ belonging to BUFFER or nil."] ede-target-buffer-in-sourcelist ((this ede-target) buffer source) #[(this buffer source) "\303\304	!\"\n\235\207" [this buffer source ede-convert-path buffer-file-name] 4 "Return non-nil if object THIS is in BUFFER to a SOURCE list.\nHandles complex path issues."] ede-buffer-mine ((_this ede-project) _buffer) #[(_this _buffer) "\300\207" [nil] 1 "Return non-nil if object THIS lays claim to the file in BUFFER."] ((this ede-target) buffer) #[(this buffer) "\3021\303	\304\305\"#0\207\210\306\207" [this buffer (error) ede-target-buffer-in-sourcelist eieio-oref source nil] 6 "Return non-nil if object THIS lays claim to the file in BUFFER."]] 6)
#@126 Return a list of all active buffers controlled by PROJECT.
This includes buffers controlled by a specific target of PROJECT.
(defalias 'ede-project-buffers #[(project) "\304 \305\211\203'r	@q\210\n\203\306	@\"\203	@B)	A\211\204	*\207" [pl bl ede-object project buffer-list nil ede-find-target] 4 (#$ . 39156)])
#@57 Return a list of buffers that are controlled by TARGET.
(defalias 'ede-target-buffers #[(target) "\304 \305\211\203,r	@q\210\n<\203\n>\202\n=\203$	@B)	A\211\204	*\207" [pl bl ede-object target buffer-list nil] 3 (#$ . 39486)])
#@59 Return a list of all buffers controlled by an EDE object.
(defalias 'ede-buffers #[nil "\303 \304\211\203r	@q\210\n\203	@B)	A\211\204	*\207" [pl bl ede-object buffer-list nil] 3 (#$ . 39734)])
#@48 Execute PROC on all buffers controlled by EDE.
(defalias 'ede-map-buffers #[(proc) "\301\302 \"\207" [proc mapcar ede-buffers] 3 (#$ . 39944)])
(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\300\321\302\322\302\323%\210\300\324\302\325\302\326%\210\300\324\302\327\302\330%\210\300\331\302\332\302\333%\207" [cl-generic-define-method ede-map-project-buffers nil ((this ede-project) proc) #[(this proc) "\302\303	!\"\207" [proc this mapcar ede-project-buffers] 4 "For THIS, execute PROC on all buffers belonging to THIS."] ede-map-target-buffers ((this ede-target) proc) #[(this proc) "\302\303	!\"\207" [proc this mapcar ede-target-buffers] 4 "For THIS, execute PROC on all buffers belonging to THIS."] ede-map-subprojects ((this ede-project) proc) #[(this proc) "\302\303	\304\"\"\207" [proc this mapcar eieio-oref subproj] 5 "For object THIS, execute PROC on all direct subprojects.\nThis function does not apply PROC to sub-sub projects.\nSee also `ede-map-all-subprojects'."] ede-map-all-subprojects ((this ede-project) allproc) #[(this allproc) "\302\303	!C\304	\305\"#\207" [allproc this apply append ede-map-subprojects #[(sp) "\302	\"\207" [sp allproc ede-map-all-subprojects] 3]] 6 "For object THIS, execute PROC on THIS and all subprojects.\nThis function also applies PROC to sub-sub projects.\nSee also `ede-map-subprojects'."] ede-map-targets ((this ede-project) proc) #[(this proc) "\302\303	\304\"\"\207" [proc this mapcar eieio-oref targets] 5 "For object THIS, execute PROC on all targets."] ede-map-any-target-p ((this ede-project) proc) #[(this proc) "\302\303	\304\"\"\207" [proc this cl-some eieio-oref targets] 5 "For project THIS, map PROC to all targets and return if any non-nil.\nReturn the first non-nil value returned by PROC."] ede-system-include-path ((_this ede-project)) #[(_this) "\300\207" [nil] 1 "Get the system include path used by project THIS."] ((_this ede-target)) #[(_this) "\300\207" [nil] 1 "Get the system include path used by project THIS."] ede-source-paths ((_this ede-project) _mode) #[(_this _mode) "\300\207" [nil] 1 "Get the base to all source trees in the current project for MODE.\nFor example, <root>/src for sources of c/c++, Java, etc,\nand <root>/doc for doc sources."]] 6)
#@52 Apply preprocessor tables onto the current buffer.
(defalias 'ede-apply-preprocessor-map #[nil "\304\305!\210\2053\306\303!\2053\307	:\203	@\202	!\211\203&\310\n!	:\2052\311\312\313	@!\"*\207" [ede-object objs map semantic-lex-spp-project-macro-symbol-obarray require semantic/lex-spp boundp ede-preprocessor-map semantic-lex-make-spp-table message "Choosing preprocessor syms for project %s" eieio-object-name] 5 (#$ . 42301)])
(byte-code "\300\301\302\303\302\304%\210\300\305\302\306\302\307%\210\300\305\302\310\302\311%\210\300\312\302\313\302\314%\207" [cl-generic-define-method ede-system-include-path nil ((_this ede-project)) #[(_this) "\300\207" [nil] 1 "Get the system include path used by project THIS."] ede-preprocessor-map ((_this ede-project)) #[(_this) "\300\207" [nil] 1 "Get the pre-processor map for project THIS."] ((_this ede-target)) #[(_this) "\300\207" [nil] 1 "Get the pre-processor map for project THIS."] ede-java-classpath ((_this ede-project)) #[(_this) "\300\207" [nil] 1 "Return the classpath for this project."]] 6)
#@171 Set the project local VARIABLE to VALUE.
If VARIABLE is not project local, just use set.  Optional argument PROJ
is the project to use, instead of `ede-current-project'.
(defalias 'ede-set #[(variable value &optional proj) "\206\304 \305\n	\"\210\306\n	#\210\307	!\210\310\311!\210)\207" [proj p variable value ede-toplevel ede-make-project-local-variable ede-set-project-local-variable ede-commit-local-variables ede-map-buffers ede-apply-project-local-variables] 4 (#$ . 43370) "sVariable: \nxExpression: "])
#@54 Apply project local variables to the current buffer.
(defalias 'ede-apply-project-local-variables #[(&optional buffer) "r\206pq\210\301 \302 =\204\303\302 !\210\301 \205\303\301 !)\207" [buffer ede-current-project ede-toplevel ede-set-project-variables] 2 (#$ . 43893)])
#@41 Make VARIABLE project-local to PROJECT.
(defalias 'ede-make-project-local-variable #[(variable &optional project) "\204\302 \303	\304\305\"\"?\205\306\305	C\304\305\"B#\207" [project variable ede-toplevel assoc eieio-oref local-variables eieio-oset] 7 (#$ . 44177)])
#@193 Set VARIABLE to VALUE for PROJECT.
If PROJ isn't specified, use the current project.
This function only assigns the value within the project structure.
It does not apply the value to buffers.
(defalias 'ede-set-project-local-variable #[(variable value &optional project) "\204\304 \305	\306\307\"\"\211\204\310\311!\210\n\241)\207" [project variable va value ede-toplevel assoc eieio-oref local-variables error "Cannot set project variable until it is added with `ede-make-project-local-variable'"] 6 (#$ . 44460)])
(byte-code "\300\301\302\303\302\304%\210\300\305\302\306\302\307%\207" [cl-generic-define-method ede-set-project-variables nil ((project ede-project) &optional buffer) #[(project &optional buffer) "\204prq\210\304	\305\"\306\211\205+@\307\n@!\210\n@\nAL\210A\211\204\306+\207" [buffer project v --dolist-tail-- eieio-oref local-variables nil make-local-variable] 4 "Set variables local to PROJECT in BUFFER."] ede-commit-local-variables ((_proj ede-project)) #[(_proj) "\300\207" [nil] 1 "Commit change to local variables in PROJ."]] 6)
(defalias 'project-try-ede #[(dir) "\302\303\"\211\205
\304	\305\")\207" [dir project-dir locate-dominating-file #[(dir) "\301\302\"\207" [dir ede-directory-get-open-project ROOT] 3] ede-directory-get-open-project ROOT] 4])
(byte-code "\300\301\302\303\302\304%\210\305\306\307\"\210\310\311!\210\312\313!\210\314\315!\203!\316 \210\202&\305\317\316\"\210\302\207" [cl-generic-define-method project-roots nil ((project ede-project)) #[(project) "\301!C\207" [project ede-project-root-directory] 2] add-hook project-find-functions project-try-ede provide ede require ede/files featurep speedbar ede-speedbar-file-setup speedbar-load-hook] 6)

Zerion Mini Shell 1.0