Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
;ELC ;;; Compiled by leavens@LEAVENS on Mon Sep 15 16:19:47 2003 ;;; from file d:/emacs/ecb/ecb.el ;;; in Emacs version 21.3.1 ;;; with bytecomp version 2.85.4.1 ;;; with all optimizations. ;;; This file contains multibyte non-ASCII characters ;;; and therefore cannot be loaded into Emacs 19. (if (and (boundp 'emacs-version) (< (aref emacs-version (1- (length emacs-version))) ?A) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "20"))) (error "`ecb.el' was compiled for Emacs 20 or later")) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; #@22 Current ECB version. (defconst ecb-version "1.96" (#$ . 581)) (byte-code "\306\307!\210\306\310!\210\311\312\313\217\311\314\315\217\311\316\317\217?\205\320 ?\205*?\205(\321\322P\n?\205;\2038 ?\2059\321\323PQ\203I \203I\n\204Y\324 \203V\325\326 \"\210\202Y\327 \210,\330\331\f\332\305!\203g \206h\333\332\334!\203s\206t\333\332\335!\203\206\200\333%\210\306\336!\210\306\337!\210\306\340!\210\306\341!\210\306\342!\210\306\343!\210\306\344!\210\306\345!\210\306\346!\210\306\347!\210\306\350!\210\306\351!\210\306\352!\210\306\353!\210\306\354!\210\306\355!\210\306\356!\210\306\357!\207" [semantic-load-ok eieio-load-ok speedbar-load-ok missing-msg ecb-version semantic-version require ecb-upgrade ecb-util nil (byte-code "\300\301!\207" [require semantic] 2) ((error)) (byte-code "\300\301!\207" [require eieio] 2) ((error)) (byte-code "\300\301!\207" [require speedbar] 2) ((error)) "the package semantic" " and the " "package eieio" "package speedbar" ecb-noninteractive ecb-error "ECB is missing %s!" ecb-check-requirements message "ECB %s uses semantic %s, eieio %s and speedbar %s." boundp "" eieio-version speedbar-version semantic-load tree-buffer ecb-jde ecb-layout ecb-create-layout ecb-mode-line ecb-help ecb-navigate ecb-eshell ecb-compilation ecb-cycle ecb-face ecb-tod ecb-speedbar ecb-autogen ecb-winman-support easymenu assoc] 7) #@39 The names of the tree-buffers of ECB. (defvar ecb-tree-buffers nil (#$ . 1983)) #@32 The currently selected method. (defvar ecb-selected-method-start 0 (#$ . 2069)) #@39 Path to currently selected directory. (defvar ecb-path-selected-directory nil (#$ . 2155)) #@36 Path to currently selected source. (defvar ecb-path-selected-source nil (#$ . 2252)) #@42 Major-mode of currently selected source. (defvar ecb-major-mode-selected-source nil (#$ . 2343)) #@40 The currently selected Semantic token. (defvar ecb-selected-token nil (#$ . 2446)) (make-variable-buffer-local 'ecb-selected-token) #@36 Path to currently selected source. (defvar ecb-methods-root-node nil (#$ . 2584)) #@79 Only true if any item in any tree-buffer has been selected in recent command. (defvar ecb-item-in-tree-buffer-selected nil (#$ . 2672)) (defalias 'ecb-initialize-internal-vars #[nil "\306\307\306\306\306\306\306\211\207" [ecb-tree-buffers ecb-selected-method-start ecb-path-selected-directory ecb-path-selected-source ecb-major-mode-selected-source ecb-selected-token nil 0 ecb-methods-root-node] 2]) #@98 Do not set this variable directly. Use `ecb-activate' and `ecb-deactivate' or `ecb-minor-mode'.! (defvar ecb-minor-mode nil (#$ . 3087)) #@55 Window configuration used after the ECB is activated. (defvar ecb-activated-window-configuration nil (#$ . 3230)) (byte-code "\300\301\302\303\304\305\306\307&\210\300\310\302\311\304\301\306\307&\210\300\312\302\313\304\301\306\307&\210\300\314\302\315\304\301\306\307&\210\300\316\302\317\304\301\306\307&\210\300\320\302\321\304\301\306\307&\210\300\322\302\323\304\301\306\307&\207" [custom-declare-group ecb nil "Emacs code browser." :group tools :prefix "ecb-" ecb-general "General settings for the Emacs code browser." ecb-directories "Settings for the directories buffer in the Emacs code browser." ecb-sources "Settings for the source buffers in the Emacs code browser." ecb-methods "Settings for the methods buffer in the Emacs code browser." ecb-history "Settings for the history buffer in the Emacs code browser." ecb-non-semantic "Settings for parsing and displaying non-semantic files."] 8) #@104 *Tell ECB to use a recursive edit. If set then it can easily be deactivated by (keyboard-escape-quit). (custom-declare-variable 'ecb-use-recursive-edit 'nil '(#$ . -4149) :group 'ecb-general :type 'boolean) #@117 *Automatically startup ECB when Emacs starts up. This should only be true if you always want to run `ecb-activate'. (custom-declare-variable 'ecb-auto-activate 'nil '(#$ . -4363) :group 'ecb-general :type 'boolean) #@1609 *List of major-modes for which ECB should be activated or shown. Do not mistake this option with `ecb-auto-activate'. The latter one is for activating ECB after Emacs-startup (even without opening a buffer) and this one is for defining for which major-modes ECB should be activated if the mode goes active! The behavior is like follows: If a mode is contained in this option ECB is activated after activating this mode (if ECB was deactivated before) or the ECB-windows are shown if ECB was already active but its windows were hidden. In every case ECB is activated with visible ECB-windows afterwards! For every major mode there can be specified an `ecb-layout-name': - default: The value customized with `ecb-layout-name' is chosen. - a string: ECB is activated with this layout-name. This changes the value of `ecb-layout-name' but only for current emacs-session! But the layout is only changed if ECB was activated, if just the ECB-windows were shown, the current layout is used! There are two additional options: - none: No major-modes should activate ECB automatically. - a regexp: This means all major-modes which are not listed in `ecb-major-modes-deactivate' activate ECB except the `symbol-name' of `major-mode' matches this regexp. If this option is set then the default regexp excludes all Info- and customize-buffers because this buffers should not change anything in the ECB-activation state. Any auto. activation is only done if the current-frame is unsplitted to avoid changing unnecessarily or unintentionally the frame-layout if the user just jumps between different windows. (custom-declare-variable 'ecb-major-modes-activate ''none '(#$ . -4586) :group 'ecb-general :type '(radio :tag "Modes for activation" (const :tag "None" none) (regexp :tag "All except deactivated but not" :value "\\(Info\\|custom\\)-mode") (repeat :tag "Mode list" (cons (symbol :tag "Major-mode") (choice :tag "Layout" :menu-tag "Layout" :value default (const :tag "Default" default) (string :tag "Layout-name")))))) #@1863 *List of major-modes for which ECB should be deactivated or hidden. Specify if ECB should be deactivated or at least hidden if a `major-mode' is active. For each `major-mode' there must be added an action what should be done: - hide: ECB just hides all the ECB windows like with `ecb-hide-ecb-windows'. - deactivate: ECB is completely deactivated after activating the `major-mode'. There are two additional options: - none: No major-modes should deactivate/hide ECB automatically. - A cons for the meaning "All except the activated modes of `ecb-major-modes-activate'". The car of this cons can be: + hide-all-except-activated: All major-modes which are not listed in `ecb-major-modes-activate' hide the ECB-windows. + deactivate-all-except-activated: All major-modes which are not listed in `ecb-major-modes-activate' deactivate ECB. The cdr of this cons is a regexp: This means all major-modes which are not listed in `ecb-major-modes-activate' deactivate/hide ECB except the `symbol-name' of `major-mode' matches this regexp. If this option is set then the default regexp excludes all Info- and customize-buffers because this buffers should not change anything in the ECB-activation state. If a `major-mode' is listed in `ecb-major-modes-activate' as well as in `ecb-major-modes-deactivate' then ECB is activated! Any auto. deactivation/hiding is only done if the edit-window of ECB is unsplitted and point is in the edit-window to avoid changing unnecessarily or unintentionally the frame-layout if the user just jumps between different edit-windows, the tree-windows and the compile-window of ECB. There is one exception from this rule: If the edit-window is splitted and one window contains a dired-buffer and a "ECB-deactivating"-file is opened via dired then opening this file deactivates ECB (rsp. hides the ECB-windows). (custom-declare-variable 'ecb-major-modes-deactivate ''none '(#$ . -6620) :group 'ecb-general :type '(radio :tag "Modes for deactivation" (const :tag "None" none) (cons :tag "All except activated" (choice :tag "Action" :menu-tag "Action" :value hide-all-except-activated (const :tag "Hide ECB-windows" hide-all-except-activated) (const :tag "Deactivate ECB" deactivate-all-except-activated)) (regexp :tag "But not for these modes" :value "\\(Info\\|custom\\)-mode")) (repeat :tag "Mode list" (cons (symbol :tag "Major-mode") (choice :tag "Action" :menu-tag "Action" :value hide (const :tag "Just Hide" hide) (const :tag "Deactivate" deactivate)))))) #@162 *Paths where to find code sources. Each path can have an optional alias that is used as it's display name. If no alias is set, the path is used as display name. (custom-declare-variable 'ecb-source-path 'nil '(#$ . -9139) :group 'ecb-directories :set #'(lambda (symbol value) (set symbol value) (if (and ecb-minor-mode (functionp 'ecb-update-directories-buffer)) (ecb-update-directories-buffer))) :type '(repeat (choice :tag "Display type" :menu-tag "Display type" (directory :tag "Path") (list :tag "Path with alias" (directory :tag "Path") (string :tag "Alias"))))) #@1018 *Add path of a file to `ecb-source-path' if not already contained. This is done during the auto. windows synchronization which happens if a file is opened not via the file/directory-browser of ECB. In such a situation ECB adds the path of the new file auto. to `ecb-source-path' at least temporally for the current Emacs session. This option defines two things: 1. Should only the root-part (which means for Unix-like systems always '/' and for windows-like systems the drive) of the new file be added as source-path to `ecb-source-path' or the whole directory-part? 2. Should this path be added for future sessions too? The value of this option is a cons-cell where the car is a boolean for 1. and the cdr is a boolean for 2. A value of not nil for the car (1.) is reasonably if a user often opens files not via the ECB-browser which are not located in any of the paths of `ecb-source-path' because then only one path for each drive (windows) or the root-path (unix) is added to the directory buffer of ECB. (custom-declare-variable 'ecb-add-path-for-not-matching-files ''(t) '(#$ . -9715) :group 'ecb-directories :type '(cons (boolean :tag "Add only root path") (boolean :tag "Ask for saving for future sessions"))) #@253 List of functions to call for finding sources. Each time the function `ecb-update-directories-buffer' is called, the functions in this variable will be evaluated. Such a function must return either nil or a list of strings where each string is a path. (defvar ecb-source-path-functions nil (#$ . 10948)) #@825 *Automatically display current default-directory after activating ECB. If a file-buffer is displayed in the edit-window then ECB synchronizes its tree-buffers to this file-buffer - at least if the option `ecb-window-sync' it not nil. So for this situation `ecb-display-default-dir-after-start' takes no effect but this option is for the case if no file-buffer is displayed in the edit-window after startup: If true then ECB selects autom. the current default-directory after activation even if no file-buffer is displayed in the edit-window. This is useful if ECB is autom. activated after startup of Emacs and Emacs is started without a file-argument. So the directory from which the startup has performed is auto. selected in the ECB-directories buffer and the ECB-sources buffer displays the contents of this directory. (custom-declare-variable 'ecb-display-default-dir-after-start 't '(#$ . -11259) :group 'ecb-directories :type 'boolean) #@180 *Show source files in directories buffer. The value is either 'always or 'never or a list of layout-names for which layouts sources should be displayed in the directories window. (custom-declare-variable 'ecb-show-sources-in-directories-buffer ''("left7" "left13" "left14" "left15") '(#$ . -12210) :group 'ecb-directories :type '(radio (const :tag "Always" :value always) (const :tag "Never" :value never) (repeat :tag "With these layouts" (string :tag "Layout name")))) #@1075 *If true then uses speedbar for directories, sources or methods. This means that speedbar is integrated in the ECB-frame and is displayed in that window normally displaying the standard ECB-directories-buffer, ECB-sources-buffer or ECB-methods-buffer. This option takes effect in all layouts which contain either a directory window, a sources window or a method window. This option can have four valid values: - nil: Do not use speedbar (default) - dir: Use speedbar instead of the standard directories-buffer - source: Use speedbar instead of the standard sources-buffer - method: Use speedbar instead of the standard methods-buffer Note: For directories and sources a similar effect and usability is available by setting this option to nil (or 'method) and setting `ecb-show-sources-in-directories-buffer' to not nil, because this combination displays also directories and sources in one window. `ecb-use-speedbar-instead-native-tree-buffer' is for people who like the speedbar way handling directories and source-files or methods and want it in conjunction with ECB. (custom-declare-variable 'ecb-use-speedbar-instead-native-tree-buffer 'nil '(#$ . -12689) :group 'ecb-general :group 'ecb-directories :group 'ecb-sources :group 'ecb-methods :type '(radio (const :tag "Do not use speedbar" :value nil) (const :tag "For directories" :value dir) (const :tag "For sources" :value source) (const :tag "For methods" :value method)) :set #'(lambda (sym val) (set sym val) (let ((ecb-redraw-layout-quickly nil)) (ecb-redraw-layout-full)))) #@1973 *Update an integrated speedbar after selecting a directory. If not nil then an integrated speedbar will be updated after selecting a directory in the ECB-directories-buffer so the speedbar displays the contents of that directory. Of course this option makes only sense if the integrated speedbar is displayed in addition to the ECB-directories-buffer. This option can have the following values: - t: Always update speedbar. - nil: Never update speedbar. - auto: Update when senseful (see scenarios below) - : A user-defined function. The function is called after a directory is selected, gets the selected directory as argument and has to return nil if the the integrated speedbar should NOT be updated. Two example-scenarios where different values for this option can be senseful: If `ecb-show-sources-in-directories-buffer' is not nil or you have a layout where an ECB-sources-buffer is visible then you probably want to use the ECB-directories-buffer (and/or the ECB-sources-buffer) for directory- and file-browsing. If you have in addition an integrated speedbar running then you probably want to use speedbar instead of the ECB-methods-buffer for source-content-browsing. In this case you probably want the speedbar not be updated because you do not need speedbar reflecting the current-directory contents but only the contents of the currently selected source-file and the integrated speedbar updates itself autom. for the latter one! If `ecb-show-sources-in-directories-buffer' is nil and there is also no ECB-sources-buffer visible in the current layout then you probably want to use an integrated speedbar for browsing directory-contents (i.e. the files) and file-contents (instead of the ECB-methods-buffer for example). In this case you probably want the speedbar updated because you need speedbar reflecting the current-directory contents so you can select files. The value 'auto (see above) takes exactly these two scenarios into account. (custom-declare-variable 'ecb-directories-update-speedbar ''auto '(#$ . -14236) :group 'ecb-directories :type '(radio (const :tag "Always" :value t) (const :tag "Never" :value nil) (const :tag "Automatic" :value auto) (function :tag "Custom function"))) (defalias 'ecb-show-sources-in-directories-buffer-p #[nil "\302\232\203\303\207\304\232\203\305\207<\205 \235\207" [ecb-show-sources-in-directories-buffer ecb-layout-name never nil always t] 2]) #@1449 *Cache contents of directories. This can be useful if `ecb-source-path' contains directories with many files and subdirs, especially if these directories are mounted net-drives ("many" means here something > 1000, dependent of the speed of the net-connection and the machine). For these directories actualizing the sources- and/or directories- buffer of ECB (if displayed in current layout!) can slow down dramatically so a caching increases speed a lot. The value of this option is a list where the each element is a cons-cell and looks like: ( . ) : Regular expression a directory must match to be cached. : Number of directory contents must exceed this number. A directory will we only be cached if and only if the directory-name matches one regexp of this option and its content-number exceeds the related threshold. The cache entry for a certain directory will be refreshed and actualized only by using the POWER-click (see `ecb-primary-secondary-mouse-buttons') in the directories-buffer of ECB. Examples: A value of ("~/bigdir*" . 1000) means the contents of every subdirectory of the home-directory will be cached if the directory contains more than 1000 entries and its name begins with "bigdir". A value of (".*" . 1000) caches every directory which has more than 1000 entries. A value of (".*" . 0) caches every directory regardless of the number of entries. (custom-declare-variable 'ecb-cache-directory-contents 'nil '(#$ . -16675) :group 'ecb-directories :type `(repeat (cons (regexp :tag "Directory-regexp") (integer :tag "Filenumber threshold" :value 1000)))) #@409 *Name of the ECB directory buffer. Because it is not a normal buffer for editing you should enclose the name with stars, e.g. "*ECB Directories*". If it is necessary for you you can get emacs-lisp access to the buffer-object of the ECB-directory-buffer by this name, e.g. by a call of `set-buffer'. Changes for this option at runtime will take affect only after deactivating and then activating ECB again! (custom-declare-variable 'ecb-directories-buffer-name '" *ECB Directories*" '(#$ . -18336) :group 'ecb-directories :type 'string) #@126 *Directories that should not be included in the directories list. The value of this variable should be a regular expression. (custom-declare-variable 'ecb-excluded-directories-regexp '"^\\(CVS\\|\\..*\\)$" '(#$ . -18881) :group 'ecb-directories :type 'regexp) #@242 *Automatically expand the directory tree to the current source file. There are three options: - best: Expand the best-matching source-path - first: Expand the first matching source-path - nil: Do not automatically expand the directory tree. (custom-declare-variable 'ecb-auto-expand-directory-tree ''best '(#$ . -19148) :group 'ecb-directories :type '(radio (const :tag "Best matching" :value best) (const :tag "First matching" :value first) (const :tag "No auto. expand" :value nil))) #@1090 *Function used for performing a grep. The popup-menu of the tree-buffers "Directories", "Sources" and "History" offer to grep the "current" directory: - Directory-buffer: The grep is performed in the current popup-directory after clicking the right mouse-button onto a node. - Sources-buffer: The grep is performed in the current selected directory. - History-buffer: The grep is performed in the directory of the current popup-source after clicking the right mouse-button onto a node. Conditions for such a function: - The function is called interactively via `call-interactively' - During the function-call the `default-directory' is temp. set to that directory mentioned above with "... is performed in ...", i.e. the function can use the value of `default-directory' to determine the directory to grep. - The function must read all it's arguments itself. - The function is completely responsible for performing the grep itself and displaying the results. Normally one of the standard-grepping functions like `grep' or `igrep' (or some wrappers around it) should be used! (custom-declare-variable 'ecb-grep-function '(if (fboundp 'igrep) 'igrep 'grep) '(#$ . -19642) :group 'ecb-directories :type 'function) #@154 *Function used for performing a recursive grep. For more Details see option `ecb-grep-function' and replace "grep" with "recursive grep" or "grep-find". (custom-declare-variable 'ecb-grep-find-function '(if (fboundp 'igrep-find) 'igrep-find 'grep-find) '(#$ . -20874) :group 'ecb-directories :type 'function) #@401 *Name of the ECB sources buffer. Because it is not a normal buffer for editing you should enclose the name with stars, e.g. "*ECB Sources*". If it is necessary for you you can get emacs-lisp access to the buffer-object of the ECB-sources-buffer by this name, e.g. by a call of `set-buffer'. Changes for this option at runtime will take affect only after deactivating and then activating ECB again! (custom-declare-variable 'ecb-sources-buffer-name '" *ECB Sources*" '(#$ . -21190) :group 'ecb-sources :type 'string) #@517 *Specify if files contained in a .cvsignore should be excluded. Value is a list of regular expressions or nil. If you want to exclude files listed in a .cvsignore-file from being displayed in the ecb-sources-buffer then specify a regexp for such a directory. If you want to exclude the contents of .cvsignore-files for every directory then you should add one regexp ".*" which matches every directory. If you never want to exclude the contents of .cvsignore-files then set this option to nil. This is the default. (custom-declare-variable 'ecb-sources-exclude-cvsignore 'nil '(#$ . -21715) :group 'ecb-sources :group 'ecb-directories :type '(repeat (regexp :tag "Directory-regexp"))) #@1709 *Specifies which files are shown as source files. This is done on directory-base, which means for each directory-regexp the files to display can be specified. If more than one directory-regexp matches the current selected directory then always the first one (and its related file-exclude/include-regexps) is used! If no directory-regexp matches then all files are displayed for the currently selected directory. Important note: It is recommended that the *LAST* element of this list should contain an always matching directory-regexp (".*")! So the value of this option is a list of cons-cells where the car is a directory regexp and the cdr is a 2 element list where the first element is a exclude regexp and the second element is a include regexp. A file is displayed in the sources-buffer of ECB iff: The file does not match the exclude regexp OR the file matches the include regexp. But regardless of the value of this option a file F is never displayed in the sources-buffer if the directory matches `ecb-sources-exclude-cvsignore' and the directory contains a file .cvsignore which contains F as an entry! There are three predefined and useful combinations of an exclude and include regexp: - All files - All, but no backup, object, lib or ini-files (except .emacs and .gnus). This means all files except those starting with ".", "#" or ending with "~", ".elc", ".obj", ".o", ".lib", ".dll", ".a", ".so". (but including .emacs and .gnus) - Common source file types (.c, .java etc.) In addition to these predefined values a custom exclude and include combination can be defined. Tips for the directory- and file-regexps: "$^" matches no files/directories, ".*" matches all files/directories. (custom-declare-variable 'ecb-source-file-regexps ''((".*" "\\(^\\(\\.\\|#\\)\\|\\(~$\\|\\.\\(elc\\|obj\\|o\\|class\\|lib\\|dll\\|a\\|so\\|cache\\)$\\)\\)" "^\\.\\(emacs\\|gnus\\)$")) '(#$ . -22409) :group 'ecb-sources :type '(repeat (cons :tag "Directory file-spec" (regexp :tag "Directory regexp") (choice :tag "Files to display" :menu-tag "Files to display" (const :tag "All files" :value ("" "")) (const :tag "All, but no backups, objects, etc..." :value ("\\(^\\(\\.\\|#\\)\\|\\(~$\\|\\.\\(elc\\|obj\\|o\\|class\\|lib\\|dll\\|a\\|so\\|cache\\)$\\)\\)" "^\\.\\(emacs\\|gnus\\)$")) (const :tag "Common source file types" :value ("" "\\(\\(M\\|m\\)akefile\\|.*\\.\\(java\\|el\\|c\\|cc\\|h\\|hh\\|txt\\|html\\|texi\\|info\\|bnf\\)\\)$")) (list :tag "Custom" (regexp :tag "Exclude regexp" :value "") (regexp :tag "Include regexp" :value "")))))) #@43 *Show the file extension of source files. (custom-declare-variable 'ecb-show-source-file-extension 't '(#$ . -24969) :group 'ecb-sources :type 'boolean) #@254 *Defines how the source files are sorted. - 'name: Sorting by name. - 'extension: Sorting first by name and then by extension. - nil: No sorting, means source files are displayed in the sequence returned by `directory-files' (called without sorting). (custom-declare-variable 'ecb-sources-sort-method ''name '(#$ . -25129) :group 'ecb-sources :type '(radio (const :tag "By name" :value name) (const :tag "By extension" :value extension) (const :tag "No sorting" :value nil))) #@401 *Name of the ECB history buffer. Because it is not a normal buffer for editing you should enclose the name with stars, e.g. "*ECB History*". If it is necessary for you you can get emacs-lisp access to the buffer-object of the ECB-history-buffer by this name, e.g. by a call of `set-buffer'. Changes for this option at runtime will take affect only after deactivating and then activating ECB again! (custom-declare-variable 'ecb-history-buffer-name '" *ECB History*" '(#$ . -25614) :group 'ecb-history :type 'string) #@41 *Sorts the items in the history buffer. (custom-declare-variable 'ecb-sort-history-items 'nil '(#$ . -26138) :group 'ecb-history :type 'boolean) #@360 *The entries of the history buffer to delete with `ecb-clear-history'. Three options are available: - not-existing-buffers: All entries which represent a buffer-name not existing anymore in the bufferlist will be cleared. Probably the most senseful value. - existing-buffers: The opposite of 'not-existing-buffers. - all: The whole history will be cleared. (custom-declare-variable 'ecb-clear-history-behavior ''not-existing-buffers '(#$ . -26290) :group 'ecb-history :type '(radio (const :tag "Not existing buffers" :value not-existing-buffers) (const :tag "Existing buffers" :value existing-buffers) (const :tag "All entries" :value all))) #@320 *Define if `kill-buffer' should also clear the history. There are three options: - auto: Removes automatically the corresponding history-entry after the buffer has been killed. - ask: Asks, if the history-entry should be removed after the kill. - nil: `kill-buffer' does not affect the history (this is the default). (custom-declare-variable 'ecb-kill-buffer-clears-history 'nil '(#$ . -26941) :group 'ecb-history :type '(radio (const :tag "Remove history entry automatically" :value auto) (const :tag "Ask if history entry should be removed" :value ask) (const :tag "Do not clear the history" :value nil))) #@51 *The name to use for items in the history buffer. (custom-declare-variable 'ecb-history-item-name ''buffer-name '(#$ . -27557) :group 'ecb-history :type '(radio (const :tag "Buffer name" :value buffer-name) (const :tag "File name" :value file-name))) #@401 *Name of the ECB methods buffer. Because it is not a normal buffer for editing you should enclose the name with stars, e.g. "*ECB Methods*". If it is necessary for you you can get emacs-lisp access to the buffer-object of the ECB-methods-buffer by this name, e.g. by a call of `set-buffer'. Changes for this option at runtime will take affect only after deactivating and then activating ECB again! (custom-declare-variable 'ecb-methods-buffer-name '" *ECB Methods*" '(#$ . -27815) :group 'ecb-methods :type 'string) #@735 *Expand the methods-token-tree automatically if node invisible. This option has only an effect if option `ecb-highlight-token-with-point' is switched on too. There are three possible choices: - nil: No auto. expanding of the method buffer. - expand-spec: Auto expand the method-buffer nodes if the node belonging to current token under point is invisible because its parent-node is collapsed. But expanding is only done if the type of the token under point in the edit-buffer is contained in `ecb-methods-nodes-expand-spec'. - all: Like expand-spec but expands all tokens regardless of the setting in `ecb-methods-nodes-expand-spec'. This options takes only effect for semantic-sources - means sources supported by semantic! (custom-declare-variable 'ecb-auto-expand-token-tree ''expand-spec '(#$ . -28340) :group 'ecb-methods :type '(radio (const :tag "No auto. expand" :value nil) (const :tag "Expand as specified" :value expand-spec) (const :tag "Expand all" :value all))) #@657 *Switch off auto expanding in the ECB-method buffer. If on then auto expanding is switched off after explicit expanding or collapsing by `ecb-expand-methods-nodes'. This is done with `ecb-toggle-auto-expand-token-tree' so after the switch off the auto expanding feature can again switched on quickly. But after explicitly expanding/collapsing the methods-buffer to a certain level the auto. expanding could undo this when the node belonging to current token under point in the edit-window is invisible after `ecb-expand-methods-nodes' - then the auto. expand feature would make this node immediately visible and destroys the explicitly set expand-level. (custom-declare-variable 'ecb-expand-methods-switch-off-auto-expand 't '(#$ . -29332) :group 'ecb-methods :type 'boolean) #@174 Only set by customizing `ecb-tree-RET-selects-edit-window' or calling `ecb-toggle-RET-selects-edit-window'! Do not set this variable directly, it is only for internal uses! (defvar ecb-tree-RET-selects-edit-window--internal nil (#$ . 30117)) #@901 *In which tree-buffers RET should finally select an edit-window. If a name of an ECB tree-buffer is contained in this list then hitting RET in this tree-buffer selects as last action the right edit-window otherwise only the right action is performed (opening a new source, selecting a method etc.) but point stays in the tree-buffer. A special remark for the `ecb-directories-buffer-name': Of course here the edit-window is only selected if the name of the current layout is contained in `ecb-show-sources-in-directories-buffer' or if the value of `ecb-show-sources-in-directories-buffer' is 'always (otherwise this would not make any sense)! The setting in this option is only the default for each tree-buffer. With `ecb-toggle-RET-selects-edit-window' the behavior of RET can be changed fast and easy in a tree-buffer without customizing this option, but of course not for future Emacs sessions! (custom-declare-variable 'ecb-tree-RET-selects-edit-window '(list ecb-directories-buffer-name ecb-sources-buffer-name ecb-methods-buffer-name ecb-history-buffer-name) '(#$ . -30366) :group 'ecb-general :set #'(lambda (sym val) (set sym val) (setq ecb-tree-RET-selects-edit-window--internal (ecb-copy-list val))) :type `(set (const :tag ,ecb-directories-buffer-name :value ,ecb-directories-buffer-name) (const :tag ,ecb-sources-buffer-name :value ,ecb-sources-buffer-name) (const :tag ,ecb-methods-buffer-name :value ,ecb-methods-buffer-name) (const :tag ,ecb-history-buffer-name :value ,ecb-history-buffer-name))) #@70 *Automatically updating the ECB method buffer after saving a source. (custom-declare-variable 'ecb-auto-update-methods-after-save 't '(#$ . -31886) :group 'ecb-methods :type 'boolean) #@158 *Adds font-locking (means highlighting) to the ECB-method buffer. This options takes only effect for semantic-sources - means sources supported by semantic! (custom-declare-variable 'ecb-font-lock-tokens 't '(#$ . -32077) :group 'ecb-methods :set #'(lambda (symbol value) (set symbol value) (ecb-clear-token-tree-cache)) :type 'boolean :initialize 'custom-initialize-default) #@106 *Set the mark after jumping to a token from the ECB-method buffer. If set the user can easily jump back. (custom-declare-variable 'ecb-token-jump-sets-mark 't '(#$ . -32460) :group 'ecb-methods :type 'boolean) #@219 Alist containing one element for every member of `semantic-token->text-functions' where the value is the member of `semantic-token->text-functions' with name "semantic-XYZ" and the key is a symbol with name "ecb-XYZ". (defconst ecb-token->text-functions (mapcar #[(fkt) "\301\302\303\304\305\306!\307\"A\307#P!B\207" [fkt intern "ecb-" mapconcat identity split-string symbol-name "-"] 7] semantic-token->text-functions) (#$ . 32677)) #@548 *How ECB displays bucket tokens in the ECB methods buffer. Bucket tokens are tokens like "[+] Variables", "[+] Dependencies" etc. The name of the bucket-token comes from semantic but you can define a prefix, a suffix and a special face for the bucket token. The default are empty prefix/suffix-strings and 'ecb-bucket-token-face'. But an alternative can be for example '("[" "]" nil) which means no special face and a display like "[+] []". This options takes only effect for semantic-sources - means sources supported by semantic! (custom-declare-variable 'ecb-bucket-token-display ''("" "" ecb-bucket-token-face) '(#$ . -33120) :group 'ecb-methods :set #'(lambda (symbol value) (set symbol value) (ecb-clear-token-tree-cache)) :type '(list (string :tag "Bucket-prefix" :value "[") (string :tag "Bucket-suffix" :value "]") (choice :tag "Bucket-face" :menu-tag "Bucket-face" (const :tag "No special face" :value nil) (face :tag "Face" :value ecb-bucket-token-face))) :initialize 'custom-initialize-default) #@2194 *Function to use for displaying tokens in the methods buffer. This functionality is set on major-mode base, i.e. for every major-mode a different function can be used. The value of this option is a list of cons-cells: - The car is either a major-mode symbol or the special symbol 'default which means if no function for a certain major-mode is defined then the cdr of the 'default cons-cell is used. - The cdr is the function used for displaying a token in the related major-mode. Every function is called with 3 arguments: 1. The token 2. The parent-token of token (can be nil) 3. The value of `ecb-font-lock-tokens'. Every function must return the display of the token as string, colorized if the third argument is not nil. The following functions are predefined: - All functions of `semantic-token->text-functions'. - For every function in `semantic-token->text-functions' with name "semantic-XYZ" a function with name "ecb-XYC" is predefined. The differences between the semantic- and the ECB-version are: + The ECB-version displays for type tokens only the type-name and nothing else (exception: In c++-mode a template specifier is appended to the type-name if a template instead a normal class). + The ECB-version displays type-tokens according to the setting in `ecb-type-token-display'. This is useful for better recognizing different classes, structs etc. in the ECB-method window. For all tokens which are not types the display of the ECB-version is identical to the semantic version. Example: For `semantic-name-nonterminal' the pendant is `ecb-name-nonterminal'. This functionality also allows the user to display tokens as UML. To enable this functionality set the function for a major-mode (e.g. `jde-mode') to `semantic-uml-concise-prototype-nonterminal', `semantic-uml-prototype-nonterminal', or `semantic-uml-abbreviate-nonterminal' or the ECB-versions of these functions. If the value is nil, i.e. neither a function for a major-mode is defined nor the special 'default, then `semantic-prototype-nonterminal' is used for displaying the tokens. This options takes only effect for semantic-sources - means sources supported by semantic! (custom-declare-variable 'ecb-token-display-function ''((default . ecb-prototype-nonterminal)) '(#$ . -34150) :group 'ecb-methods :set #'(lambda (symbol value) (set symbol value) (ecb-clear-token-tree-cache)) :type (list 'repeat ':tag "Display functions per mode" (list 'cons ':tag "Mode token display" '(symbol :tag "Major mode") (nconc (list 'choice ':tag "Display function" ':menu-tag '"Display function") (append (mapcar (lambda (f) (list 'const ':tag (symbol-name (car f)) (car f))) ecb-token->text-functions) (mapcar (lambda (f) (list 'const ':tag (symbol-name (cdr f)) (cdr f))) ecb-token->text-functions) (list '(function :tag "Function")))))) :initialize 'custom-initialize-default) #@3112 *How to display semantic type-tokens in the methods buffer. Normally all token displaying, colorizing and facing is done by semantic according to the value of `semantic-face-alist' and the semantic display-function (e.g. one from `semantic-token->text-functions'). But sometimes a finer distinction in displaying the different type specifiers of type-tokens can be useful. For a description when this option is evaluated look at `ecb-token-display-function'! This functionality is set on a major-mode base, i.e. for every major-mode a different setting can be used. The value of this option is a list of cons-cells: - The car is either a major-mode symbol or the special symbol 'default which means if no setting for a certain major-mode is defined then the cdr of the 'default cons-cell is used. - The cdr is a list of 3-element-lists: 1. First entry is a semantic type specifier in string-form. Current available type specifiers are for example "class", "interface", "struct", "typedef" and "enum". In addition to these ones there is also a special ECB type specifier "group" which is related to grouping tokens (see `ecb-post-process-semantic-tokenlist' and `ecb-group-function-tokens-with-parents'). Any arbitrary specifier can be set here but if it is not "group" or not known by semantic it will be useless. 2. Second entry is a flag which indicates if the type-specifier string from (1.) itself should be removed (if there is any) from the display. 3. Third entry is the face which is used in the ECB-method window to display type-tokens with this specifier. ECB has some predefined faces for this (`ecb-type-token-class-face', `ecb-type-token-struct-face', `ecb-type-token-typedef-face', `ecb-type-token-enum-face' and `ecb-type-token-group-face') but any arbitrary face can be set here. This face is merged with the faces semantic already uses to display a token, i.e. the result is a display where all face-attributes of the ECB-face take effect plus all face-attributes of the semantic-faces which are not set in the ECB-face (with XEmacs this merge doesn't work so here the ECB-face replaces the semantic-faces; this may be fixed in future versions). The default value is nil means there is no special ECB-displaying of type-tokens in addition to the displaying and colorizing semantic does. But a value like the following could be a useful setting: ((default ("class" t ecb-type-token-class-face) ("group" nil ecb-type-token-group-face)) (c-mode ("struct" nil ecb-type-token-struct-face) ("typedef" nil ecb-type-token-typedef-face))) This means that in `c-mode' only "struct"s and "typedef"s are displayed with special faces (the specifiers itself are not removed) and in all other modes "class"es and grouping-tokens (see `ecb-token-display-function', `ecb-group-function-tokens-with-parents') have special faces and the "class" specifier-string is removed from the display. This options takes only effect for semantic-sources - means sources supported by semantic! (custom-declare-variable 'ecb-type-token-display 'nil '(#$ . -37043) :group 'ecb-methods :set #'(lambda (symbol value) (set symbol value) (ecb-clear-token-tree-cache)) :type '(repeat (cons (symbol :tag "Major-mode") (repeat :tag "Display of type specifiers" (list (choice :tag "Specifier list" :menu-tag "Specifier list" (const :tag "class" :value "class") (const :tag "interface" :value "interface") (const :tag "struct" :value "struct") (const :tag "typedef" :value "typedef") (const :tag "enum" :value "enum") (const :tag "group" :value "group") (string :tag "Any specifier")) (boolean :tag "Remove the type-specifier" t) (face :tag "Any face" :value ecb-type-token-class-face))))) :initialize 'custom-initialize-default) #@99 Return the face set in `ecb-type-token-display' for current major-mode and TYPE-SPECIFIER or nil. (defalias 'ecb-get-face-for-type-token #[(type-specifier) "\305 \"A\305\306 \"A\307\305\f \"8\206\307\305\f\n\"8*\207" [major-mode ecb-type-token-display default-display mode-display type-specifier assoc default 2] 4 (#$ . 40885)]) #@116 Return the remove-specifier-flag set in `ecb-type-token-display' for current major-mode and TYPE-SPECIFIER or nil. (defalias 'ecb-get-remove-specifier-flag-for-type-token #[(type-specifier) "\305 \"A\305\306 \"A\305\f \"A@\206\305\f\n\"A@*\207" [major-mode ecb-type-token-display default-display mode-display type-specifier assoc default] 4 (#$ . 41227)]) #@285 Merge FACE to the already precolored TEXT so the values of all face-attributes of FACE take effect and but the values of all face-attributes of TEXT which are not set by FACE are preserved. For XEmacs this merge does currently not work therefore here FACE replaces all faces of TEXT! (defalias 'ecb-merge-face-into-text #[(text face) "\204 \207 \260 \203\304\305\nG\300D\n$\210\202$\306\305\nG\300\307\n%\210\n)\207" [face text newtext ecb-running-xemacs add-text-properties 0 alter-text-property #[(current-face) "\304!\203 C\202<\203\202\305\304 !\203 C\202* <\203) \202*\305\306\n \"*\207" [current-face face nf cf facep nil append] 3]] 6 (#$ . 41595)]) (byte-code "\303\211\203=\n@\211@\304\305\306\307\310\311\312\306\313\314\315\316 @DDE\317BB\320BBD\321B\322BB\312\316 AD\323BBFEM\210\nA\211\204*\303\207" [ecb-token->text-functions elem #:--dolist-temp--47351 nil lambda (token &optional parent-token colorize) if (eq 'type (semantic-token-token token)) let* text funcall string-match "-uml-" symbol-name quote ('semantic-uml-abbreviate-nonterminal 'semantic-name-nonterminal) (token parent-token colorize) ((type-specifier (if (or (semantic-token-get token 'ecb-group-token) (semantic-token-get token 'faux)) "group" (semantic-token-type token))) (face (ecb-get-face-for-type-token type-specifier)) (remove-flag (ecb-get-remove-specifier-flag-for-type-token type-specifier))) ((save-match-data (when (or (semantic-token-get token 'ecb-group-token) (semantic-token-get token 'faux)) (if (string-match (concat "^\\(.+" semantic-uml-colon-string "\\)\\(" (if (semantic-token-get token 'faux) semantic-orphaned-member-metaparent-type "struct") "\\)") text) (let ((type-spec-text "group")) (put-text-property 0 (length type-spec-text) 'face (get-text-property 0 'face (match-string 2 text)) type-spec-text) (setq text (concat (match-string 1 text) type-spec-text))))) (let (col-type-name col-type-spec template-text) (if (string-match (concat "^\\(.+\\)\\(" semantic-uml-colon-string type-specifier "\\)") text) (setq col-type-name (match-string 1 text) col-type-spec (if (not remove-flag) (match-string 2 text))) (setq col-type-name text)) (when (and (equal major-mode 'c++-mode) (fboundp 'semantic-c-template-string)) (setq template-text (semantic-c-template-string token parent-token colorize)) (put-text-property 0 (length template-text) 'face (get-text-property (1- (length col-type-name)) 'face col-type-name) template-text)) (setq text (concat col-type-name template-text col-type-spec)))) (if face (setq text (ecb-merge-face-into-text text face))) text) (token parent-token colorize)] 15) #@830 *Define mode-dependent post-processing for the semantic-tokenlist. This is an alist where the car is a major-mode symbol and the cdr is a function-symbol of a function which should be used for post-processing the tokenlist (returned by `semantic-bovinate-toplevel') for a buffer in this major-mode. Such a function is called with current semantic tokenlist of current buffer and must return a valid tokenlist again. For oo-programming languages where the methods of a class can be defined outside the class-definition (e.g. C++, Eieio) the function `ecb-group-function-tokens-with-parents' can be used to get a much better method-display in the methods-window of ECB, because all method implementations of a class are grouped together. This options takes only effect for semantic-sources - means sources supported by semantic! (custom-declare-variable 'ecb-post-process-semantic-tokenlist ''((c++-mode . ecb-group-function-tokens-with-parents) (emacs-lisp-mode . ecb-group-function-tokens-with-parents)) '(#$ . -44238) :group 'ecb-methods :type '(repeat (cons (symbol :tag "Major-mode") (function :tag "Post-process function")))) #@596 *Show only nodes in the method-buffer which are "jump-able". If not nil then ECB displays in the method-buffer only nodes which are "jump-able", i.e. after selecting it by clicking or with RET then ECB jumps to the corresponding location in the edit-window. Example: With CLOS or Eieio source-code there can exist some position-less nodes like variable-attributes in a `defclass' form which are only displayed if this option is nil. Displaying such nodes can be senseful even if they can not be jumped. This options takes only effect for semantic-sources - means sources supported by semantic! (custom-declare-variable 'ecb-show-only-positioned-tokens 't '(#$ . -45377) :group 'ecb-methods :type 'boolean) #@1334 *How to show tokens in the methods buffer first time after find-file. This variable is a list where each element represents a type of tokens: ( ) The tokens in the methods buffer are displayed in the order as they appear in this list. Token Type ---------- A Semantic token type symbol (for all possible type symbols see documentation of semantic): - include - type - variable - function - rule - section (chapters and sections in `info-mode') - def (definitions in `info-mode') or one of the following: - t: All token types not specified anywhere else in the list. - parent: The parents of a type. Display Type ------------ A symbol which describes how the tokens of this type shall be shown: - expanded: The tokens are shown in an expanded node. - collapsed: The tokens are shown in a collapsed node. - flattened: The tokens are added to the parent node. - hidden: The tokens are not shown. Sort Method ----------- A symbol describing how to sort the tokens of this type: - name: Sort by the token name. - access: Sort by token access (public, protected, private) and then by name. - nil: Don't sort tokens. They appear in the same order as in the source buffer. This options takes only effect for semantic-sources - means sources supported by semantic! (custom-declare-variable 'ecb-show-tokens ''((include collapsed nil) (parent collapsed nil) (type flattened nil) (variable collapsed access) (function flattened access) (rule flattened name) (section flattened nil) (def collapsed name) (t collapsed name)) '(#$ . -46092) :group 'ecb-methods :set #'(lambda (symbol value) (set symbol value) (ecb-clear-token-tree-cache)) :type '(repeat (list (symbol :tag "Token symbol") (choice :tag "Display type" :value collapsed (const :tag "Expanded" expanded) (const :tag "Collapsed" collapsed) (const :tag "Flattened" flattened) (const :tag "Hidden" hidden)) (choice :tag "Sort by" :value nil (const :tag "Name" name) (const :tag "Access then name" access) (const :tag "No sort" nil)))) :initialize 'custom-initialize-default) #@990 *Semantic token-types expanded by `ecb-expand-methods-nodes'. The value of this option is either the symbol 'all (all tokens are expanded regardless of their type) or a list of symbols where each symbol is a valid semantic token-type. For a description of semantic token types see option `ecb-show-tokens'. But this option also defines if bucket-nodes in the ECB-method-buffer (e.g. "[Variables]") should be expanded. Therefore valid symbols for this list are also all cars of the variable `semantic-symbol->name-assoc-list'. If there is a bucket-name (the node-name stripped of the settings in `ecb-bucket-token-display') which is not contained as cdr in `semantic-symbol->name-assoc-list' then the symbol with this bucket-name as name is also a valid symbol for this list. Example: In ECB there are buckets "[Parents]". The bucket-name is "Parents" and the valid symbol-name is then 'Parents. This options takes only effect for semantic-sources - means sources supported by semantic! (custom-declare-variable 'ecb-methods-nodes-expand-spec ''(type variable function section) '(#$ . -48198) :group 'ecb-methods :type '(radio (const :tag "All node-types" :value all) (repeat :tag "Node-type list" (symbol :tag "Node-type")))) #@225 *Semantic token-types collapsed by `ecb-expand-methods-nodes'. For valid values of this option see `ecb-methods-nodes-expand-spec'! This options takes only effect for semantic-sources - means sources supported by semantic! (custom-declare-variable 'ecb-methods-nodes-collapse-spec ''all '(#$ . -49434) :group 'ecb-methods :type '(radio (const :tag "All node-types" :value all) (repeat :tag "Node-type list" (symbol :tag "Node-type")))) #@237 *Regexp which parent classes should not be shown in the methods buffer. If nil then all parents will be shown if `ecb-show-parents' is not nil. This options takes only effect for semantic-sources - means sources supported by semantic! (custom-declare-variable 'ecb-exclude-parents-regexp 'nil '(#$ . -49878) :group 'ecb-methods :set #'(lambda (symbol value) (set symbol value) (ecb-clear-token-tree-cache)) :type '(radio (const :tag "Do not exclude any parents" :value nil) (regexp :tag "Parents-regexp to exclude")) :initialize 'custom-initialize-default) #@502 *How to highlight the method or variable under the cursor. - highlight-scroll: Always scroll the method buffer, so the current method of the edit-window is highlighted in the method-window. - highlight: Only highlight the current method of the edit window in the method window if the method is visible in the method-window. - nil: No highlighting is done. See also `ecb-highlight-token-with-point-delay'. This options takes only effect for semantic-sources - means sources supported by semantic! (custom-declare-variable 'ecb-highlight-token-with-point ''highlight-scroll '(#$ . -50443) :group 'ecb-methods :type '(radio (const :tag "Highlight and scroll window" :value highlight-scroll) (const :tag "Just highlight" :value highlight) (const :tag "Do not highlight" :value nil))) #@574 *Time Emacs must be idle before current token is highlighted. If nil then there is no delay, means current token is highlighted immediately. A small value of about 0.25 seconds saves CPU resources and you get even though almost the same effect as if you set no delay. But such a delay prevents also "jumping backward/forward" during scrolling within java-classes if point goes out of method-definition into class-definition. Therefore the default value is a delay of 0.25 seconds. This options takes only effect for semantic-sources - means sources supported by semantic! (custom-declare-variable 'ecb-highlight-token-with-point-delay '0.25 '(#$ . -51235) :group 'ecb-methods :type '(radio (const :tag "No highlighting delay" :value nil) (number :tag "Idle time before highlighting" :value 0.25)) :set #'(lambda (symbol value) (set symbol value) (if ecb-minor-mode (ecb-activate-ecb-sync-functions value 'ecb-token-sync))) :initialize 'custom-initialize-default) #@55 Internal overlay used for the first line of a method. (defvar ecb-method-overlay (byte-code "\300\301\211\"\207" [make-overlay 1] 3) (#$ . 52205)) (overlay-put ecb-method-overlay 'face ecb-token-header-face) #@1174 *Actions to perform after visiting a token from the Method-buffer. With this option actions can be added which will be performed after visiting the start of the token in the source-buffer. This functionality is set on a `major-mode' base, i.e. for every `major-mode' a different setting can be used. The value of this option is a list of cons-cells: - The car is either a `major-mode' symbol or the special symbol 'default. - The cdr is a list of action-functions or nil. ECB first performs all actions defined for the special symbol 'default (if any) and then all actions defined for current `major-mode' (if any). ECB offers some predefined senseful action-functions. Currently there are: - `ecb-token-visit-highlight-token-header' - `ecb-token-visit-smart-token-start' - `ecb-token-visit-recenter' - `ecb-token-visit-recenter-top' - `ecb-token-visit-goto-doc-start' - `ecb-token-visit-narrow-token' See the documentation of these function for details what they do. But you can add any arbitrary function if the following conditions are fulfilled: - The function gets the semantic token as argument and - the function returns the (new) point after finishing its job. (custom-declare-variable 'ecb-token-visit-post-actions ''((default ecb-token-visit-smart-token-start ecb-token-visit-highlight-token-header) (java-mode ecb-token-visit-goto-doc-start) (jde-mode ecb-token-visit-goto-doc-start)) '(#$ . -52421) :group 'ecb-methods :type '(repeat (cons :value (nil ecb-token-visit-recenter) (symbol :tag "Major-mode or default") (repeat (choice :tag "Post action" :menu-tag "Post action" (const :tag "ecb-token-visit-smart-token-start" :value ecb-token-visit-smart-token-start) (const :tag "ecb-token-visit-highlight-token-header" :value ecb-token-visit-highlight-token-header) (const :tag "ecb-token-visit-goto-doc-start" :value ecb-token-visit-goto-doc-start) (const :tag "ecb-token-visit-narrow-token" :value ecb-token-visit-narrow-token) (const :tag "ecb-token-visit-recenter-top" :value ecb-token-visit-recenter-top) (const :tag "ecb-token-visit-recenter" :value ecb-token-visit-recenter) (function :tag "Function")))))) (defalias 'ecb-token-visit-function-member-p #[(fnc) "\303\304 \"A\235\206\303\n \"A\235\207" [fnc ecb-token-visit-post-actions major-mode assoc default] 4]) #@133 *Indent size for tree buffer. If you change this during ECB is activated you must deactivate and activate ECB again to take effect. (custom-declare-variable 'ecb-tree-indent '2 '(#$ . -54719) :group 'ecb-general :type 'integer) #@53 *Show the expand symbol before the items in a tree. (custom-declare-variable 'ecb-tree-expand-symbol-before 'nil '(#$ . -54953) :group 'ecb-general :type 'boolean) #@216 *Use icons for expand/collapse tokens instead of the ascii-strings. If true the ECB displays in its tree-buffers the expand- and collapse symbols with appropriate icons - the icons are the same as used by speedbar. (custom-declare-variable 'ecb-tree-use-image-icons 't '(#$ . -55124) :group 'ecb-general :type 'boolean) #@135 *Truncate lines in ECB buffers. If you change this during ECB is activated you must deactivate and activate ECB again to take effect. (custom-declare-variable 'ecb-truncate-lines ''(t t t t) '(#$ . -55451) :group 'ecb-general :type '(list (boolean :tag "Directories buffer") (boolean :tag "Sources buffer") (boolean :tag "Methods buffer") (boolean :tag "History buffer"))) #@1025 *Scroll step for easy hor. scrolling via mouse-click in tree-buffers. XEmacs has horizontal scroll-bars so invisible parts beyond the right window-border of a tree-buffer can always made visible very easy. GNU Emacs does not have hor. scroll-bars so especially with the mouse it is quite impossible to scroll smoothly right and left. The functions `scroll-left' and `scroll-right' can be annoying and are also not bound to mouse-buttons. If this option is a positive integer S then in all ECB-tree-buffers the keys [M-mouse-1] and [M-mouse-3] are bound to scrolling left rsp. right with scroll-step S - clicking with mouse-1 or mouse-2 onto the edge of the modeline has the same effect, i.e. if you click with mouse-1 onto the left (rsp. right) edge of the modeline you will scroll left (rsp. right). Additionally [C-M-mouse-1] and [C-M-mouse-3] are bound to scrolling left rsp. right with scroll-step `window-width' - 2. Default is a scroll-step of 5. If the value is nil then no keys for horizontal scrolling are bound. (custom-declare-variable 'ecb-tree-easy-hor-scroll '5 '(#$ . -55832) :group 'ecb-general :type '(radio :value 5 (const :tag "No hor. mouse scrolling" :value nil) (integer :tag "Scroll step"))) #@172 *Truncate long names that don't fit in the width of the ECB windows. If you change this during ECB is activated you must deactivate and activate ECB again to take effect. (custom-declare-variable 'ecb-truncate-long-names 't '(#$ . -57056) :group 'ecb-general :type 'boolean) #@1111 *Synchronize the ECB-windows automatically with current edit window. If 'always then the synchronization takes place always a buffer changes in the edit window, if nil then never. If a list of major-modes then only if the `major-mode' of the new buffer belongs NOT to this list. But in every case the synchronization takes only place if the current-buffer in the edit-window has a relation to files or directories. Examples for the former one are all programming-language-modes, `Info-mode' too, an example for the latter one is `dired-mode'. For all major-modes related to non-file/directory-buffers like `help-mode', `customize-mode' and others never an autom. synchronization will be done! It's recommended to exclude at least `Info-mode' because it makes no sense to synchronize the ECB-windows after calling the Info help. Per default also `dired-mode' is excluded but it can also making sense to synchronize the ECB-directories/sources windows with the current directory in the dired-buffer. IMPORTANT NOTE: Every time the synchronization is done the hook `ecb-current-buffer-sync-hook' is evaluated. (custom-declare-variable 'ecb-window-sync ''(Info-mode dired-mode) '(#$ . -57339) :group 'ecb-general :type '(radio :tag "Synchronize ECB windows" (const :tag "Always" :value always) (const :tag "Never" nil) (repeat :tag "Not with these modes" (symbol :tag "mode")))) #@348 *Time Emacs must be idle before the ECB-windows are synchronized. Synchronizing is done with the current source displayed in the edit window. If nil then there is no delay, means synchronization takes place immediately. A small value of about 0.25 seconds saves CPU resources and you get even though almost the same effect as if you set no delay. (custom-declare-variable 'ecb-window-sync-delay '0.25 '(#$ . -58724) :group 'ecb-general :type '(radio (const :tag "No synchronizing delay" :value nil) (number :tag "Idle time before synchronizing" :value 0.25)) :set #'(lambda (symbol value) (set symbol value) (if ecb-minor-mode (ecb-activate-ecb-sync-functions value 'ecb-window-sync-function))) :initialize 'custom-initialize-default) #@258 *Enable incremental search in the ECB-tree-buffers. For a detailed explanation see the online help section "Working with the keyboard in the ECB buffers". If you change this during ECB is activated you must deactivate and activate ECB again to take effect. (custom-declare-variable 'ecb-tree-incremental-search ''prefix '(#$ . -59466) :group 'ecb-general :type '(radio (const :tag "Match only prefix" :value prefix) (const :tag "Match every substring" :value substring) (const :tag "No incremental search" :value nil))) #@742 *Enable smart navigation in the tree-windows by horizontal arrow-keys. If not nil then the left- and right-arrow keys work in the ECB tree-window in the following smart way if onto an expandable node: + Left-arrow: If node is expanded then it will be collapsed otherwise point jumps to the next "higher" node in the hierarchical tree (higher means the next higher tree-level or - if no higher level available - the next higher node on the same level). + Right-arrow: If node is not expanded then it will be expanded. Onto a not expandable node the horizontal arrow-keys go one character in the senseful correct direction. If this option is changed the new value takes first effect after deactivating ECB and then activating it again! (custom-declare-variable 'ecb-tree-navigation-by-arrow 't '(#$ . -59993) :group 'ecb-general :type 'boolean) #@1394 *Node info to display in a tree-buffer. Define which node info should displayed in a tree-buffer after mouse moving over the node or after a shift click onto the node. For every tree-buffer you can define "when" node info should be displayed: - always: Node info is displayed by moving with the mouse over a node. - if-too-long: Node info is only displayed by moving with the mouse over a node does not fit into the window-width of the tree-buffer window. In the ECB directories buffer this means also if a node is shortend or if the node has an alias (see `ecb-source-path'). - shift-click: Node info is only displayed after a shift click with the primary mouse button onto the node. - never: Node info is never displayed. For every tree-buffer you can define what info should be displayed: + Directory-buffer: - name: Only the full node-name is displayed. - path: The full-path of the node is displayed. + Sources-buffer: - name: Only the full node-name is displayed. - file-info: File infos for this file are displayed. - file-info-full: Fill infos incl. full path for this file are displayed. + History-buffer: see Directories-buffer. + Methods-buffer: - name: Only the full node name is displayed. - name+type: The full name + the type of the node (function, class, variable) is displayed. Do NOT set this option directly via setq but use always customize! (custom-declare-variable 'ecb-show-node-info-in-minibuffer ''((if-too-long . path) (if-too-long . name) (always . path) (if-too-long . name+type)) '(#$ . -60851) :group 'ecb-general :set #'(lambda (symbol value) (set symbol value) (if (and (boundp 'ecb-minor-mode) ecb-minor-mode) (let ((when-list (mapcar (lambda (elem) (car elem)) value))) (if (or (member 'if-too-long when-list) (member 'always when-list)) (tree-buffer-activate-follow-mouse) (tree-buffer-deactivate-follow-mouse) (tree-buffer-deactivate-mouse-tracking))))) :type '(list (cons :tag "* Directories-buffer" (choice :tag "When" (const :tag "Always" :value always) (const :tag "If too long" :value if-too-long) (const :tag "After shift click" :value shift-click) (const :tag "Never" :value never)) (choice :tag "What" (const :tag "Node-name" :value name) (const :tag "Full path" :value path))) (cons :tag "* Sources-buffer" (choice :tag "When" (const :tag "Always" :value always) (const :tag "If too long" :value if-too-long) (const :tag "After shift click" :value shift-click) (const :tag "Never" :value never)) (choice :tag "What" (const :tag "Node-name" :value name) (const :tag "File info" :value file-info) (const :tag "File info (full path)" :value file-info-full))) (cons :tag "* History-buffer" (choice :tag "When" (const :tag "Always" :value always) (const :tag "If too long" :value if-too-long) (const :tag "After shift click" :value shift-click) (const :tag "Never" :value never)) (choice :tag "What" (const :tag "Node-name" :value name) (const :tag "Full path" :value path))) (cons :tag "* Method-buffer" (choice :tag "When" (const :tag "Always" :value always) (const :tag "If too long" :value if-too-long) (const :tag "After shift click" :value shift-click) (const :tag "Never" :value never)) (choice :tag "What" (const :tag "Node-name" :value name) (const :tag "Node-name + type" :value name+type))))) #@1695 *Primary- and secondary mouse button for using the ECB-buffers. A click with the primary button causes the main effect in each ECB-buffer: - ECB Directories: Expanding/collapsing nodes and displaying files in the ECB Sources buffer. - ECB sources/history: Opening the file in that edit-window specified by the option `ecb-primary-mouse-jump-destination'. - ECB Methods: Jumping to the method in that edit-window specified by the option `ecb-primary-mouse-jump-destination'. A click with the primary mouse-button while the SHIFT-key is pressed called the POWER-click and does the following (depending on the ECB-buffer where the POWER-click occurs): + Directory-buffer: Refreshing the directory-contents-cache (see `ecb-cache-directory-contents'). + Sources- and History-buffer: Only displaying the source-contents in the method-buffer but not displaying the source-file in the edit-window. + Methods-buffer: Narrowing to the clicked method/variable/ect... (see `ecb-token-visit-post-actions'). This works only for sources supported by semantic! In addition always the whole node-name is displayed in the minibuffer after a POWER-click (for this see also `ecb-show-node-info-in-minibuffer'). The secondary mouse-button is for opening (jumping to) the file in the other window (see the documentation `ecb-primary-mouse-jump-destination'). The following combinations are possible: - primary: mouse-2, secondary: C-mouse-2 (means mouse-2 while CTRL-key is pressed). This is the default setting. - primary: mouse-1, secondary: C-mouse-1 - primary: mouse-1, secondary: mouse-2 If you change this during ECB is activated you must deactivate and activate ECB again to take effect! (custom-declare-variable 'ecb-primary-secondary-mouse-buttons ''mouse-2--C-mouse-2 '(#$ . -64134) :group 'ecb-general :type '(radio (const :tag "Primary: mouse-2, secondary: Ctrl-mouse-2" :value mouse-2--C-mouse-2) (const :tag "Primary: mouse-1, secondary: Ctrl-mouse-1" :value mouse-1--C-mouse-1) (const :tag "Primary: mouse-1, secondary: mouse-2" :value mouse-1--mouse-2))) #@733 *Jump-destination of a primary mouse-button click. Defines in which edit-window (if splitted) ECB does the "right" action (opening the source, jumping to a method/variable) after clicking with the primary mouse-button (see `ecb-primary-secondary-mouse-buttons') onto a node. There are two possible choices: - left-top: Does the "right" action always in the left/topmost edit-window. - last-point: Does the "right" action always in that edit-window which had the point before. If the edit-window is not splitted this setting doesn´t matter. Note: A click with the secondary mouse-button (see again `ecb-primary-secondary-mouse-buttons' does the "right" action always in the "other" window related to the setting in this option. (custom-declare-variable 'ecb-primary-mouse-jump-destination ''left-top '(#$ . -66211) :group 'ecb-general :type '(radio (const :tag "Left/topmost edit-window" :value left-top) (const :tag "Last edit-window with point" :value last-point))) #@139 *String to display in the mode line when ECB minor mode is active. (When the string is not empty, make sure that it has a leading space.) (custom-declare-variable 'ecb-minor-mode-text '" ECB" '(#$ . -67190) :group 'ecb-general :type 'string) #@730 *Check at ECB-startup if all ECB-options have correct values. If not nil then all ECB-options are checked if their current value have the correct type. It the type is incorrect the option is either auto. upgraded to the new type or reset to the default-value of current ECB if no upgrade is possible. This feature can also upgrade options which are renamed in current ECB and try to transform the old-value to the new named option. After startup all upgraded or reset options are displayed with their old (before upgrade/reset) and new values. See also the commands `ecb-upgrade-options' and `ecb-display-upgraded-options'. If this option is off then the user can perform the check and reset manually with `ecb-upgrade-options'. (custom-declare-variable 'ecb-auto-compatibility-check 't '(#$ . -67439) :group 'ecb-general :type 'boolean) #@235 *Checks at start-time if the requirements are fulfilled. It checks if the required versions of the libraries semantic, eieio and speedbar are installed and loaded into Emacs. It is strongly recommended to set this option to not nil! (custom-declare-variable 'ecb-version-check 't '(#$ . -68284) :group 'ecb-general :type 'boolean) #@495 *If not nil ECB displays debug-information in the Messages-buffer. This is done for some critical situations concerning semantic-tokens and their overlays (or extends for XEmacs). Normally you should not need this switched on! But if you get errors like "destroyed extend" for XEmacs or "wrong-argument-type" concerning overlays for GNU Emacs then you should switch on this option and submitting a bug-report to the ecb-mailing-list (`ecb-submit-problem-report') after getting the error again! (custom-declare-variable 'ecb-debug-mode 'nil '(#$ . -68623) :group 'ecb-general :type 'boolean) #@1356 *User extensions for the popup-menu of the directories buffer. Value is a list of elements of the following type: Each element defines a new menu-entry and is a list containing two sub-elements, whereas the first is the name of the menu-entry and the second the function (a function symbol or a lambda-expression) being called if the menu-entry is selected. If there is no second sub-element and the first one is the string "---" then a non-selectable menu-separator is displayed. The function must follow the following guidelines: It takes one argument which is the tree-buffer-node of the selected node (means the node for which the popup-menu has been opened). With the function `tree-node-get-data' the related data of this node is accessible and returns in case of the directories buffer the directory for which the popup-menu has been opened. The function can do any arbitrary things with this directory. Example for such a menu-function: (defun ecb-my-special-dir-popup-function (node) (let ((node-data=dir (tree-node-get-data node))) (message "Dir under node: %s" node-data=dir))) Per default the user-extensions are added at the beginning of the built-in menu-entries of `ecb-directories-menu' but the whole menu can be re-arranged with `ecb-directories-menu-sorter'. If you change this option you have to restart ECB to take effect. (custom-declare-variable 'ecb-directories-menu-user-extension 'nil '(#$ . -69222) :group 'ecb-directories :type '(repeat (choice :tag "Menu-entry" :menu-tag "Menu-entry" :value ("" ignore) (const :tag "Separator" :value ("---")) (list :tag "Menu-entry" (string :tag "Entry-name") (function :tag "Function" :value ignore))))) #@500 *User extensions for the popup-menu of the sources buffer. For further explanations see `ecb-directories-menu-user-extension'. The node-argument of a menu-function contains as data the filename of the source for which the popup-menu has been opened. Per default the user-extensions are added at the beginning of the built-in menu-entries of `ecb-sources-menu' but the whole menu can be re-arranged with `ecb-sources-menu-sorter'. If you change this option you have to restart ECB to take effect. (custom-declare-variable 'ecb-sources-menu-user-extension 'nil '(#$ . -70909) :group 'ecb-sources :type '(repeat (choice :tag "Menu-entry" :menu-tag "Menu-entry" :value ("" ignore) (const :tag "Separator" :value ("---")) (list :tag "Menu-entry" (string :tag "Entry-name") (function :tag "Function" :value ignore))))) #@521 *User extensions for the popup-menu of the methods buffer. For further explanations see `ecb-directories-menu-user-extension'. The node-argument of a menu-function contains as data the semantic-token of the method/variable/token for which the popup-menu has been opened. Per default the user-extensions are added at the beginning of the built-in menu-entries of `ecb-methods-menu' but the whole menu can be re-arranged with `ecb-methods-menu-sorter'. If you change this option you have to restart ECB to take effect. (custom-declare-variable 'ecb-methods-menu-user-extension 'nil '(#$ . -71732) :group 'ecb-methods :type '(repeat (choice :tag "Menu-entry" :menu-tag "Menu-entry" :value ("" ignore) (const :tag "Separator" :value ("---")) (list :tag "Menu-entry" (string :tag "Entry-name") (function :tag "Function" :value ignore))))) #@500 *User extensions for the popup-menu of the history buffer. For further explanations see `ecb-directories-menu-user-extension'. The node-argument of a menu-function contains as data the filename of the source for which the popup-menu has been opened. Per default the user-extensions are added at the beginning of the built-in menu-entries of `ecb-history-menu' but the whole menu can be re-arranged with `ecb-history-menu-sorter'. If you change this option you have to restart ECB to take effect. (custom-declare-variable 'ecb-history-menu-user-extension 'nil '(#$ . -72576) :group 'ecb-history :type '(repeat (choice :tag "Menu-entry" :menu-tag "Menu-entry" :value ("" ignore) (const :tag "Separator" :value ("---")) (list :tag "Menu-entry" (string :tag "Entry-name") (function :tag "Function" :value ignore))))) #@692 *Function which re-sorts the menu-entries of the directories buffer. If a function then this function is called to re-arrange the menu-entries of the combined menu-entries of the user-menu-extensions of `ecb-directories-menu-user-extension' and the built-in-menu `ecb-directories-menu'. If nil then no special sorting will be done and the user-extensions are placed in front of the built-in-entries. The function get one argument, a list of menu-entries. For the format of this argument see `ecb-directories-menu-user-extension'. The function must return a new list in the same format. Of course this function can not only re-arrange the entries but also delete entries or add new entries. (custom-declare-variable 'ecb-directories-menu-sorter 'nil '(#$ . -73399) :group 'ecb-directories :type '(choice :tag "Menu-sorter" :menu-tag "Menu-sorter" (const :tag "No special sorting" :value nil) (function :tag "Sort-function" :value identity))) #@469 *Function which re-sorts the menu-entries of the directories buffer. If a function then this function is called to sort the menu-entries of the combined menu-entries of the user-menu-extensions of `ecb-sources-menu-user-extension' and the built-in-menu `ecb-sources-menu'. If nil then no special sorting will be done and the user-extensions are placed in front of the built-in-entries. For the guidelines for such a sorter-function see `ecb-directories-menu-sorter'. (custom-declare-variable 'ecb-sources-menu-sorter 'nil '(#$ . -74348) :group 'ecb-sources :type '(choice :tag "Menu-sorter" :menu-tag "Menu-sorter" (const :tag "No special sorting" :value nil) (function :tag "Sort-function" :value identity))) #@469 *Function which re-sorts the menu-entries of the directories buffer. If a function then this function is called to sort the menu-entries of the combined menu-entries of the user-menu-extensions of `ecb-methods-menu-user-extension' and the built-in-menu `ecb-methods-menu'. If nil then no special sorting will be done and the user-extensions are placed in front of the built-in-entries. For the guidelines for such a sorter-function see `ecb-directories-menu-sorter'. (custom-declare-variable 'ecb-methods-menu-sorter 'nil '(#$ . -75066) :group 'ecb-methods :type '(choice :tag "Menu-sorter" :menu-tag "Menu-sorter" (const :tag "No special sorting" :value nil) (function :tag "Sort-function" :value identity))) #@469 *Function which re-sorts the menu-entries of the directories buffer. If a function then this function is called to sort the menu-entries of the combined menu-entries of the user-menu-extensions of `ecb-history-menu-user-extension' and the built-in-menu `ecb-history-menu'. If nil then no special sorting will be done and the user-extensions are placed in front of the built-in-entries. For the guidelines for such a sorter-function see `ecb-directories-menu-sorter'. (custom-declare-variable 'ecb-history-menu-sorter 'nil '(#$ . -75784) :group 'ecb-history :type '(choice :tag "Menu-sorter" :menu-tag "Menu-sorter" (const :tag "No special sorting" :value nil) (function :tag "Sort-function" :value identity))) #@1125 *Hook run at the end of activating ECB by `ecb-activate'. These hooks run after all the internal setup process but directly before(!) drawing the layout specified in `ecb-layout' (means before dividing the frame into several windows). A senseful using of this hook can be maximizing the Emacs-frame for example, because this should be done before the layout is drawn because ECB computes the size of the ECB-windows with the current frame size! If you need a hook-option for the real end of the activating process (i.e. after the layout-drawing) look at `ecb-activate-hook'. IMPORTANT: The difference between this hook and `ecb-redraw-layout-before-hook' is that the latter one is evaluated always before the layout is redrawn (for example after calling `ecb-redraw-layout') whereas the former one (this hook) is only evaluated exactly once during the activation-process of ECB. So during the activation process there is the following sequence of hooks: 1. 'ecb-activate-before-layout-draw-hook' (this one) 2. `ecb-redraw-layout-before-hook' 3. 4. `ecb-redraw-layout-after-hook' 5. `ecb-activate-hook' (custom-declare-variable 'ecb-activate-before-layout-draw-hook 'nil '(#$ . -76503) :group 'ecb-general :type 'hook) #@487 *Hook run at the beginning of activating ECB by `ecb-activate'. These hooks run before any other tasks of the activating process are performed. If any of these hooks returns nil then ECB will not be activated! This can be used to check some conditions and then only start ECB if all conditions are true. For example a function could be added which returns only nil if Gnus is running. Then calling `ecb-activate' or `ecb-minor-mode' will only start ECB if Gnus is not already running. (custom-declare-variable 'ecb-before-activate-hook 'nil '(#$ . -77750) :group 'ecb-general :type 'hook) #@271 *Hook run at the end of activating ECB by `ecb-activate'. These hooks run at the real end of the activating process, means after the layout has been drawn!. If you need hooks which are run direct before the layout-drawing look at `ecb-activate-before-layout-draw-hook'. (custom-declare-variable 'ecb-activate-hook 'nil '(#$ . -78347) :group 'ecb-general :type 'hook) #@113 *Hook run at the end of deactivating ECB by `ecb-deactivate'. These hooks run before the ecb-layout is cleared! (custom-declare-variable 'ecb-deactivate-hook 'nil '(#$ . -78721) :group 'ecb-general :type 'hook) #@256 *Hook run at the beginning of deactivating ECB by `ecb-deactivate'. These hooks run before any other tasks of the deactivating process are performed. If any of these hooks returns nil then ECB will not be deactivated! See also `ecb-before-activate-hook'. (custom-declare-variable 'ecb-before-deactivate-hook 'nil '(#$ . -78939) :group 'ecb-general :type 'hook) #@1095 *Hook run at the end of `ecb-current-buffer-sync'. See documentation of `ecb-current-buffer-sync' for conditions when synchronization takes place and so in turn these hooks are evaluated. Precondition for such a hook: Current buffer is the buffer of the currently selected edit-window. Postcondition for such a hook: Point must stay in the same edit-window as before evaluating the hook. Important note: If `ecb-window-sync' is not nil `ecb-current-buffer-sync' is running either every time Emacs is idle or even after every command (see `ecb-window-sync-delay'). So these hooks can be really called very often! Therefore each function of this hook should/must check in an efficient way at beginning if its task have to be really performed and then do them only if really necessary! Otherwise performance of Emacs could slow down dramatically! It is strongly recommended that each function added to this hook uses the macro `ecb-do-if-buffer-visible-in-ecb-frame' at beginning! See `ecb-speedbar-current-buffer-sync' and `ecb-eshell-current-buffer-sync' for examples how to use this macro! (custom-declare-variable 'ecb-current-buffer-sync-hook 'nil '(#$ . -79308) :group 'ecb-general :type 'hook) #@450 *Local hook running at the end of each tree-buffer creation. Every function of this hook is called once without arguments direct after creating a tree-buffer of ECB and it's local key-map. So for example a function could be added which performs calls of `local-set-key' to define new key-bindings for EVERY tree-buffer. The following keys must not be rebind in all tree-buffers: - and all combinations with and - - `C-t' (custom-declare-variable 'ecb-common-tree-buffer-after-create-hook 'nil '(#$ . -80517) :group 'ecb-general :type 'hook) #@438 *Local hook running after the creation of the directories-buffer. Every function of this hook is called once without arguments direct after creating the directories-buffer of ECB and it's local key-map. So for example a function could be added which performs calls of `local-set-key' to define new key-bindings only for the directories-buffer of ECB. The following keys must not be rebind in the directories-buffer: , and  (custom-declare-variable 'ecb-directories-buffer-after-create-hook 'nil '(#$ . -81093) :group 'ecb-directories :type 'hook) #@340 *Local hook running after the creation of the sources-buffer. Every function of this hook is called once without arguments direct after creating the sources-buffer of ECB and it's local key-map. So for example a function could be added which performs calls of `local-set-key' to define new key-bindings only for the sources-buffer of ECB. (custom-declare-variable 'ecb-sources-buffer-after-create-hook 'nil '(#$ . -81661) :group 'ecb-sources :type 'hook) #@340 *Local hook running after the creation of the methods-buffer. Every function of this hook is called once without arguments direct after creating the methods-buffer of ECB and it's local key-map. So for example a function could be added which performs calls of `local-set-key' to define new key-bindings only for the methods-buffer of ECB. (custom-declare-variable 'ecb-methods-buffer-after-create-hook 'nil '(#$ . -82123) :group 'ecb-methods :type 'hook) #@340 *Local hook running after the creation of the history-buffer. Every function of this hook is called once without arguments direct after creating the history-buffer of ECB and it's local key-map. So for example a function could be added which performs calls of `local-set-key' to define new key-bindings only for the history-buffer of ECB. (custom-declare-variable 'ecb-history-buffer-after-create-hook 'nil '(#$ . -82585) :group 'ecb-history :type 'hook) #@114 *Display contents of non-semantic-files in the ECB-methods-buffer. See also `ecb-non-semantic-parsing-function'. (custom-declare-variable 'ecb-process-non-semantic-files '(if (locate-library "speedbar") t) '(#$ . -83047) :group 'ecb-general :group 'ecb-non-semantic :type 'boolean) #@1451 *Define mode-dependent parsing functions for non-semantic files. This is an alist where the car is a major-mode symbol and the cdr is a function-symbol of a function which should be used for parsing a non-semantic buffer, i.h. a buffer for which no semantic grammar exists. Such a function gets one argument - the filename of current buffer - and has to generate and return a token/tag list which is understandable by `speedbar-insert-generic-list'. speedbar has already included two functions `speedbar-fetch-dynamic-imenu' and `speedbar-fetch-dynamic-etags' which can be used for parsing buffers with imenu rsp. etags. This option takes only effect if `ecb-process-non-semantic-files' is not nil: Then ECB checks for non-semantic buffers if current `major-mode' is contained in this option and if yes, then the specified parsing function is called; if not then the cars of the elements of `speedbar-dynamic-tags-function-list' are called in that sequence they are listed in this variable. See option `speedbar-dynamic-tags-function-list' for further details. In most cases imenu-parsing is preferable over etags-parsing because imenu operates on Emacs-buffers and needs no external tool and therefore parsing works also if current contents of a buffer are not saved to disk. But maybe sometimes etags may return better parsing results. IMPORTANT: if imenu-parsing should be used then the option `speedbar-use-imenu-flag' must be set to not nil! (custom-declare-variable 'ecb-non-semantic-parsing-function 'nil '(#$ . -83337) :group 'ecb-methods :group 'ecb-non-semantic :type '(repeat (cons (symbol :tag "Major-mode") (function :tag "Parsing function")))) #@248 *Initially expand all tokens for not by semantic supported sources. This option can be customized on a major-mode basis, i.e. if a `major-mode' is contained in this option then all tokens for this modes will be initially expanded - otherwise not. (custom-declare-variable 'ecb-non-semantic-methods-initial-expand 'nil '(#$ . -85005) :group 'ecb-methods :group 'ecb-non-semantic :type '(repeat :tag "Expand this modes" (symbol :tag "major mode"))) #@759 *Automatic saving of current buffer before rebuilding its methods. This option is only relevant for sources which are supported and parsed by etags (see `ecb-process-non-semantic-files'). Because etags is an external tool a source-buffer can only be reparsed if the buffer is saved to disk. So the command `ecb-rebuild-methods-buffer' checks for sources which are not supported by semantic or imenu if either this option is t or if the major-mode of the source-buffer is contained in this list: In both cases ECB saves the current source-buffer before it re-runs etags for reparsing the source. If nil or if the major-mode is not contained then no automatic saving will be done! For all source supported by semantic or by imenu this option takes no effect. (custom-declare-variable 'ecb-auto-save-before-etags-methods-rebuild 't '(#$ . -85459) :group 'ecb-methods :group 'ecb-non-semantic :type '(radio (const :tag "For all etags modes" :value t) (repeat :tag "For these modes" (symbol :tag "Major-mode")))) #@681 *Exclude modes from parsing with imenu or etags. Per default, ECB tries to parse all file-types not supported by semantic with imenu or etags or some other method (for details see the option `ecb-non-semantic-parsing-function'). If a file-type can not be parsed by semantic, imenu or etags than this simply results in an empty method-buffer for this file. But nevertheless you will get a message "Sorry, no support for a file of that extension" which comes from the speedbar-library and can not switched off. Therefore if a `major-mode' is known as not parse-able by semantic, imenu or etags it can be added to this option and then it will be excluded from being tried to parsed. (custom-declare-variable 'ecb-non-semantic-exclude-modes ''(sh-mode fundamental-mode text-mode) '(#$ . -86475) :group 'ecb-non-semantic :type '(repeat :tag "Modes to exclude" (symbol :tag "Major-mode"))) #@578 *Hook at beginning of `ecb-rebuild-methods-buffer-for-non-semantic'. So this function is always called by the command `ecb-rebuild-methods-buffer' for not semantic supported source-types. Every function of this hook gets one argument: The complete filename of the current source-buffer in the edit-window. The Method-buffer is only rebuild by `ecb-rebuild-methods-buffer-for-non-semantic' if either the hook contains no function (the default) or if no function of this hook returns nil! See `run-hook-with-args-until-failure' for description how these function are processed. (custom-declare-variable 'ecb-rebuild-non-semantic-methods-before-hook 'nil '(#$ . -87366) :group 'ecb-methods :group 'ecb-non-semantic :type 'hook) #@99 If `ecb-debug-mode' is not nil then enter the Emacs-debugger and signal an error with ERROR-ARGS. (defalias 'ecb-enter-debugger #[(&rest error-args) "\205 \303\304\305\n\")\207" [ecb-debug-mode debug-on-error error-args t apply error] 3 (#$ . 88098)]) #@336 Assert that TOKEN is a valid token. If not valid then `ecb-enter-debugger' is called. If NO-REPARSE is not nil then the buffer is not autom. reparsed. It returns nil if the assertion fails otherwise not nil. So the caller can even check the result if `ecb-debug-mode' is nil in which case the function `ecb-enter-debugger' is a no-op. (defalias 'ecb-semantic-assert-valid-token #[(token &optional no-reparse) "\211<\205@;\205A@\205A@9)\203O\304!\203MG Z8\305\n!\203J\306\n!\204J \204A\307 \210\310 \210\311 \210\312\313\"\210\314\202K\315)\207\315\207\312\316\"\210\314\207" [token semantic-tfe-overlay o no-reparse semantic-token-with-position-p semantic-overlay-p semantic-overlay-live-p ecb-nav-initialize semantic-clear-toplevel-cache ecb-update-methods-buffer--internal ecb-enter-debugger "Token %S is invalid!" nil t "Not a semantic token: %S"] 4 (#$ . 88360)]) (defalias 'ecb-semantic-token-buffer #[(token) "\303!\210\211G Z8\304\n!\205\305\n!*\207" [token semantic-tfe-overlay o ecb-semantic-assert-valid-token semantic-overlay-p semantic-overlay-buffer] 3]) (defalias 'ecb-semantic-token-start #[(token) "\303!\210\211G Z8\304\n!\203\305\n!\202\n\306H*\207" [token semantic-tfe-overlay o ecb-semantic-assert-valid-token semantic-overlay-p semantic-overlay-start 0] 3]) (defalias 'ecb-semantic-token-end #[(token) "\303!\210\211G Z8\304\n!\203\305\n!\202\n\306H*\207" [token semantic-tfe-overlay o ecb-semantic-assert-valid-token semantic-overlay-p semantic-overlay-end 1] 3]) (defalias 'ecb-semantic-current-nonterminal #[nil "\300\301\302\217\207" [nil (semantic-current-nonterminal) ((error (byte-code "\300\301!\210\302 \205\303 \210\304 \210\305 \207" [message "semantic-current-nonterminal has problems --> reparsed is performed!" ecb-point-in-edit-window semantic-clear-toplevel-cache ecb-update-methods-buffer--internal semantic-current-nonterminal] 2)))] 3]) (defalias 'ecb-exec-in-directories-window '(macro . #[(&rest body) "\301\302\303BBD\207" [body unwind-protect when (ecb-window-select ecb-directories-buffer-name)] 4])) (defalias 'ecb-exec-in-sources-window '(macro . #[(&rest body) "\301\302\303BBD\207" [body unwind-protect when (ecb-window-select ecb-sources-buffer-name)] 4])) (defalias 'ecb-exec-in-methods-window '(macro . #[(&rest body) "\301\302\303BBD\207" [body unwind-protect when (ecb-window-select ecb-methods-buffer-name)] 4])) (defalias 'ecb-exec-in-history-window '(macro . #[(&rest body) "\301\302\303BBD\207" [body unwind-protect when (ecb-window-select ecb-history-buffer-name)] 4])) (defalias 'ecb-window-select #[(name) "\302!\211\205 \303 !)\207" [name window get-buffer-window select-window] 3]) (defalias 'ecb-goto-window #[(name) "\205\303 !\210\304 !\210\305\n!\207" [ecb-minor-mode ecb-frame name raise-frame select-frame ecb-window-select] 2]) #@144 Make the ECB-directories window the current window. If `ecb-use-speedbar-instead-native-tree-buffer' is 'dir then goto to the speedbar-window. (defalias 'ecb-goto-window-directories #[nil "\302!\206 \303\232\205\304 \207" [ecb-directories-buffer-name ecb-use-speedbar-instead-native-tree-buffer ecb-goto-window dir ecb-goto-window-speedbar] 2 (#$ . 91225) nil]) #@143 Make the ECB-sources window the current window. If `ecb-use-speedbar-instead-native-tree-buffer' is 'source then goto to the speedbar-window. (defalias 'ecb-goto-window-sources #[nil "\302!\206 \303\232\205\304 \207" [ecb-sources-buffer-name ecb-use-speedbar-instead-native-tree-buffer ecb-goto-window source ecb-goto-window-speedbar] 2 (#$ . 91599) nil]) #@143 Make the ECB-methods window the current window. If `ecb-use-speedbar-instead-native-tree-buffer' is 'method then goto to the speedbar-window. (defalias 'ecb-goto-window-methods #[nil "\302!\206 \303\232\205\304 \207" [ecb-methods-buffer-name ecb-use-speedbar-instead-native-tree-buffer ecb-goto-window method ecb-goto-window-speedbar] 2 (#$ . 91967) nil]) #@49 Make the ECB-history window the current window. (defalias 'ecb-goto-window-history #[nil "\301!\207" [ecb-history-buffer-name ecb-goto-window] 2 (#$ . 92334) nil]) #@131 Make the ECB-speedbar window the current window. This command does nothing if no integrated speedbar is visible in the ECB-frame. (defalias 'ecb-goto-window-speedbar #[nil "\301 \205\302!\207" [ecb-speedbar-buffer-name ecb-speedbar-active-p ecb-goto-window] 2 (#$ . 92506) nil]) #@57 Make the (first) edit-window window the current window. (defalias 'ecb-goto-window-edit1 #[nil "\205\302 !\210\303 !\210\304\305!\207" [ecb-minor-mode ecb-frame raise-frame select-frame ecb-select-edit-window nil] 2 (#$ . 92794) nil]) #@71 Make the second edit-window (if available) window the current window. (defalias 'ecb-goto-window-edit2 #[nil "\205\302 !\210\303 !\210\304\305!\207" [ecb-minor-mode ecb-frame raise-frame select-frame ecb-select-edit-window t] 2 (#$ . 93038) nil]) #@55 Goto the ecb compilation window `ecb-compile-window'. (defalias 'ecb-goto-window-compilation #[nil "\205 \205\n\205\304\n!\205\305 !\210\306 !\210\307\n!\207" [ecb-minor-mode ecb-compile-window-height ecb-compile-window ecb-frame window-live-p raise-frame select-frame select-window] 2 (#$ . 93294) nil]) (defalias 'ecb-buffer-select #[(name) "\301!q\207" [name get-buffer] 2]) #@236 Maximize the ECB-directories-window. I.e. delete all other ECB-windows, so only one ECB-window and the edit-window(s) are visible (and maybe a compile-window). Works also if the ECB-directories-window is not visible in current layout. (defalias 'ecb-maximize-window-directories #[nil "\302\232\203 \303 \207\304 !\207" [ecb-use-speedbar-instead-native-tree-buffer ecb-directories-buffer-name dir ecb-maximize-window-speedbar ecb-display-one-ecb-buffer] 2 (#$ . 93689) nil]) #@228 Maximize the ECB-sources-window. I.e. delete all other ECB-windows, so only one ECB-window and the edit-window(s) are visible (and maybe a compile-window). Works also if the ECB-sources-window is not visible in current layout. (defalias 'ecb-maximize-window-sources #[nil "\302\232\203 \303 \207\304 !\207" [ecb-use-speedbar-instead-native-tree-buffer ecb-sources-buffer-name source ecb-maximize-window-speedbar ecb-display-one-ecb-buffer] 2 (#$ . 94172) nil]) #@228 Maximize the ECB-methods-window. I.e. delete all other ECB-windows, so only one ECB-window and the edit-window(s) are visible (and maybe a compile-window). Works also if the ECB-methods-window is not visible in current layout. (defalias 'ecb-maximize-window-methods #[nil "\302\232\203 \303 \207\304 !\207" [ecb-use-speedbar-instead-native-tree-buffer ecb-methods-buffer-name method ecb-maximize-window-speedbar ecb-display-one-ecb-buffer] 2 (#$ . 94642) nil]) #@228 Maximize the ECB-history-window. I.e. delete all other ECB-windows, so only one ECB-window and the edit-window(s) are visible (and maybe a compile-window). Works also if the ECB-history-window is not visible in current layout. (defalias 'ecb-maximize-window-history #[nil "\301!\207" [ecb-history-buffer-name ecb-display-one-ecb-buffer] 2 (#$ . 95112) nil]) #@231 Maximize the ECB-speedbar-window. I.e. delete all other ECB-windows, so only one ECB-window and the edit-window(s) are visible (and maybe a compile-window). Does nothing if the speedbar-window is not visible within the ECB-frame. (defalias 'ecb-maximize-window-speedbar #[nil "\301 \205\302!\207" [ecb-speedbar-buffer-name ecb-speedbar-active-p ecb-display-one-ecb-buffer] 2 (#$ . 95478) nil]) #@128 Toggles if RET in a tree-buffer should finally select the edit-window. See also the option `ecb-tree-RET-selects-edit-window'. (defalias 'ecb-toggle-RET-selects-edit-window #[nil "\302 \211\203*\303! \235\203\304\303! \"\305\306!\202-\307 \303!C\"\305\310!\202-\305\311!)\207" [tree-buffer ecb-tree-RET-selects-edit-window--internal ecb-point-in-tree-buffer buffer-name delete message "RET does not select the edit-window." append "RET selects the edit-window." "Point must stay in an ECB tree-buffer!"] 5 (#$ . 95882) nil]) (defalias 'ecb-create-node #[(parent-node display name data type) "\306=?\205-\307=\203 \207\310\n \f\311 \205\312&\313=\203*\314\315\"\210)\207" [display parent-node name type data ecb-truncate-long-names hidden flattened tree-node-new nil end expanded tree-node-set-expanded t node] 7]) (defalias 'ecb-get-token-type-display #[(token-type) "\303 \"\211\203 \n\202\303\304 \"\211\203\n\202\305)\207" [token-type ecb-show-tokens display ecb-find-assoc t (t hidden nil)] 4]) (defalias 'ecb-get-token-parent-names #[(parents) "\205b@\211\211<\205\n@;\205\nA@\205\nA@9)\203*\306 \307 #\2023 ;\2053\310 \311\"\211\203S \203J\312 \f\"\203J\313A!\202a\f\313A!B\202a <\205a\314\313 !\313A!\"*\207" [parents parent token ecb-font-lock-tokens name ecb-exclude-parents-regexp semantic-name-nonterminal nil semantic-colorize-text type string-match ecb-get-token-parent-names append] 5]) (defalias 'ecb-get-token-parents #[(token) "\301\3028!\207" [token ecb-get-token-parent-names 4] 3]) #@83 Get the name of TOKEN with the appropriate fcn from `ecb-token-display-function'. (defalias 'ecb-get-token-name #[(token &optional parent-token) "\300\301\302\217\207" [nil (byte-code "\306 \"A\306\307 \"A\310\n!\203\n\206!\310 !\203 \206!\311\211 \n #+\207" [major-mode ecb-token-display-function mode-display-fkt default-fkt display-fkt token assoc default fboundp semantic-prototype-nonterminal parent-token ecb-font-lock-tokens] 5) ((error (semantic-prototype-nonterminal token parent-token ecb-font-lock-tokens)))] 3 (#$ . 97453)]) #@213 Finds a bucket containing tokens of the given type, creates nodes for them and adds them to the given node. The bucket is removed from the buckets list. PARENT-TOKEN is only propagated to `ecb-add-token-bucket'. (defalias 'ecb-find-add-token-bucket #[(node type display sort-method buckets &optional parent-token no-bucketize) "A\205@\211A@) \n\211A@)A@=\2031\306\f\n  \n&\210\211\211AA)\241\202?\307\f A \n&)\207" [buckets x bucket type node display ecb-add-token-bucket ecb-find-add-token-bucket sort-method parent-token no-bucketize] 9 (#$ . 98009)]) (defalias 'ecb-format-bucket-name #[(name) "@ A@Q\303\n\3048\"\211)\207" [ecb-bucket-token-display name formatted-name ecb-merge-face-into-text 2] 5]) #@62 Adds a token bucket to a node unless DISPLAY equals 'hidden. (defalias 'ecb-add-token-bucket #[(node bucket display sort-method &optional parent-token no-bucketize) "\205d\306@! \f\307=?\205c\f\310=\204-\311 \312\313\211 \205#\314&\315\n\f\316=\"\210\317A\"\313\211\203a@\320\311\321\322\323\n \205P\314&$\210A\211\204<*\313*\207" [bucket node bucket-node name display ecb-truncate-long-names ecb-format-bucket-name hidden flattened tree-node-new 1 nil end tree-node-set-expanded expanded ecb-sort-tokens ecb-update-token-node "" 0 t sort-method token #1=#:--dolist-temp--47352 parent-token no-bucketize] 10 (#$ . 98747)]) #@36 Updates a node containing a token. (defalias 'ecb-update-token-node #[(token node &optional parent-token no-bucketize) "\306 \"\307 \310\f\"\"\210\311 A@\312=\"\210A@\313=?\205/\314 \n $\210\315 \316 !\317=?\")\207" [token ecb-show-only-positioned-tokens children node parent-token no-bucketize semantic-nonterminal-children tree-node-set-name ecb-get-token-name tree-node-set-expanded type function ecb-add-tokens tree-node-set-expandable tree-node-get-children nil] 5 (#$ . 99414)]) #@178 If for current major-mode a post-process function is found in `ecb-post-process-semantic-tokenlist' then this function is called with TOKENLIST otherwise TOKENLIST is returned. (defalias 'ecb-post-process-tokenlist #[(tokenlist) "\304 \"A\305\n!\203\n !\202 )\207" [major-mode ecb-post-process-semantic-tokenlist fcn tokenlist assoc fboundp] 3 (#$ . 99913)]) #@392 Return a new tokenlist based on TOKENLIST where all function-tokens in TOKENLIST having a parent token are grouped together under a new faux token for this parent-token. The new tokenlist contains first all parent-less tokens and then all grouped tokens. This is useful for oo-programming languages where the methods of a class can be defined outside the class-definition, e.g. C++, Eieio. (defalias 'ecb-group-function-tokens-with-parents #[(tokenlist) "\306\307!\203\n\307!\207\310\211\211\203b@A@\311=\203V\312\313\314@8\"A\203V\312\211\313\314@8\"A \"\211\203C\f@\fAB\241\210\202R\312\313\314@8\"A@CB B)\202[@ BA\211\204 \310\211\203\227@\211@\315P\316\317 A\237\310\211\211\211\211\257 \320\321\322#\210\nB)A\211\204k*\323 \237\n\"+\207" [tokenlist parentless parents parent-alist elem alist-elem fboundp semantic-adopt-external-members nil function assoc parent 4 " (Methods)" type "struct" semantic-token-put ecb-group-token t append #1=#:--dolist-temp--47353 group-token] 11 (#$ . 100285)]) #@70 Dump the current semantic-tokens in special buffer and display them. (defalias 'ecb-dump-semantic-toplevel #[nil "\302\303\304!!\305 \306\216\307\310!q\210\311 \210\312\313\"\210\314\307\310!!\210eb+\207" [tokens save-selected-window-window ecb-post-process-tokenlist semantic-bovinate-toplevel t selected-window ((byte-code "\301!\203\n\302!\210\301\207" [save-selected-window-window window-live-p select-window] 2)) get-buffer-create "ecb-dump" erase-buffer ecb-dump-tokens "" switch-to-buffer-other-window] 3 (#$ . 101336) nil]) (defalias 'ecb-dump-type #[(tok prefix) "\304!\305\211\203\n@ \306 \261\210\nA\211\204\n*\305\207" [tok parent #1=#:--dolist-temp--47354 prefix ecb-get-token-parents nil " "] 4]) (defalias 'ecb-dump-tokens #[(tokens prefix) "\306\211\203V\n@\211;\203\307 P!\210\202O \310 \306\f#\311\312 A@!\311\313 !;\2033\313 !\2024\314\315\261\210 A@\316=\203E\317 \"\210\320\321 \" \322P\"\210\nA\211\204*\306\207" [tokens tok #1=#:--dolist-temp--47355 prefix ecb-font-lock-tokens ecb-show-only-positioned-tokens nil princ semantic-name-nonterminal ", " symbol-name semantic-token-type "" "\n" type ecb-dump-type ecb-dump-tokens semantic-nonterminal-children " "] 8]) #@118 If NO-BUCKETIZE is not nil then TOKENS will not bucketized by `semantic-bucketize' but must already been bucketized! (defalias 'ecb-add-tokens #[(node tokens &optional parent-token no-bucketize) "\304 \n\203 \202\305 !\n$\207" [node parent-token no-bucketize tokens ecb-add-token-buckets semantic-bucketize] 5 (#$ . 102580)]) (defalias 'ecb-access-order #[(access) "\301=\203\302\207\303=\203\304\207\305=\203\306\207\307\207" [access public 0 protected 1 private 3 2] 2]) (defalias 'ecb-sort-tokens #[(sort-method tokens) "\203\303 \304\"\305=\203\303\n\306\"\202\n)\207 \207" [sort-method tokens tokens-by-name sort #[(a b) "\211@)\n\211@)\231\207" [a token b] 3] access #[(a b) "\302\303!!\302\303 !!W\207" [a b ecb-access-order semantic-nonterminal-protection] 4]] 3]) #@153 Creates and adds token nodes to the given node. The PARENT-TOKEN is propagated to the functions `ecb-add-token-bucket' and `ecb-find-add-token-bucket'. (defalias 'ecb-add-token-buckets #[(node parent-token buckets &optional no-bucketize) "\306B \306\211\203\265 @\211@\n\211A@)\n\211AA)@\f\307=\203\235\203\255A@\304=\203\255\310!\211\203\231\311\312\313!\306\314%\211\203\230\203_\315\316\"\202a\306\211\203\227@\317\203}\320\304\"\202\321\322\205\213\323&\210A\211\204j*))\202\255\324\f&\210+ A\211\204\f*\325\322! \306!\211\"\203\356\"@!\326! \211A@) \211AA)@&\210\"A\211\"\204\305+\306\207" [buckets ecb-show-tokens token-display #1=#:--dolist-temp--47356 type x nil parent ecb-get-token-parents ecb-create-node ecb-format-bucket-name "Parents" 1 sort string< tree-node-new semantic-colorize-text 2 t end ecb-find-add-token-bucket ecb-get-token-type-display ecb-add-token-bucket display sort-method parent-token parents node #2=#:--dolist-temp--47358 ecb-font-lock-tokens ecb-truncate-long-names no-bucketize type-display bucket #3=#:--dolist-temp--47357] 9 (#$ . 103387)]) #@168 Updates the method buffer and all internal ECB-caches after a partial semantic-reparse. This function is added to the hook `semantic-after-partial-cache-change-hook'. (defalias 'ecb-update-after-partial-reparse #[(updated-tokens) "\300\301\302!!\207" [ecb-rebuild-methods-buffer-with-tokencache semantic-bovinate-toplevel t] 3 (#$ . 104580)]) (defalias 'ecb-expand-directory-tree #[(path node) "\300\301\215\207" [exit (byte-code "\306!\307\211\203a\n@\310 !\fG GY\203Y\f\311 GO \230\203Y\fG GU\2044\f G\234 =\203Y\312 !\313 \314\"\210\315 !\210\316\317\fG GV\203S\320\f \"\206V?\"\210))\nA\211\204\n*\307\207" [node child #1=#:--dolist-temp--47359 data path ecb-directory-sep-char tree-node-get-children nil tree-node-get-data 0 tree-node-is-expanded tree-node-set-expanded t ecb-update-directory-node throw exit ecb-expand-directory-tree was-expanded] 6)] 2]) #@146 Cache for every directory all subdirs and files. This is an alist where an element looks like: ( . ( . )) (defvar ecb-files-and-subdirs-cache nil (#$ . 105467)) (defalias 'ecb-files-and-subdirs-cache-add #[(cache-elem) "\302@!?\205  B\211\207" [cache-elem ecb-files-and-subdirs-cache ecb-files-and-subdirs-cache-get] 2]) (defalias 'ecb-files-and-subdirs-cache-get #[(dir) "\302 \"A\207" [dir ecb-files-and-subdirs-cache assoc] 3]) (defalias 'ecb-files-and-subdirs-cache-remove #[(dir) "\303 \"\211\205\304\n \"\211)\207" [dir ecb-files-and-subdirs-cache elem assoc delete] 4]) (defalias 'ecb-clear-files-and-subdirs-cache #[nil "\301\211\207" [ecb-files-and-subdirs-cache nil] 2]) #@138 Return not nil if DIR matches any regexp in `ecb-cache-directory-contents' and NUMBER-OF-CONTENTS is greater then the related threshold. (defalias 'ecb-check-directory-for-caching #[(dir number-of-contents) "\300\301\215\207" [exit (byte-code "\306\211\2030\n@\307\310 \311\216\312 @ \"\203( AV\203(\313\314 @\"\210+\nA\211\204*\306\207" [ecb-cache-directory-contents elem #1=#:--dolist-temp--47360 case-fold-search save-match-data-internal dir nil t match-data ((set-match-data save-match-data-internal)) string-match throw exit number-of-contents] 4)] 2 (#$ . 106205)]) #@146 Return the related source-exclude-include-regexps of `ecb-source-file-regexps' if DIR matches any directory-regexp in `ecb-source-file-regexps'. (defalias 'ecb-check-directory-for-source-regexps #[(dir) "\300\301\215\207" [exit (byte-code "\306\211\203(\n@\307\310 \311\216\312 @ \"\203 \313\314 A\"\210+\nA\211\204*\306\207" [ecb-source-file-regexps elem #1=#:--dolist-temp--47361 case-fold-search save-match-data-internal dir nil t match-data ((set-match-data save-match-data-internal)) string-match throw exit] 4)] 2 (#$ . 106798)]) #@102 Return an expanded list of filenames which are excluded by the .cvsignore file in current directory. (defalias 'ecb-files-from-cvsignore #[(dir) "\305\306\307\"!\310\211\205/\311\n!\310\211\203-\f@\312\313\310\314 !\315$ \"\fA\211\204* *\207" [dir files cvsignore-content f #1=#:--dolist-temp--47362 ecb-file-content-as-string expand-file-name ".cvsignore" nil split-string append directory-files wildcard-to-regexp t] 8 (#$ . 107352)]) #@76 Return not nil if DIR matches a regexp in `ecb-sources-exclude-cvsignore'. (defalias 'ecb-check-directory-for-cvsignore-exclude #[(dir) "\300\301\215\207" [exit (byte-code "\306\211\203&\n@\307\310 \311\216\312 \"\203\313\314 \"\210+\nA\211\204*\306\207" [ecb-sources-exclude-cvsignore elem #1=#:--dolist-temp--47363 case-fold-search save-match-data-internal dir nil t match-data ((set-match-data save-match-data-internal)) string-match throw exit] 4)] 2 (#$ . 107808)]) #@185 Return a cons cell where car is a list of all files to display in DIR and cdr is a list of all subdirs to display in DIR. Both lists are sorted according to `ecb-sources-sort-method'. (defalias 'ecb-get-files-and-subdirs #[(dir) "\306!\206\277\307\310\211\311$\312\313!!\206\314\315!\205\316!\310\211\211\211\317\232\203:\320\321\"\202K\322\232\203I\320\323\"\202K\211\310\211\203\250@\324\313\"!\203x\325\"\204\237\326\nC\"\202\237 \235\204\237\325\211A@)\"\204\230\325@\"\204\237\326 C\"A\211\204V* \nBB\327\fG\"\203\273\330 !\210 A.\207" [dir cache-elem subdirs source-files sorted-files cvsignore-files ecb-files-and-subdirs-cache-get directory-files nil t ecb-check-directory-for-source-regexps ecb-fix-filename ("" "") ecb-check-directory-for-cvsignore-exclude ecb-files-from-cvsignore name sort string< extension #[(a b) "\304\305\"\304 \305\"\211\n\230\203 \231\202 \n\231*\207" [a b ext-b ext-a file-name-extension t] 5] file-directory-p string-match append ecb-check-directory-for-caching ecb-files-and-subdirs-cache-add source-regexps files ecb-sources-sort-method file #1=#:--dolist-temp--47364 ecb-excluded-directories-regexp x] 8 (#$ . 108299)]) #@210 Cache for the contents of the buffer `ecb-sources-buffer-name'. This is an alist where every element is a cons cell which looks like: (directory . (tree-buffer-root buffer-string) (defvar ecb-sources-cache nil (#$ . 109558)) (defalias 'ecb-sources-cache-remove #[(dir) "\303 \"\211\205\304\n \"\211)\207" [dir ecb-sources-cache cache-elem assoc delete] 4]) (defalias 'ecb-sources-cache-add #[(cache-elem) "\302@!?\205  B\211\207" [cache-elem ecb-sources-cache ecb-sources-cache-get] 2]) #@132 Return the value of a cached-directory DIR, means the 3-element-list. If no cache-entry for DIR is available then nil is returned. (defalias 'ecb-sources-cache-get #[(dir) "\302 \"A\207" [dir ecb-sources-cache assoc] 3 (#$ . 110090)]) (defalias 'ecb-sources-cache-clear #[nil "\301\211\207" [ecb-sources-cache nil] 2]) #@225 Set the contents of the ECB-directories and -sources buffer correct for the value of PATH. If PATH is equal to the value of `ecb-path-selected-directory' then nothing is done unless first optional argument FORCE is not nil. (defalias 'ecb-set-selected-directory #[(path &optional force) "\306 \307\216\310 !\f\204 \230\204\377\311 \203 \203\312\216\313)!\203~\312* \203r \314\232\203J\315\316\312\317\320\321\322 !\"\"\323\"\211+@A)\202L\322 * \314\232\203d*\203d\324*\325\"\210\326*!\210\327*\206m\322 \"\210\330 \210\311 \204}\331*\"\210))\312\216\313,!\203\376\332!\211-\203\255\333-@!\210-A@.\312/\334 \210\335-8c\210)\202\362\336\337\340\312#\321\322 !\312012\3412\342!@\34031\325&\210\3332!\210\330 \210\343.G\"\203\361\322 \344.!\345 EB0\3460!\210+ \230\204\375\347ee\"\210))+\2124\3125\2116\203/6@\2115q\210\211\211GSH7U?\205#8P96A\2116\204\f+\350 \207" [ecb-path-selected-directory last-dir save-selected-window-window path force ecb-auto-expand-directory-tree selected-window ((byte-code "\301!\203\n\302!\210\301\207" [save-selected-window-window window-live-p select-window] 2)) ecb-fix-filename ecb-show-sources-in-directories-buffer-p nil ecb-window-select best sort delete mapcar #[(elem) "\304!\305 \306\216\307\310\311 !P \"\205 B+\207" [elem data save-match-data-internal ecb-path-selected-directory tree-node-get-data match-data ((set-match-data save-match-data-internal)) string-match "^" regexp-quote] 4] tree-node-get-children tree-buffer-get-root #[(lhs rhs) "@G @GV\207" [lhs rhs] 2] tree-node-set-expanded t ecb-update-directory-node ecb-expand-directory-tree tree-buffer-update tree-buffer-highlight-node-data ecb-sources-cache-get tree-buffer-set-root erase-buffer 2 tree-node-new "root" 0 ecb-tree-node-add-files ecb-get-files-and-subdirs ecb-check-directory-for-caching ecb-copy-list buffer-string ecb-sources-cache-add tree-buffer-scroll ecb-mode-line-format ecb-directories-buffer-name start x ecb-sources-buffer-name cache-elem tree-buffer-nodes buffer-read-only new-cache-elem old-children new-tree ecb-show-source-file-extension ecb-tree-buffers buf #1=#:--dolist-temp--47365 ecb-directory-sep-char ecb-directory-sep-string default-directory] 9 (#$ . 110418)]) #@36 Returns the source name of a file. (defalias 'ecb-get-source-name #[(filename) "\303!\n\203\f \202\304 !)\207" [filename f ecb-show-source-file-extension file-name-nondirectory file-name-sans-extension] 2 (#$ . 112704)]) #@104 Return not nil if FILENAME is already displayed in a buffer and if semantic is active for this buffer. (defalias 'ecb-semantic-active-for-file #[(filename) "\301!\205\212\301!q\210\302 )\207" [filename get-file-buffer semantic-active-p] 2 (#$ . 112937)]) #@222 Updates the directories, sources and history buffers to match the filename given. If FORCE is not nil then the update of the directories buffer is done even if current directory is equal to `ecb-path-selected-directory'. (defalias 'ecb-select-source-file #[(filename &optional force) "\306 \307\216\310\311 !\n\"\210 \312 \203 \313\216\314\f!\203\315 !\210)\313\216\314 !\203,\315 !\210)\316 !\210\317 \210\320 !*\207" [save-selected-window-window filename force ecb-path-selected-source ecb-directories-buffer-name ecb-sources-buffer-name selected-window ((byte-code "\301!\203\n\302!\210\301\207" [save-selected-window-window window-live-p select-window] 2)) ecb-set-selected-directory file-name-directory ecb-show-sources-in-directories-buffer-p nil ecb-window-select tree-buffer-highlight-node-data ecb-add-item-to-history-buffer ecb-sort-history-buffer ecb-update-history-window] 3 (#$ . 113203)]) #@52 Add a new item for FILENAME to the history buffer. (defalias 'ecb-add-item-to-history-buffer #[(filename) "\212\304!\210\305\306 \"\210\307\306 \310\n\311=\203*\312 !\211\203#\311 !\202&\313 !)\202-\313 !\314 \315$\")\207" [ecb-history-buffer-name filename ecb-history-item-name b ecb-buffer-select tree-node-remove-child-data tree-buffer-get-root tree-node-add-child-first tree-node-new buffer-name get-file-buffer ecb-get-source-name 0 t] 8 (#$ . 114121)]) #@64 Sort the history buffer according to `ecb-sort-history-items'. (defalias 'ecb-sort-history-buffer #[nil "\205\212\302 !\210\303\304 \305\")\207" [ecb-sort-history-items ecb-history-buffer-name ecb-buffer-select tree-node-sort-children tree-buffer-get-root #[(l r) "\302!\302 !\231\207" [l r tree-node-get-name] 3]] 3 (#$ . 114593)]) #@75 Updates the history window and highlights the item for FILENAME if given. (defalias 'ecb-update-history-window #[(&optional filename) "\303 \304\216\305\216\306 !\205\307 \210\310\n!+\207" [save-selected-window-window ecb-history-buffer-name filename selected-window ((byte-code "\301!\203\n\302!\210\301\207" [save-selected-window-window window-live-p select-window] 2)) nil ecb-window-select tree-buffer-update tree-buffer-highlight-node-data] 2 (#$ . 114936)]) #@267 Add all current file-buffers to the history-buffer of ECB. If `ecb-sort-history-items' is not nil then afterwards the history is sorted alphabetically. Otherwise the most recently used buffers are on the top of the history and the seldom used buffers at the bottom. (defalias 'ecb-add-all-buffers-to-history #[nil "\302!\203\303\304 \210)\305\306\307\310 !\"\210\311 \210\312\313p!!\207" [ecb-history-buffer-name ecb-clear-history-behavior ecb-window-live-p not-existing-buffers ecb-clear-history mapc #[(buffer) "\301!\205 \302\301!!\207" [buffer buffer-file-name ecb-add-item-to-history-buffer] 3] reverse buffer-list ecb-sort-history-buffer ecb-update-history-window buffer-file-name] 4 (#$ . 115413) nil]) #@101 Updates the methods-buffer after saving if this option is turned on and if current-buffer is saved. (defalias 'ecb-update-methods-after-saving #[nil "\304 \232\205 \205\n\205p\305\n!\232\205\306 !\210\307 \207" [ecb-frame ecb-auto-update-methods-after-save ecb-last-edit-window-with-point ecb-path-selected-source selected-frame window-buffer ecb-select-source-file ecb-rebuild-methods-buffer] 3 (#$ . 116137)]) (byte-code "\301B\302\301!\204\f\303\301\207" [current-load-list ecb-method-buffer-needs-rebuild boundp t] 2) #@702 Updates the methods buffer with the current buffer. The only thing what must be done is to start the toplevel parsing of semantic, because the rest is done by `ecb-rebuild-methods-buffer-with-tokencache' because this function is in the `semantic-after-toplevel-cache-change-hook'. If optional argument SCROLL-TO-TOP is non nil then the method-buffer is displayed with window-start and point at beginning of buffer. If second optional argument REBUILD-NON-SEMANTIC is not nil then non-semantic sources are forced to be rescanned and reparsed by `ecb-rebuild-methods-buffer-with-tokencache'. The function `ecb-rebuild-methods-buffer-for-non-semantic' is the only one settings this argument to not nil! (defalias 'ecb-update-methods-buffer--internal #[(&optional scroll-to-top rebuild-non-semantic) "\306 \232\205I\307 !\205I\310\311 \205#\212\214\312\216\313 !\210~\210)\314\310!*\n\2030\315\f\311 \316 $\210)\205I\317 \320\216\316\216\321 !\205H\322ee\"+\207" [ecb-frame ecb-methods-buffer-name ecb-method-buffer-needs-rebuild ecb-basic-adviced-functions current-tokencache rebuild-non-semantic selected-frame get-buffer-window t semantic-active-p ((ecb-enable-advices ecb-basic-adviced-functions)) ecb-disable-advices semantic-bovinate-toplevel ecb-rebuild-methods-buffer-with-tokencache nil selected-window ((byte-code "\301!\203\n\302!\210\301\207" [save-selected-window-window window-live-p select-window] 2)) ecb-window-select tree-buffer-scroll scroll-to-top save-selected-window-window] 5 (#$ . 116679)]) #@253 This is the token-tree-cache for already opened file-buffers. The cache is a list of cons-cells where the car is the name of the source and the cdr is the current token-tree for this source. The cache contains exactly one element for a certain source. (defvar ecb-token-tree-cache nil (#$ . 118214)) (byte-code "\301\301\207" [ecb-token-tree-cache nil] 1) #@136 Clears wither the whole token-tree-cache (SOURCE-FILE-NAME is nil) or removes only the token-tree for SOURCE-FILE-NAME from the cache. (defalias 'ecb-clear-token-tree-cache #[(&optional source-file-name) "\204\302\211\207\303\301\"\211\207" [source-file-name ecb-token-tree-cache nil adelete] 3 (#$ . 118578)]) #@954 Rebuilds the ECB-method buffer after toplevel-parsing by semantic. This function is added to the hook `semantic-after-toplevel-cache-change-hook'. If NO-UPDATE-SEMANTIC is not nil then the tokens of the ECB-methods-buffer are not updated with UPDATED-CACHE but the method-buffer is rebuild with these tokens ECB has already cached in it `ecb-token-tree-cache'. Only relevant for semantic-parsed sources! If FORCE-NIL-CACHE is not nil then the method-buffer is even rebuild if UPDATED-CACHE is nil. Normally a nil cache is ignored if it belongs to a buffer witch is setup for semantic-parsing; only nil caches for non-semantic buffers (like plain text-buffers) are used for updating the method-buffers. With FORCE-NIL-CACHE the method-buffer is updated with a nil cache too, i.e. it is cleared. IF NON-SEMANTIC-REBUILD is not nil then current non-semantic-source is forced to be rescanned/reparsed and therefore the Method-buffer will be rebuild too. (defalias 'ecb-rebuild-methods-buffer-with-tokencache #[(updated-cache &optional no-update-semantic force-nil-cache non-semantic-rebuild) "\205\306 \232\205\307\n!\205\310p!\205 \204$\311 \203$\f\205\311 \204+\312\313\310p!!\314\"\312 \312!\"\203c \312#\211$\203b$@#\315#!\210$A\211$\204O*%\203\221 \204\221\311 \204\221\310p!\203\221&\204\201\204\221\316\317\320\217\211\203\216\321\202\217\322! \203\232\204\347\311 \204\250!\204\250\f\203\347\323\324\325\312# !\203\304!\321\232\203\314\326 \"\210\202\314\327 \330 !\"\210\203\332 \241\210\202\347 B\211B\212\331\n!\210\332A!\210A'()\333 \210-\334 \210\312\211*\207" [ecb-minor-mode ecb-frame ecb-methods-buffer-name updated-cache force-nil-cache no-update-semantic selected-frame get-buffer-window buffer-file-name semantic-active-p nil ecb-fix-filename assoc ecb-semantic-assert-valid-token #1=#:G47367 (ecb-get-tags-for-non-semantic-files) ((error)) parsed parsed-failed tree-node-new "root" 0 ecb-create-non-semantic-tree ecb-add-tokens ecb-post-process-tokenlist ecb-buffer-select tree-buffer-set-root tree-buffer-update ecb-mode-line-format norm-buffer-file-name ecb-token-tree-cache cached-tree new-tree non-semantic-handling ecb-debug-mode tok #2=#:--dolist-temp--47366 ecb-process-non-semantic-files non-semantic-rebuild ecb-methods-root-node ecb-tree-indent tree-buffer-indent ecb-method-buffer-needs-rebuild] 5 (#$ . 118902)]) (defalias 'ecb-save-without-auto-update-methods #[nil "\301\302 )\207" [ecb-auto-update-methods-after-save nil save-buffer] 1]) #@741 Rebuild the ECB-method-buffer for current source-file of the edit-window. This function does nothing if point stays not in an edit-window of the ECB-frame or if current source-file is supported by semantic! Before rebuilding the Methods-buffer the hook `ecb-rebuild-non-semantic-methods-before-hook' is called. The Method-buffer is only rebuild if either the hook contains no function (the default) or if no function of this hook returns nil! See `run-hook-with-args-until-failure' for description how these function are pressed. The option `ecb-auto-save-before-etags-methods-rebuild' is checked before rescanning the source-buffer and rebuilding the methods-buffer. This function is called by the command `ecb-rebuild-methods-buffer'. (defalias 'ecb-rebuild-methods-buffer-for-non-semantic #[nil "\205G\306 \232\205G\307 ?\205G\n \235?\205G\310 \205G\311\312\313 \"\205G\314 \203C\315\304!\2034\f\204C \316\232\204@\n \235\203C\317 \210\320\321\316\"\207" [ecb-minor-mode ecb-frame major-mode ecb-non-semantic-exclude-modes imenu--index-alist ecb-auto-save-before-etags-methods-rebuild selected-frame semantic-active-p ecb-point-in-edit-window run-hook-with-args-until-failure ecb-rebuild-non-semantic-methods-before-hook buffer-file-name buffer-modified-p boundp t ecb-save-without-auto-update-methods ecb-update-methods-buffer--internal nil] 3 (#$ . 121474)]) #@212 Rebuild the ECB-method-buffer for current source-file of the edit-window. This function does nothing if point stays not in an edit-window of the ECB-frame or if current source-file is not supported by semantic! (defalias 'ecb-rebuild-methods-buffer-for-semantic #[nil "\205\302 \232\205\303 \205\304 \205\305 \210\306 \207" [ecb-minor-mode ecb-frame selected-frame semantic-active-p ecb-point-in-edit-window semantic-clear-toplevel-cache ecb-update-methods-buffer--internal] 2 (#$ . 122861)]) #@1291 Updates the methods buffer with the current source-buffer. The complete previous parser-information is deleted before, means no semantic-cache is used! Point must stay in an edit-window otherwise nothing is done. This method is merely needed for semantic parsed buffers if semantic parses not the whole buffer because it reaches a not parse-able code or for buffers not supported by semantic but by imenu or etags. Examples when a call to this function can be necessary: + If an elisp-file is parsed which contains in the middle a defun X where the closing ) is missing then semantic parses only until this defun X is reached and you will get an incomplete ECB-method buffer. In such a case you must complete the defun X and then call this function to completely reparse the elisp-file and rebuild the ECB method buffer! + For not semantic supported buffers which can be parsed by imenu or etags (see `ecb-process-non-semantic-files') because for these buffers there is no built-in auto-rebuild mechanism. For these buffers this command calls `ecb-rebuild-methods-buffer-for-non-semantic'. For non-semantic-sources supported by etags the option `ecb-auto-save-before-etags-methods-rebuild' is checked before rescanning the source-buffer and rebuilding the methods-buffer. (defalias 'ecb-rebuild-methods-buffer #[nil "\300 \203\301 \207\302 \207" [semantic-active-p ecb-rebuild-methods-buffer-for-semantic ecb-rebuild-methods-buffer-for-non-semantic] 1 (#$ . 123372) nil]) #@302 Updates all the ECB buffers and loads the file. The file is also displayed unless NO-EDIT-BUFFER-SELECTION is set to non nil. In such case the file is only loaded invisible in the background, all semantic-parsing and ECB-Buffer-updating is done but the content of the main-edit window is not changed. (defalias 'ecb-set-selected-source #[(filename other-edit-window no-edit-buffer-selection) "\306!\210 \203\212\307!q\210\310\311!)\207\312\n \"\210\310\311!\210\f\313\314!\207" [filename no-edit-buffer-selection ecb-path-selected-source other-edit-window major-mode ecb-major-mode-selected-source ecb-select-source-file find-file-noselect ecb-update-methods-buffer--internal scroll-to-begin ecb-find-file-and-display ecb-token-sync force] 3 (#$ . 124871)]) (defalias 'ecb-remove-from-current-tree-buffer #[(node) "\205 \301\302 \"\207" [node tree-node-remove-child tree-buffer-get-root] 3]) #@351 Function added to the `kill-buffer-hook' during ECB activation. It does several tasks: - Depending on the value in `ecb-kill-buffer-clears-history' the corresponding entry in the history-buffer is removed. - Clearing the method buffer if a file-buffer has been killed. - The entry of the removed file-buffer is removed from `ecb-token-tree-cache'. (defalias 'ecb-kill-buffer-hook #[nil "p\306\307!!\n\203= \205!\310 \311\216\312\216\313\f!\205 \314 !+\211\203<\n\315\232\2048\n\316\232\203<\317\320!\203<\321 !\210) \203G\322\312\211\323#\210 \203O\324 !\210\325 \235\205Y\326\327!*\207" [curr-buf buffer-file ecb-kill-buffer-clears-history save-selected-window-window ecb-history-buffer-name node ecb-fix-filename buffer-file-name selected-window ((byte-code "\301!\203\n\302!\210\301\207" [save-selected-window-window window-live-p select-window] 2)) nil ecb-window-select tree-buffer-find-node-data auto ask y-or-n-p "Remove history entry for this buffer? " ecb-clear-history-node ecb-rebuild-methods-buffer-with-tokencache t ecb-clear-token-tree-cache ecb-get-current-visible-ecb-buffers ecb-error "Killing an special ECB-buffer is not possible!"] 5 (#$ . 125778)]) #@268 Clears the ECB history-buffer. If CLEARALL is nil then the behavior is defined in the option `ecb-clear-history-behavior' otherwise the user is prompted what buffers should be cleared from the history-buffer. For further explanation see `ecb-clear-history-behavior'. (defalias 'ecb-clear-history #[(&optional clearall) "?\206\n\306 \232??\205\204\307 \310\216\311\216\312 !\205\203\313\314\315 \"\316\317 !\f\2031\320\321\322\323\"!\2062 \311\203{\324@!\325=\204l\326=\203]\235\203l\327=\203r\235\203r\330@!\210A\211\204@,\331 \210\332!+\207" [ecb-minor-mode ecb-frame save-selected-window-window ecb-history-buffer-name clearall ecb-clear-history-behavior selected-frame selected-window ((byte-code "\301!\203\n\302!\210\301\207" [save-selected-window-window window-live-p select-window] 2)) nil ecb-window-select mapcar #[(buff) "\301!\207" [buff buffer-file-name] 2] buffer-list tree-node-get-children tree-buffer-get-root intern ecb-query-string "Clear from history:" ("all" "not-existing-buffers" "existing-buffers") tree-node-get-data all not-existing-buffers existing-buffers ecb-remove-from-current-tree-buffer tree-buffer-update tree-buffer-highlight-node-data child-data clear-behavior tree-childs buffer-file-name-list ecb-path-selected-source] 7 (#$ . 126976) "P"]) (byte-code "\301B\302\301!\204\f\303\301\207" [current-load-list ecb-auto-expand-token-tree-old boundp expand-spec] 2) #@296 Toggle auto expanding of the ECB-methods-buffer. With prefix argument ARG, switch on if positive, otherwise switch off. If the effect is that auto-expanding is switched off then the current value of `ecb-auto-expand-token-tree' is saved so it can be used for the next switch on by this command. (defalias 'ecb-toggle-auto-expand-token-tree #[(&optional arg) "\204 \203 \304\202)\n\202)\305!\306X\203$ \203 \304\202) \206)\n\211\307\310 \2036\311\2027\312 #)\207" [arg ecb-auto-expand-token-tree ecb-auto-expand-token-tree-old new-value nil prefix-numeric-value 0 message "Auto. expanding of the methods-buffer is switched %s (Value: %s)." "on" "off"] 5 (#$ . 128439) "P"]) (defalias 'ecb-token-sync #[(&optional force) "\205a\306 \205a \205a\307  \204\f\n\232?\205`\n\310 \311\216\312\216\313!\205_\314\n\312 \315\232#\206_\n\205_\205_\316\232\204P\nA@\317!\235\205_\320\321\316\232\"\210\314\n\312 \315\232#+)\207" [ecb-minor-mode ecb-highlight-token-with-point tok force ecb-selected-token save-selected-window-window ecb-point-in-edit-window ecb-semantic-current-nonterminal selected-window ((byte-code "\301!\203\n\302!\210\301\207" [save-selected-window-window window-live-p select-window] 2)) nil ecb-window-select tree-buffer-highlight-node-data highlight all ecb-normalize-expand-spec ecb-expand-methods-nodes-internal 100 ecb-methods-buffer-name ecb-auto-expand-token-tree ecb-methods-nodes-expand-spec] 5]) #@209 Return not nil if current buffer was extracted of an archive which is in `tar-mode' or `archive-mode'. For this the current buffer has either to be in minor-mode `tar-subfile-mode' or `archive-subfile-mode'. (defalias 'ecb-current-buffer-archive-extract-p #[nil "\302\300!\203\n\206\302\301!\205 \207" [tar-subfile-mode archive-subfile-mode boundp] 2 (#$ . 129911)]) #@291 Checks if a buffer or a file is a readable file in the sense of ECB which means either a real physical file or an auto-extracted file from an archive. See `ecb-current-buffer-archive-extract-p'. FILENAME is either a filename or nil whereas in the latter case the current-buffer is assumed. (defalias 'ecb-buffer-or-file-readable-p #[(&optional filename) "\206\303p!\211\203\304 !\206)\n?\205)\203'\212\305!q\210\306 )\202)\306 )\207" [filename file ecb-running-xemacs buffer-file-name file-readable-p find-file-noselect ecb-current-buffer-archive-extract-p] 3 (#$ . 130291)]) #@691 Synchronizes all special ECB-buffers with current buffer. Depending on the contents of current buffer this function performs different synchronizing tasks but only if ECB is active and point stays in an edit-window. If this is true under the following additional conditions some tasks are performed: - Current buffer is a file-buffer and either FORCE is not nil or the buffer is different from the source-file currently displayed in the ECB-tree-buffers: Synchronizing all tree-buffers with the current buffer - Current buffer is a dired-buffer: Synchronizing the directory- and sources-tree-buffer if visible - Always: Running the hooks in `ecb-current-buffer-sync-hook'. (defalias 'ecb-current-buffer-sync #[(&optional force) "\205 ?\205\302 \205\303\304\305\217\210\306\307!\207" [ecb-minor-mode ecb-windows-hidden ecb-point-in-edit-window #1=#:G47368 (byte-code "\306p!\211\203]\307 \203] \204\n\230\204]\310!\204I\311!\f@\203< \312H\313U\2035 \312\314O\202? \312\315O\202?\316 !\317 \211\fA?#\210*\320 \"\210\321\322!\210\323\301!\210\202\202\324=\203\202\325;\203w\326!\203w\206\200<\205\200@!\210)\306\207" [filename force ecb-path-selected-source norm-filename ecb-add-path-for-not-matching-files source-path buffer-file-name ecb-buffer-or-file-readable-p ecb-path-matching-any-source-path-p ecb-fix-filename 0 47 1 2 file-name-directory ecb-add-source-path ecb-select-source-file ecb-update-methods-buffer--internal scroll-to-begin ecb-token-sync dired-mode ecb-set-selected-directory file-exists-p major-mode ecb-major-mode-selected-source dired-directory] 5) ((error)) run-hooks ecb-current-buffer-sync-hook] 3 (#$ . 130886)]) (defalias 'ecb-window-sync-function #[nil "\205\302\232\204 \235?\205\303 \207" [ecb-window-sync major-mode always ecb-current-buffer-sync] 2]) #@515 Synchronizes all special ECB-buffers with current buffer. Depending on the contents of current buffer this command performs different synchronizing tasks but only if ECB is active and point stays in an edit-window. - If current buffer is a file-buffer then all special ECB-tree-buffers are synchronized with current buffer. - If current buffer is a dired-buffer then the directory- and the sources-tree-buffer are synchronized if visible In addition to this the hooks in `ecb-current-buffer-sync-hook' run. (defalias 'ecb-window-sync #[nil "\300\301!\207" [ecb-current-buffer-sync t] 2 (#$ . 132747) nil]) (byte-code "\301B\302\301!\204\f\303\301\207" [current-load-list ecb-window-sync-old boundp (Info-mode dired-mode)] 2) #@336 Toggle auto synchronizing of the ECB-windows. With prefix argument ARG, switch on if positive, otherwise switch off. If the effect is that auto-synchronizing is switched off then the current value of the option `ecb-window-sync' is saved so it can be used for the next switch on by this command. See also the option `ecb-window-sync'. (defalias 'ecb-toggle-window-sync #[(&optional arg) "\204 \203 \304\202)\n\202)\305!\306X\203$ \203 \304\202) \206)\n\211\307\310 \2036\311\2027\312 #)\207" [arg ecb-window-sync ecb-window-sync-old new-value nil prefix-numeric-value 0 message "Automatic synchronizing the ECB-windows is %s (Value: %s)." "on" "off"] 5 (#$ . 133490) "P"]) (defalias 'ecb-get-edit-window #[(other-edit-window) "\306 \307\216 \310=\203\311\n!\210\202\311 !\210\312\216\313\f!\210 \203(\314\315\316!\210))\306 *\207" [save-selected-window-window ecb-primary-mouse-jump-destination ecb-edit-window ecb-last-edit-window-with-point ecb-adviceable-functions other-edit-window selected-window ((byte-code "\301!\203\n\302!\210\301\207" [save-selected-window-window window-live-p select-window] 2)) left-top select-window ((ecb-activate-adviced-functions ecb-advice-window-functions)) ecb-activate-adviced-functions only-edit other-window 1 ecb-other-window-jump-behavior] 2]) #@165 Finds the file in the correct window. What the correct window is depends on the setting in `ecb-primary-mouse-jump-destination' and the value of OTHER-EDIT-WINDOW. (defalias 'ecb-find-file-and-display #[(filename other-edit-window) "\302\303!!\210\304 \210\305\216\306\307!\210\310 !\210)\311\312 !\207" [other-edit-window filename select-window ecb-get-edit-window ecb-nav-save-current ((ecb-activate-adviced-functions ecb-advice-window-functions)) ecb-activate-adviced-functions nil find-file ecb-nav-add-item ecb-nav-file-history-item-new] 3 (#$ . 134812)]) #@51 For every file in FILES add a child-node to NODE. (defalias 'ecb-tree-node-add-files #[(node path files type include-extension old-children &optional not-expandable) "\306\211\203?\n@\307 \"\310 \311 \203 \202!\312 !\f\206-\313U\2053\314&\"\210)\nA\211\204*\306\207" [files file #1=#:--dolist-temp--47369 path filename node nil ecb-fix-filename tree-node-add-child ecb-new-child file-name-sans-extension 1 end old-children include-extension type not-expandable ecb-truncate-long-names] 10 (#$ . 135380)]) #@62 Updates the directory node NODE and add all subnodes if any. (defalias 'ecb-update-directory-node #[(node) "\305!\306!\307\310\"\210\311 !\205:\312 !\313 A\314\315\n&\210\316 \2033\313 @\317\f\n\315&\210\320\305!\")*\207" [node path old-children files-and-dirs ecb-show-source-file-extension tree-node-get-children tree-node-get-data tree-node-set-children nil file-accessible-directory-p ecb-get-files-and-subdirs ecb-tree-node-add-files 0 t ecb-show-sources-in-directories-buffer-p 1 tree-node-set-expandable] 8 (#$ . 135918)]) #@71 Return a list of paths found by querying `ecb-source-path-functions'. (defalias 'ecb-get-source-paths-from-functions #[nil "\304\211\211\203\305\n@ \" A\211\204\n\n\203*\306\n@! B\nA\211\204 +\207" [ecb-source-path-functions rpaths paths func nil append expand-file-name] 4 (#$ . 136470)]) (defalias 'ecb-path-matching-any-source-path-p #[(path) "\302\303 \"\304\305\215)\207" [ecb-source-path source-paths append ecb-get-source-paths-from-functions exit (byte-code "\306\211\203:\n@\307 <\203 @\202 \306\310#\311 \312\216\313\314 !\307\315 !!\"\2032\316\317 \"\210+\nA\211\204*\306\207" [source-paths dir #1=#:--dolist-temp--47370 norm-dir save-match-data-internal path nil ecb-fix-filename t match-data ((set-match-data save-match-data-internal)) string-match regexp-quote file-name-directory throw exit] 6)] 3]) #@37 Updates the ECB directories buffer. (defalias 'ecb-update-directories-buffer #[nil "?\206\n\306 \232??\205\226\307 \310\216\311\216\312 !\205\225\f\313 \314!\315\316 \"\317\311\"\210\311\211\203\221@\211<\203P@\202R\320\311\321#<\203m\211A@)\202o \322\323 \324\311!\205\203\325&\"\210+A\211\204@*\326 ++\207" [ecb-minor-mode ecb-frame save-selected-window-window ecb-directories-buffer-name ecb-tree-indent tree-buffer-indent selected-frame selected-window ((byte-code "\301!\203\n\302!\210\301\207" [save-selected-window-window window-live-p select-window] 2)) nil ecb-window-select tree-buffer-get-root tree-node-get-children append ecb-get-source-paths-from-functions tree-node-set-children ecb-fix-filename t tree-node-add-child ecb-new-child 2 beginning tree-buffer-update node old-children ecb-source-path paths dir #1=#:--dolist-temp--47371 path norm-dir x name ecb-truncate-long-names] 10 (#$ . 137323) nil]) #@243 Return a node with type = TYPE, data = DATA and name = NAME. Tries to find a node with matching TYPE and DATA in OLD-CHILDREN. If found no new node is created but only the fields of this node will be updated. Otherwise a new node is created. (defalias 'ecb-new-child #[(old-children name type data &optional not-expandable shorten-name) "\300\301\215\207" [exit (byte-code "\306\211\2036\n@\307 ! \232\203/\310 !\fU\203/\311 \"\210\203*\312 \306\"\210\313\314 \"\210\nA\211\204*\315 \f \306\205D\316&\317\"\210)\207" [old-children child #1=#:--dolist-temp--47372 data type name nil tree-node-get-data tree-node-get-type tree-node-set-name tree-node-set-expandable throw exit tree-node-new end tree-node-set-shorten-name not-expandable ecb-truncate-long-names node shorten-name] 7)] 2 (#$ . 138318)]) #@43 Add a directory to the `ecb-source-path'. (defalias 'ecb-add-source-path #[(&optional dir alias no-prompt-for-future-session) "\306\307 \206\f\310\311\312!!\313\" \206\314\315\316\n\"!\317 \fG\320V\203)\n\fD\202*\nC\"\321 \210\204B\322\323!\203B\324\305 \"\202F\325\305 \"+\207" [use-dialog-box dir my-dir alias my-alias ecb-source-path nil ecb-fix-filename file-name-directory read-file-name "Add source path: " t read-string format "Alias for \"%s\" (empty = no alias): " append 0 ecb-update-directories-buffer y-or-n-p "Add the new source-path also for future-sessions? " customize-save-variable customize-set-variable no-prompt-for-future-session] 4 (#$ . 139152) nil]) (defalias 'ecb-add-source-path-node #[(node) "\300\301!\207" [call-interactively ecb-add-source-path] 2]) (defalias 'ecb-node-to-source-path #[(node) "\301\302!!\207" [node ecb-add-source-path tree-node-get-data] 3]) (defalias 'ecb-delete-s #[(child children sources) "\205 @=\203\nA\207\n@\303 A\nA#B\207" [children child sources ecb-delete-s] 5]) (defalias 'ecb-delete-source-path #[(node) "\303!\304\305 \306Q!\205+\307\310\311!!\n#\312 \210\313\314!\203'\315\302\n\"\202+\316\302\n\")\207" [node path ecb-source-path tree-node-get-data ecb-confirm "Really delete source-path " "?" ecb-delete-s tree-node-get-children tree-node-get-parent ecb-update-directories-buffer y-or-n-p "Delete source-path also for future-sessions? " customize-save-variable customize-set-variable] 5]) #@58 Open a customize-buffer for all customize-groups of ECB. (defalias 'ecb-customize #[nil "\300 \210\301\302!\207" [ecb-select-edit-window customize-group "ecb"] 2 (#$ . 140643) nil]) #@201 This is the callback-function ecb.el gives to every tree-buffer to call when a node has been selected. This function does nothing if the click combination is invalid (see `ecb-interpret-mouse-click'. (defalias 'ecb-tree-buffer-node-select-callback #[(node mouse-button shift-pressed control-pressed tree-buffer-name) "\306 \n $\211@\f\211A@)\307\f\203_ \230\203,\310 #\210\202_ \230\203>\311 #\210\202_ \230\203P\312 #\210\202_ \230\203_\313 #\210\314\232\205 \235?\205 \230\203y\315 \205\316 !\210\317 +\207" [mouse-button shift-pressed control-pressed tree-buffer-name ecb-button-list ecb-button ecb-interpret-mouse-click t ecb-directory-clicked ecb-source-clicked ecb-history-clicked ecb-method-clicked 0 ecb-show-sources-in-directories-buffer-p ecb-goto-window tree-buffer-remove-highlight x shift-mode ecb-item-in-tree-buffer-selected ecb-directories-buffer-name node ecb-sources-buffer-name ecb-history-buffer-name ecb-methods-buffer-name ecb-tree-RET-selects-edit-window--internal] 6 (#$ . 140832)]) #@203 This is the callback-function ecb.el gives to every tree-buffer to call when a node should be expanded. This function does nothing if the click combination is invalid (see `ecb-interpret-mouse-click'). (defalias 'ecb-tree-buffer-node-expand-callback #[(node mouse-button shift-pressed control-pressed tree-buffer-name) "\306 \n $\211@\f\211 A@)\f\f\205S  \230\203%\307!\202S \230\2036\310 \f#\202S \230\203G\311 \f#\202S \230\203R\312\202S\312+\207" [mouse-button shift-pressed control-pressed tree-buffer-name ecb-button-list ecb-button ecb-interpret-mouse-click ecb-update-directory-node ecb-source-clicked ecb-history-clicked nil x shift-mode ecb-directories-buffer-name node ecb-sources-buffer-name ecb-history-buffer-name ecb-methods-buffer-name] 6 (#$ . 141899)]) #@702 Converts the physically pressed MOUSE-BUTTON (1 = mouse-1, 2 = mouse-2, 0 = no mouse-button but RET or TAB) to ECB-mouse-buttons: either primary or secondary mouse-button depending on the value of CONTROL-PRESSED and the setting in `ecb-primary-secondary-mouse-buttons'. Returns a list '(ECB-button shift-mode) where ECB-button is either 1 (= primary) or 2 (= secondary) and shift-mode is non nil if SHIFT-PRESSED is non nil. For an invalid and not accepted click combination nil is returned. Note: If MOUSE-BUTTON is 0 (means no mouse-button but a key like RET or TAB was hitted) then CONTROL-PRESSED is interpreted as ECB-button 2. Currently the fourth argument TREE-BUFFER-NAME is not used here. (defalias 'ecb-interpret-mouse-click #[(mouse-button shift-pressed control-pressed tree-buffer-name) "\304=\203 \203\305\202\306\nD\207\306=?\205\305=??\205a \307=\2030 ?\205a\nD\207 \310=\203H\306=\205a \203D\305\202E\306\nD\207 \311=\203`\305=\205a \203\\\305\202]\306\nD\207\312\207" [mouse-button control-pressed shift-pressed ecb-primary-secondary-mouse-buttons 0 2 1 mouse-1--mouse-2 mouse-1--C-mouse-1 mouse-2--C-mouse-2 nil] 2 (#$ . 142705)]) (defalias 'ecb-remove-dir-from-caches #[(dir) "\301!\210\302!\207" [dir ecb-files-and-subdirs-cache-remove ecb-sources-cache-remove] 2]) #@46 Update the integrated speedbar if necessary. (defalias 'ecb-directory-update-speedbar #[(dir) "\306 \2053\307\232\2041\310\232\203\311 \n\"\204 \f\235\2031\310\232?\2053\312!\2053 !\2053\313 \207" [ecb-directories-update-speedbar ecb-sources-buffer-name ecb-frame ecb-layout-name ecb-show-sources-in-directories-buffer dir ecb-speedbar-active-p t auto get-buffer-window functionp ecb-speedbar-update-contents] 3 (#$ . 144027)]) (defalias 'ecb-directory-clicked #[(node ecb-button shift-mode) "\304!\305U\203 \306! \207\307!\210 \203\310\311\211\312$\210\304!\313U\204,\304!\314U\203]\n\314U\2039\315!\210\202P \203C\316\306!!\210\317\306! \"\210\320\306!!\210\311\216\321 !\205[\322!)\207\323\306!\324 \205i\n\314= #\207" [node shift-mode ecb-button ecb-directories-buffer-name tree-node-get-type 3 tree-node-get-data ecb-update-directory-node ecb-mouse-over-directory-node nil force 0 2 tree-node-toggle-expanded ecb-remove-dir-from-caches ecb-set-selected-directory ecb-directory-update-speedbar ecb-window-select tree-buffer-update ecb-set-selected-source ecb-edit-window-splitted] 5]) (defalias 'ecb-source-clicked #[(node ecb-button shift-mode) "\203 \303 \304\211\305$\210\306\307 !\310 \205\n\311=#\207" [shift-mode node ecb-button ecb-mouse-over-source-node nil force ecb-set-selected-source tree-node-get-data ecb-edit-window-splitted 2] 5]) (defalias 'ecb-history-clicked #[(node ecb-button shift-mode) "\203 \303 \304\211\305$\210\306\307 !\310 \205\n\311=#\207" [shift-mode node ecb-button ecb-mouse-over-history-node nil force ecb-set-selected-source tree-node-get-data ecb-edit-window-splitted 2] 5]) (defalias 'ecb-string-make-singular #[(string) "\211GSH\301\232\203\302GSO\207\207" [string 115 0] 3]) (defalias 'ecb-methods-node-get-semantic-type #[(node symbol->name-assoc-list) "\305!\306U\203@\307 \310\216\311\312\n@!\313\312\nA@!Q\314!\"\205&\315\306\314!\"*\211;\205>\316\317\320\321\f\"\"@\206>\322\323 !\227!)\207\305!\324U\203M\325\326\327\217\207\317\207" [node save-match-data-internal ecb-bucket-token-display bucket-name symbol->name-assoc-list tree-node-get-type 1 match-data ((set-match-data save-match-data-internal)) string-match regexp-quote "\\(.+\\)" tree-node-get-name match-string delete nil mapcar #[(elem) "A \230\205 @\207" [elem bucket-name] 2] intern ecb-string-make-singular 0 #1=#:G47373 (byte-code "\301!A@\207" [node tree-node-get-data] 2) ((error))] 6]) #@1442 Set the expand level of the nodes in the ECB-methods-buffer. This command asks in the minibuffer for an indentation level LEVEL. With this LEVEL you can precisely specify which level of nodes should be expanded. LEVEL means the indentation-level of the nodes. A LEVEL value X means that all nodes with an indentation-level <= X are expanded and all other are collapsed. A negative LEVEL value means all visible nodes are collapsed. Nodes which are not indented have indentation-level 0! Which node-types are expanded (rsp. collapsed) by this command depends on the options `ecb-methods-nodes-expand-spec' and `ecb-methods-nodes-collapse-spec'! With optional argument FORCE-ALL all tokens will be expanded/collapsed regardless of the values of these options. Examples: - LEVEL = 0 expands only nodes which have no indentation itself. - LEVEL = 2 expands nodes which are either not indented or indented once or twice - LEVEL ~ 10 should normally expand all nodes unless there are nodes which are indented deeper than 10. Note 1: This command switches off auto. expanding of the method-buffer if `ecb-expand-methods-switch-off-auto-expand' is not nil. But it can be switched on again quickly with `ecb-toggle-auto-expand-token-tree' or [C-c . a]. Note 2: All this is only valid for file-types parsed by semantic. For other file types which are parsed by imenu or etags (see `ecb-process-non-semantic-files') FORCE-ALL is always true! (defalias 'ecb-expand-methods-nodes #[(&optional force-all) "\212eb\210\304 )\305\306\203\307!\203\310!\203\311\202\312\"\n\203)\313\311!\210\314 \315#*\207" [first-node level ecb-expand-methods-switch-off-auto-expand force-all tree-buffer-get-node-at-point ecb-read-number "Expand indentation-level: " tree-node-is-expandable tree-node-is-expanded -1 10 ecb-toggle-auto-expand-token-tree ecb-expand-methods-nodes-internal t] 4 (#$ . 146506) "P"]) #@452 Set the expand level of the nodes in the ECB-methods-buffer. For description of LEVEL and FORCE-ALL see `ecb-expand-methods-nodes'. If RESYNC-TOKEN is not nil then after expanding/collapsing the methods-buffer is resynced to the current token of the edit-window. Note: All this is only valid for file-types parsed by semantic. For other file types which are parsed by imenu or etags (see `ecb-process-non-semantic-files') FORCE-ALL is always true! (defalias 'ecb-expand-methods-nodes-internal #[(level &optional force-all resync-token) "\212\306\307\310\217)\206\n\311 \312\216\313\216\314 !\203;\315\f!\315 !\316?\205,\317?\2053\320#\210\321ee\"\210*+\205D\322\323!)\207" [semantic-symbol->name-assoc-list symbol->name-assoc-list save-selected-window-window ecb-methods-buffer-name ecb-methods-nodes-expand-spec ecb-methods-nodes-collapse-spec #1=#:G47374 (byte-code "\303!q\210\304 ?\n\207" [ecb-path-selected-source force-all semantic-symbol->name-assoc-list get-file-buffer semantic-active-p] 2) ((error)) selected-window ((byte-code "\301!\203\n\302!\210\301\207" [save-selected-window-window window-live-p select-window] 2)) nil ecb-window-select ecb-normalize-expand-spec tree-buffer-expand-nodes #[(node current-level) "\303\232\206\f\304 \n\"\235\207" [norm-expand-types node symbol->name-assoc-list all ecb-methods-node-get-semantic-type] 3] #[(node current-level) "\303\232\206\f\304 \n\"\235\207" [norm-collapse-types node symbol->name-assoc-list all ecb-methods-node-get-semantic-type] 3] tree-buffer-scroll ecb-token-sync force norm-collapse-types norm-expand-types level force-all resync-token] 4 (#$ . 148417)]) (defalias 'ecb-normalize-expand-spec #[(spec) "\301\232\203\301\207\302\303\"\207" [spec all mapcar #[(elem) "\301\302\303!!\227!\207" [elem intern ecb-string-make-singular symbol-name] 4]] 3]) #@264 Set the expand level of the nodes in the ECB-directories-buffer. For argument LEVEL see `ecb-expand-methods-nodes'. Be aware that for deep structured paths and a lot of source-paths this command can last a long time - depending of machine- and disk-performance. (defalias 'ecb-expand-directory-nodes #[(level) "\303 \304\216\305\216\306 !\203\307\n!\210+\310\311!\207" [save-selected-window-window ecb-directories-buffer-name level selected-window ((byte-code "\301!\203\n\302!\210\301\207" [save-selected-window-window window-live-p select-window] 2)) nil ecb-window-select tree-buffer-expand-nodes ecb-current-buffer-sync force] 2 (#$ . 150285) "nLevel: "]) (defalias 'ecb-method-clicked #[(node ecb-button shift-mode &optional no-post-action additional-post-action-list) "\203 \306 \307\211\310$\210\311 !\312 !\n\307\211!\"\313\"!\210!\314U\203-\"\202~!\315U\203?\316 !\210\317 !\210\202~!\320U\203~\321\n!q\210\322\"!\211\204~\323\324!\203~\325 \203~\326\"!\211#\203}#\211$@A)\327#\211$@@)!)\f\205\336 ?\205\336\330\f!\210\fA@\331=\203\271\321\n!q\210\332\f!\211%\205\265\333%!\205\265\334%\335 \205\264&\320=\")\202\336\336 \f\337\335 \205\306&\320=!'\203\333\340(\235\204\333\340(B\202\335(%-\207" [shift-mode node ecb-path-selected-source found token filename ecb-mouse-over-method-node nil force tree-node-get-data tree-node-get-type tree-buffer-highlight-node-data 0 1 tree-node-toggle-expanded tree-buffer-update 2 get-file-buffer ecb-jde-show-class-source featurep semanticdb semanticdb-minor-mode-p semanticdb-find-nonterminal-by-name semanticdb-full-filename ecb-semantic-assert-valid-token include semantic-find-dependency file-exists-p ecb-find-file-and-display ecb-edit-window-splitted ecb-jump-to-token ecb-get-edit-window ecb-token-visit-narrow-token type data parent x file ecb-button no-post-action additional-post-action-list] 8]) #@290 Go to the real token-name of TOKEN in a somehow smart way. This is especially needed for languages like c++ where a often used style is like: void ClassX::methodM(arg1...) { ... } Here we want to jump to the line "ClassX::..." and not to line "void". Returns point. (defalias 'ecb-token-visit-smart-token-start #[(token) "\303!b\210\304 \210\305\211@)\306 \211G Z8\307\n!\203%\310\n!\202(\n\311H*]\312#\210\313 \210`\207" [token semantic-tfe-overlay o ecb-semantic-token-start beginning-of-line search-forward ecb-line-end-pos semantic-overlay-p semantic-overlay-end 1 t beginning-of-line-text] 6 (#$ . 152205)]) #@132 If TOKEN has an outside documentation located direct before TOKEN then return the start of the documentation. Otherwise return nil (defalias 'ecb-start-of-token-doc #[(token) "\302\303\304\217\211\205;?\205\211A@))\207" [comment semobj #1=#:G47375 (byte-code "\301\302\"\207" [token semantic-find-documentation flex] 3) ((error))] 4 (#$ . 152857)]) #@624 Go to the beginning of the documentation of TOKEN if defined outside. This is useful especially for languages like Java where the documentation resides direct before the TOKEN in Javadoc format. If the documentation is located within TOKEN then nothing is done. If this function is set in `ecb-token-visit-post-actions' then it's strongly recommended to add `ecb-token-visit-recenter' or `ecb-token-visit-recenter-top' at the end too! This action is not recommended for sources of type TeX, texinfo etc. So you should not add this action to the 'default element of `ecb-token-visit-post-actions'! Returns current point. (defalias 'ecb-token-visit-goto-doc-start #[(token) "\302!\211\203 b\210`)\207" [token token-doc-start ecb-start-of-token-doc] 3 (#$ . 153222)]) #@252 If not nil then current buffer is narrowed to a token by ECB. Otherwise the buffer is not narrowed or it is narrowed by ECB but one of the interactive commands `narrow-to-*' or function/commands which use in turn one of these `narrow-to-*'-functions. (defvar ecb-buffer-narrowed-by-ecb nil (#$ . 154001)) (byte-code "\300\301!\210\302\303\304\305\306$\210\302\307\310\305\306$\210\302\311\312\305\306$\210\302\313\314\305\306$\207" [make-variable-buffer-local ecb-buffer-narrowed-by-ecb ad-add-advice narrow-to-region (ecb nil t (advice lambda nil "Set an internal ECB-state. This does not influence the behavior." (setq ecb-buffer-narrowed-by-ecb nil))) before nil narrow-to-defun (ecb nil t (advice lambda nil "Set an internal ECB-state. This does not influence the behavior." (setq ecb-buffer-narrowed-by-ecb nil))) narrow-to-page (ecb nil t (advice lambda nil "Set an internal ECB-state. This does not influence the behavior." (setq ecb-buffer-narrowed-by-ecb nil))) widen (ecb nil t (advice lambda nil "Set an internal ECB-state. This does not influence the behavior." (setq ecb-buffer-narrowed-by-ecb nil)))] 5) #@244 Narrow the source buffer to TOKEN. If an outside located documentation belongs to TOKEN and if this documentation is located direct before TOKEN (e.g. Javadoc in Java) then this documentation is included in the narrow. Returns current point. (defalias 'ecb-token-visit-narrow-token #[(token) "\302!\204\303!\206\304!\305!}\210\306`\207" [token ecb-buffer-narrowed-by-ecb ecb-speedbar-sb-token-p ecb-start-of-token-doc ecb-semantic-token-start ecb-semantic-token-end t] 3 (#$ . 155126)]) #@330 Recenter the source-buffer, so current line is in the middle of the window. If this function is added to `ecb-token-visit-post-actions' then it's recommended to add this function add the end of the action list for 'default or a `major-mode' and not to add the function `ecb-token-visit-recenter-top' too! Returns current point. (defalias 'ecb-token-visit-recenter #[(token) "\300\301 \302\303 \304\245[!\"\210`\207" [set-window-start selected-window ecb-line-beginning-pos window-height 2] 5 (#$ . 155630)]) #@326 Recenter the source-buffer, so current line is in the middle of the window. If this function is added to `ecb-token-visit-post-actions' then it's recommended to add this function add the end of the action list for 'default or a `major-mode' and not to add the function `ecb-token-visit-recenter' too! Returns current point. (defalias 'ecb-token-visit-recenter-top #[(token) "\300\301 \302 \"\207" [set-window-start selected-window ecb-line-beginning-pos] 3 (#$ . 156146)]) (byte-code "\301B\302\301!\204\f\303\303\207" [current-load-list ecb-unhighlight-hook-called boundp nil] 2) (defalias 'ecb-unhighlight-token-header #[nil "\304!\211\305\232\203\n\203 \306\232\204\307 !\210\310\311\312\"\210)\313\211\207" [last-input-event key ecb-unhighlight-hook-called ecb-method-overlay tree-buffer-event-to-key mouse-release mouse-movement delete-overlay remove-hook pre-command-hook ecb-unhighlight-token-header t] 4]) #@104 Highlights line where `ecb-token-visit-smart-token-start' puts point for TOKEN. Returns current point (defalias 'ecb-token-visit-highlight-token-header #[(token) "\212\303!\210\304 \305 \306 p$\210)\307\310\311\312\"\210`\207" [token ecb-method-overlay ecb-unhighlight-hook-called ecb-token-visit-smart-token-start move-overlay ecb-line-beginning-pos ecb-line-end-pos nil add-hook pre-command-hook ecb-unhighlight-token-header] 5 (#$ . 157081)]) #@496 Jump to token TOKEN in buffer FILENAME. If NO-TOKEN-VISIT-POST-ACTIONS is not nil then the functions of `ecb-token-visit-post-actions' are not performed. If ADDITIONAL-POST-ACTION-LIST is a list of function-symbols then these functions are performed after these ones of `ecb-token-visit-post-actions'. So if NO-TOKEN-VISIT-POST-ACTIONS is not nil then only the functions of ADDITIONAL-POST-ACTION-LIST are performed. If ADDITIONAL-POST-ACTION-LIST is nil too then no post-actions are performed. (defalias 'ecb-jump-to-token #[(filename token &optional window no-token-visit-post-actions additional-post-action-list) "\306!\204 \307\310\"\207 \204\311 \312 !\210\313\n!\210\314 \210\315!\210 \203*\316\317\320\"\210~\210\321\n!b\210\f\204x\322\323 \"A\317\211\203U@\211\n!\210A\211\204C*\322 \"A\317\211 \203w @\211\n!\210 A\211 \204e*!\317\211\"\203\225\"@\211\n!\210\"A\211\"\204\203*\324\n!\206\235p#\n\211@)$\325 \n\211G%Z\n8&\326&!\203\301\327&!\202\305&\330H*#\223'\325 \n\211G%Z\n8&\326&!\203\346\331&!\202\352&\332H*#\223(\333\334$#'()%!,\207" [filename window token ecb-token-jump-sets-mark no-token-visit-post-actions ecb-token-visit-post-actions ecb-buffer-or-file-readable-p error "ECB: ecb-jump-to-token: Can not open filename %s." selected-window select-window ecb-semantic-assert-valid-token ecb-nav-save-current find-file push-mark nil t ecb-semantic-token-start assoc default ecb-semantic-token-buffer make-marker semantic-overlay-p semantic-overlay-start 0 semantic-overlay-end 1 ecb-nav-add-item ecb-nav-token-history-item-new f #1=#:--dolist-temp--47376 major-mode #2=#:--dolist-temp--47377 additional-post-action-list #3=#:--dolist-temp--47378 tok-buf tok-name semantic-tfe-overlay o tok-start tok-end ecb-buffer-narrowed-by-ecb] 8 (#$ . 157537)]) #@157 Return not nil if for at least one tree-buffer showing node info only by moving the mouse over a node is activated. See `ecb-show-node-info-in-minibuffer'. (defalias 'ecb-show-any-node-info-by-mouse-moving-p #[nil "\302\303\"\304 \235\206\305 \235)\207" [ecb-show-node-info-in-minibuffer when-list mapcar #[(elem) "@\207" [elem] 1] if-too-long always] 3 (#$ . 159387)]) (defalias 'ecb-show-node-info-index #[(tree-buffer-name) " \230\203\305\207\n\230\203\306\207 \230\203\307\207\f\230\205\310\207" [tree-buffer-name ecb-directories-buffer-name ecb-sources-buffer-name ecb-history-buffer-name ecb-methods-buffer-name 0 1 2 3] 2]) (defalias 'ecb-show-node-info-when #[(tree-buffer-name) "\302! 8@\207" [tree-buffer-name ecb-show-node-info-in-minibuffer ecb-show-node-info-index] 2]) (defalias 'ecb-show-node-info-what #[(tree-buffer-name) "\302! 8A\207" [tree-buffer-name ecb-show-node-info-in-minibuffer ecb-show-node-info-index] 2]) #@64 Return a file-info string for a file in the ECB sources buffer (defalias 'ecb-get-file-info-text #[(file) "\303!\304\305\306 8\307\310 8!\311 8\312 8\313\314\315 8\"\316\n!\317\232\203&\202)\320!&)\207" [file attrs ecb-sources-buffer-name file-attributes format "%s %8s %4d %10d %s %s" 8 user-login-name 2 3 7 format-time-string "%Y/%m/%d %H:%M" 5 ecb-show-node-info-what file-info-full file-name-nondirectory] 10 (#$ . 160347)]) #@165 Checks if in the minibuffer should be displayed any info about the current node in the ECB-window WINDOW for the tree-buffer TREE-BUFFER-NAME only by mouse-moving. (defalias 'ecb-show-minibuffer-info #[(node window tree-buffer-name) "\304!\211\305=\206 \306=\205 \n\205 \307 !G\310 !\\\311\n!Y)\207" [tree-buffer-name when-elem window node ecb-show-node-info-when always if-too-long tree-node-get-name tree-buffer-get-node-indent window-width] 4 (#$ . 160791)]) #@327 Displays help text if mouse moves over a node in the directory buffer or if CLICK-FORCE is not nil and always with regards to the settings in `ecb-show-node-info-in-minibuffer'. NODE is the node for which help text should be displayed, WINDOW is the related window, NO-MESSAGE defines if the help-text should be printed here. (defalias 'ecb-mouse-over-directory-node #[(node &optional window no-message click-force) "\306!\307U\203\310 \n $\207\306!\311U?\205] \204A\312 \f#\204A\313\f!\314\232?\205R\315!\316!\230?\205R\317!\320 =\205R\321\f!\322\232\203O\316!\202R\315!\211\n\204\\\323 !\210)\207" [node window no-message click-force ecb-directories-buffer-name str tree-node-get-type 1 ecb-mouse-over-source-node 3 ecb-show-minibuffer-info ecb-show-node-info-when never tree-node-get-data tree-node-get-name tree-node-get-parent tree-buffer-get-root ecb-show-node-info-what name tree-buffer-nolog-message] 6 (#$ . 161266)]) #@325 Displays help text if mouse moves over a node in the sources buffer or if CLICK-FORCE is not nil and always with regards to the settings in `ecb-show-node-info-in-minibuffer'. NODE is the node for which help text should be displayed, WINDOW is the related window, NO-MESSAGE defines if the help-text should be printed here. (defalias 'ecb-mouse-over-source-node #[(node &optional window no-message click-force) "\302\303\304\217\211 \204\305!\210)\207" [str no-message #1=#:G47379 (byte-code "\204\f\304 \n #\205\305 !\306\232\203\307 !\207\310\311 !!\207" [click-force node window ecb-sources-buffer-name ecb-show-minibuffer-info ecb-show-node-info-what name tree-node-get-name ecb-get-file-info-text tree-node-get-data] 4) ((error)) tree-buffer-nolog-message] 4 (#$ . 162221)]) #@325 Displays help text if mouse moves over a node in the history buffer or if CLICK-FORCE is not nil and always with regards to the settings in `ecb-show-node-info-in-minibuffer'. NODE is the node for which help text should be displayed, WINDOW is the related window, NO-MESSAGE defines if the help-text should be printed here. (defalias 'ecb-mouse-over-history-node #[(node &optional window no-message click-force) "\302\303\304\217\211 \204\305!\210)\207" [str no-message #1=#:G47380 (byte-code "\204\f\304 \n #\205\305 !\306\232\203\307 !\207\310 !\207" [click-force node window ecb-history-buffer-name ecb-show-minibuffer-info ecb-show-node-info-what name tree-node-get-name tree-node-get-data] 4) ((error)) tree-buffer-nolog-message] 4 (#$ . 163018)]) #@324 Displays help text if mouse moves over a node in the method buffer or if CLICK-FORCE is not nil and always with regards to the settings in `ecb-show-node-info-in-minibuffer'. NODE is the node for which help text should be displayed, WINDOW is the related window, NO-MESSAGE defines if the help-text should be printed here. (defalias 'ecb-mouse-over-method-node #[(node &optional window no-message click-force) "\204\f\306 \n #\2053\307 !\310 !\311U\2031\312 !\2031\313 !\314\232\2031\315\316\312 !A@!P\2022\317P\211 \204=\320\f!\210)\207" [click-force node window ecb-methods-buffer-name str no-message ecb-show-minibuffer-info tree-node-get-name tree-node-get-type 0 tree-node-get-data ecb-show-node-info-what name+type ", " symbol-name "" tree-buffer-nolog-message] 6 (#$ . 163788)]) (byte-code "\301B\303\301!\204\f\304\302B\303\302!\204\304\304\207" [current-load-list ecb-idle-timer-alist ecb-post-command-hooks boundp nil] 2) #@232 Adds function FUNC to `ecb-idle-timer-alist' and activates an idle-timer with idle-time IDLE-VALUE if IDLE-VALUE not nil. If nil the FUNC is added to `post-command-hook' and `ecb-post-command-hooks' and removed from the idle-list. (defalias 'ecb-activate-ecb-sync-functions #[(idle-value func) "\306 \"\211A\n\203\307 !\210\310\n \"\311\312\"\210\310\f\" \2030\313\301\314 \315#B\"\2029\316\312\"\210\313\304\"*\207" [func ecb-idle-timer-alist timer-elem timer ecb-post-command-hooks idle-value assoc cancel-timer delq remove-hook post-command-hook add-to-list run-with-idle-timer t add-hook] 8 (#$ . 164745)]) #@100 Build an XEmacs compatible menu item from vector ITEM. That is remove the unsupported :help stuff. (defalias 'ecb-menu-item #[(item) "\203; G\306\307\211\f W\2034 \fH\310 !\203) \311=\203)\fT\202- \nB\fT\211\202\312\313\n\237\",\207 \207" [ecb-running-xemacs item l slot i n 0 nil keywordp :help apply vector] 5 (#$ . 165378)]) (byte-code "\301B\302\301!\204\f\303\301\207" [current-load-list ecb-menu-name boundp "ECB"] 2) #@26 Menu for ECB minor mode. (defvar ecb-menu-bar (byte-code "\302\303!\302\304!\302\305!\302\306!\307\302\310!\302\311!\302\312!\307\302\313!\302\314!\302\315!\302\316!\317\302\320!\302\321!\302\322!\307\302\323!\302\324!\307\302\325!\257 \307\302\326!\302\327!\307\330\302\331!\302\332!E\333\302\334!\302\335!\302\336!\302\337!\302\340!\302\341!\302\342!\302\343!\257 \344\302\345!\302\346!\302\347!\302\350!\302\351!\302\352!\302\353!\257\307\354\302\355!\307\302\356!\302\357!\302\360!\302\361!\302\362!\302\363!\302\364!\302\365!\302\366!\302\367!\302\370!\302\371!\257\372\302\373!\307\302\374!\302\375!\257\376\302\377!\302\201@!\302\201A!\302\201B!\302\201C!\302\201D!\302\201E!\307\302\201F!\307\201G P\257\f\307\302\201H!\257\207" [ecb-menu-name ecb-version ecb-menu-item ["Select ECB frame" ecb-activate :active (not (equal (selected-frame) ecb-frame)) :help "Select the ECB-frame."] ["Synchronize ECB windows" (ecb-window-sync) :active (and (equal (selected-frame) ecb-frame) (ecb-point-in-edit-window)) :help "Synchronize the ECB windows with the current edit-window."] ["Update directories buffer" ecb-update-directories-buffer :active (equal (selected-frame) ecb-frame) :help "Updates the directories buffer with current disk-state"] ["Add buffers to history" ecb-add-all-buffers-to-history :active (and (equal (selected-frame) ecb-frame) (ecb-window-live-p ecb-history-buffer-name)) :help "Add all current file-buffers to history"] "-" ["Rebuild methods buffer" ecb-rebuild-methods-buffer :active (equal (selected-frame) ecb-frame) :help "Rebuild the methods buffer completely"] ["Expand methods buffer" ecb-expand-methods-nodes :active (equal (selected-frame) ecb-frame) :help "Expand all nodes of a certain indent-level"] ["Toggle auto. expanding of the method buffer" ecb-toggle-auto-expand-token-tree :active (equal (selected-frame) ecb-frame) :help "Toggle auto. expanding of the method buffer"] ["Change layout" ecb-change-layout :active (equal (selected-frame) ecb-frame) :help "Change the layout."] ["Redraw layout" ecb-redraw-layout :active (equal (selected-frame) ecb-frame) :help "Redraw the current layout."] ["Toggle layout" ecb-toggle-layout :active (and (equal (selected-frame) ecb-frame) (> (length ecb-toggle-layout-sequence) 1)) :help "Toggle between several layouts"] ["Toggle visibility of ECB windows" ecb-toggle-ecb-windows :active (equal (selected-frame) ecb-frame) :help "Toggle the visibility of all ECB windows."] "Layout administration" ["Store current window-sizes" ecb-store-window-sizes :active (equal (selected-frame) ecb-frame) :help "Store current sizes of the ecb-windows in current layout."] ["Restore sizes of the ecb-windows" ecb-restore-window-sizes :active (equal (selected-frame) ecb-frame) :help "Restore the sizes of the ecb-windows in current layout."] ["Restore default-sizes of the ecb-windows" ecb-restore-default-window-sizes :active (equal (selected-frame) ecb-frame) :help "Restore the default-sizes of the ecb-windows in current layout."] ["Create new layout" ecb-create-new-layout :active (equal (selected-frame) ecb-frame) :help "Create a new ECB-layout."] ["Delete new layout" ecb-delete-new-layout :active (equal (selected-frame) ecb-frame) :help "Delete an user-created ECB-layout."] ["Show help for a layout" ecb-show-layout-help :active t :help "Show the documentation for a layout."] ["Toggle compile window" ecb-toggle-compile-window :active (equal (selected-frame) ecb-frame) :help "Toggle visibility of compile window."] ["Toggle enlarged compile window" ecb-toggle-compile-window-height :active (and (equal (selected-frame) ecb-frame) ecb-compile-window (ecb-compile-window-live-p)) :help "Toggle enlarged compile window."] "Navigate" ["Previous (back)" ecb-nav-goto-previous :active t :help "Go to the previous navigation point"] ["Next (forward)" ecb-nav-goto-next :active t :help "Go to the next navigation point"] "Goto window" ["Edit-window 1" ecb-goto-window-edit1 :active t :help "Go to the first edit-window"] ["Edit-window 2" ecb-goto-window-edit2 :active (ecb-edit-window-splitted) :help "Go to the second edit-window (if splitted)"] ["Directories" ecb-goto-window-directories :active (or (ecb-window-live-p ecb-directories-buffer-name) (and (equal ecb-use-speedbar-instead-native-tree-buffer 'dir) (ignore-errors (ecb-speedbar-active-p)))) :help "Go to the directories window"] ["Sources" ecb-goto-window-sources :active (or (ecb-window-live-p ecb-sources-buffer-name) (and (equal ecb-use-speedbar-instead-native-tree-buffer 'source) (ignore-errors (ecb-speedbar-active-p)))) :help "Go to the sources window"] ["Methods and Variables" ecb-goto-window-methods :active (or (ecb-window-live-p ecb-methods-buffer-name) (and (equal ecb-use-speedbar-instead-native-tree-buffer 'method) (ignore-errors (ecb-speedbar-active-p)))) :help "Go to the methods/variables window"] ["History" ecb-goto-window-history :active (ecb-window-live-p ecb-history-buffer-name) :help "Go to the history window"] ["Speedbar" ecb-goto-window-speedbar :active (ignore-errors (ecb-speedbar-active-p)) :help "Go to the integrated speedbar window"] ["Compilation" ecb-goto-window-compilation :active (and ecb-compile-window-height ecb-compile-window (window-live-p ecb-compile-window)) :help "Go to the history window"] "Display window maximized" ["Edit-window 1" (progn (ecb-goto-window-edit1) (ecb-with-adviced-functions (delete-other-windows))) :active (ecb-edit-window-splitted) :help "Maximize the first edit-window"] ["Edit-window 2" (progn (ecb-goto-window-edit2) (ecb-with-adviced-functions (delete-other-windows))) :active (ecb-edit-window-splitted) :help "Maximize the second edit-window"] ["Directories" ecb-maximize-window-directories :active t :help "Maximize the directories window - even if currently not visible"] ["Sources" ecb-maximize-window-sources :active t :help "Maximize the sources window - even if currently not visible"] ["Methods and Variables" ecb-maximize-window-methods :active t :help "Maximize the methods/variables window - even if currently not visible"] ["History" ecb-maximize-window-history :active (ecb-window-live-p ecb-history-buffer-name) :help "Maximize the history window - even if currently not visible"] ["Speedbar" ecb-maximize-window-speedbar :active (ignore-errors (ecb-speedbar-active-p)) :help "Maximize the integrated speedbar window if visible"] "Preferences" ["All..." (ecb-customize) :active t :help "Display all available option-groups..."] ["General..." (customize-group "ecb-general") :active t :help "Customize general ECB options"] ["Directories..." (customize-group "ecb-directories") :active t :help "Customize ECB directories"] ["Sources..." (customize-group "ecb-sources") :active t :help "Customize ECB sources"] ["Methods..." (customize-group "ecb-methods") :active t :help "Customize ECB method display"] ["History..." (customize-group "ecb-history") :active t :help "Customize ECB history"] ["Layout..." (customize-group "ecb-layout") :active t :help "Customize ECB layout"] ["Face options..." (customize-group "ecb-face-options") :active t :help "Customize ECB faces"] ["Download options..." (customize-group "ecb-download") :active t :help "Customize options for downloading ECB"] ["Help options..." (customize-group "ecb-help") :active t :help "Customize options for the online help of ECB"] ["ECB/eshell options..." (customize-group "ecb-eshell") :active t :help "Customize options for the eshell integration of ECB"] ["Supporting non-semantic-sources..." (customize-group "ecb-non-semantic") :active t :help "Customize options for parsing non-semantic-sources"] ["Supporting window-managers..." (customize-group "ecb-winman-support") :active t :help "Customize options for the window-manager-support"] "Upgrade and Download" ["Upgrade ECB-options to current ECB-version" ecb-upgrade-options :active (equal (selected-frame) ecb-frame) :help "Try to upgrade ECB-options to current ECB-version if necessary."] ["Download new ECB version" ecb-download-ecb :active (equal (selected-frame) ecb-frame) :help "Download a new ECB-version from the ECB-website."] ["Download new semantic version" ecb-download-semantic :active (equal (selected-frame) ecb-frame) :help "Download a new semantic version from the semantic-website."] "Help" ["Show Online Help" ecb-show-help :active t :help "Show the online help of ECB."] ["List of all commands" (let ((ecb-show-help-format 'info)) (ecb-show-help) (Info-goto-node "Command Index")) :active t :help "Displays an index of all commands in the online-help."] ["List of all options" (let ((ecb-show-help-format 'info)) (ecb-show-help) (Info-goto-node "Option Index")) :active t :help "Displays an index of all user-options in the online-help."] ["FAQ" (let ((ecb-show-help-format 'info)) (ecb-show-help) (Info-goto-node "FAQ")) :active t :help "Show the FAQ of ECB."] ["Submit problem report" ecb-submit-problem-report :active t :help "Submit a problem report to the ECB mailing list."] ["ECB Debug mode" (setq ecb-debug-mode (not ecb-debug-mode)) :active t :style toggle :selected ecb-debug-mode :help "Print debug-informations about parsing files in the message buffer."] ["ECB Layout Debug mode" (setq ecb-layout-debug-mode (not ecb-layout-debug-mode)) :active t :style toggle :selected ecb-layout-debug-mode :help "Print debug-informations about window-operations in the message buffer."] ["Help preferences..." (customize-group "ecb-help") :active t :help "Customize options for the online help of ECB"] "ECB " ["Deactivate ECB" ecb-deactivate :active t :help "Deactivate ECB."]] 39) (#$ . 165828)) #@111 Does all necessary to add ECB as a minor mode with current values of `ecb-mode-map' and `ecb-minor-mode-text' (defalias 'ecb-add-to-minor-modes #[nil "\304\305!\203\f\305\306\307#\207\310\306\n\236\211\203 A\307\240\210\202$\306\307D\nB\306 \236\211\2032 \241\2029\306B B\211)\207" [ecb-mode-map el minor-mode-alist minor-mode-map-alist fboundp add-minor-mode ecb-minor-mode ecb-minor-mode-text nil] 4 (#$ . 175411)]) #@38 Internal key-map for ECB minor mode. (defvar ecb-mode-map nil (#$ . 175849)) #@2571 *Specifies all key-bindings for the ECB minor-mode key-map. The value is a cons-cell where the car is a common-prefix key for all the key-bindings. The cdr is a list of key-bindings each of them a list again. A key-binding has the following form: '( ) where : If t then the common-prefixkey defined as car of the value (see above) is used. : If the common prefixkey is used then the final key-binding is the concatenation of the common-prefixkey (see above) and this keysequence. : The function to bind to the key. This can also be a lambda-expression . It is highly recommended to use one of the standard keys C-c or C-x as first key of your common-prefixkey! You MUST change this option via customize to take effect! All keysequences must be inserted as a string and must follow the syntax needed by `read-kbd-macro' or `kbd'. This means you can insert the key in the same manner "C-h k" displays keysequences. Here is the summary of the syntax: Text is divided into "words " separated by whitespace. Except for the words described below, the characters of each word go directly as characters of the keysequence. The whitespace that separates words is ignored. Whitespace in the macro must be written explicitly, as in "C-c SPC". * The special words RET, SPC, TAB, DEL, LFD, ESC, and NUL represent special control characters. The words must be written in uppercase. * A word in angle brackets, e.g., , , or , represents a function key. (Note that in the standard configuration, the function key and the control key RET are synonymous.). You can use angle brackets on the words RET, SPC, etc., but they are not required there. * Keys can be written by their ASCII code, using a backslash followed by up to six octal digits. This is the only way to represent keys with codes above ÿ. * One or more prefixes M- (meta), C- (control), S- (shift), A- (alt), H- (hyper), and s- (super) may precede a character or key notation. For function keys, the prefixes may go inside or outside of the brackets: C- = . The prefixes may be written in any order: M-C-x = C-M-x. Prefixes are not allowed on multi-key words, e.g., C-abc, except that the Meta prefix is allowed on a sequence of digits and optional minus sign: M--123 = M-- M-1 M-2 M-3. * The `^' notation for control characters also works: ^M = C-m. (custom-declare-variable 'ecb-key-map ''("C-c ." (t "f" ecb-activate) (t "p" ecb-nav-goto-previous) (t "n" ecb-nav-goto-next) (t "lc" ecb-change-layout) (t "lr" ecb-redraw-layout) (t "lw" ecb-toggle-ecb-windows) (t "lt" ecb-toggle-layout) (t "s" ecb-window-sync) (t "r" ecb-rebuild-methods-buffer) (t "a" ecb-toggle-auto-expand-token-tree) (t "x" ecb-expand-methods-nodes) (t "o" ecb-show-help) (t "g1" ecb-goto-window-edit1) (t "g2" ecb-goto-window-edit2) (t "gc" ecb-goto-window-compilation) (t "gd" ecb-goto-window-directories) (t "gs" ecb-goto-window-sources) (t "gm" ecb-goto-window-methods) (t "gh" ecb-goto-window-history) (t "gb" ecb-goto-window-speedbar) (t "md" ecb-maximize-window-directories) (t "ms" ecb-maximize-window-sources) (t "mm" ecb-maximize-window-methods) (t "mh" ecb-maximize-window-history) (t "mb" ecb-maximize-window-speedbar) (t "e" eshell) (t "\\" ecb-toggle-compile-window) (t "/" ecb-toggle-compile-window-height) (t "," ecb-cycle-maximized-ecb-buffers) (t "." ecb-cycle-through-compilation-buffers)) '(#$ . -175934) :group 'ecb-general :type '(cons (choice :tag "Common prefix-key" (const :tag "No common prefix-key" :value nil) (string :tag "Prefix-key" :value "C-c .")) (repeat :tag "Key-bindings" (list :tag "Key-definition" (boolean :tag "o Use common prefix-key" :value t) (string :tag "o Key") (function :tag "o Function or lambda-expression" :value nil)))) :set #'(lambda (symbol value) (set symbol value) (setq ecb-mode-map (let ((km (make-sparse-keymap)) (val-list (ecb-copy-list (cdr value))) keq-string) (dolist (elem val-list) (setq key-string (concat (if (nth 0 elem) (car value)) " " (nth 1 elem))) (define-key km (read-kbd-macro key-string) (nth 2 elem))) (easy-menu-define ecb-minor-menu km "ECB Minor Mode Menu" ecb-menu-bar) km)) (ecb-add-to-minor-modes))) #@252 Activates ECB and creates the special buffers for the choosen layout. For the layout see `ecb-layout-name'. This function raises always the ECB-frame if called from another frame. This is the same as calling `ecb-minor-mode' with a positive argument. (defalias 'ecb-activate #[nil "\300\301!\207" [ecb-minor-mode 1] 2 (#$ . 180318) nil]) #@201 Activates the ECB and creates all the buffers and draws the ECB-screen with the actually chosen layout (see `ecb-layout-name'). This function raises always the ECB-frame if called from another frame. (defalias 'ecb-activate-internal #[nil "\203 \203\302\303!\210\304 \210\202\305\306\215\210\202\307 \210 \207" [ecb-use-recursive-edit ecb-minor-mode message "ECB already activated. Drawing layout." ecb-redraw-layout exit (byte-code "\300 \210\301 \210\302 \207" [ecb-activate--impl recursive-edit ecb-deactivate-internal] 1) ecb-activate--impl] 2 (#$ . 180663)]) (byte-code "\301B\302\301!\204\f\303\303\207" [current-load-list ecb-upgrade-check-done boundp nil] 2) #@74 Complete cleanup of all ECB-setups and report an error with message MSG. (defalias 'ecb-clean-up-after-activation-failure #[(msg) "\303\304\303!\210 \203\305\303!\210\202\306\303!\210\307\n!)\207" [ecb-minor-mode ecb-running-xemacs msg t ecb-deactivate-internal redraw-modeline force-mode-line-update error] 2 (#$ . 181349)]) #@68 See `ecb-activate'. This is the implementation of ECB activation. (defalias 'ecb-activate--impl #[nil "\204\302  \203\303!\210\304!\210\305 \210\306 \207\307\310!\205X\311\312\313\217\210\311\314\315\217\210\316\311\317\320\217\210\311\321\322\217\210\311\323\324\217\210\311\325\326\217\210\316\327\330!\210\311\331\332\217\210\333\334\335\217\210\336\337\340\217\210\311\341\342\217\207" [ecb-frame ecb-minor-mode selected-frame raise-frame select-frame ecb-redraw-layout ecb-update-directories-buffer run-hook-with-args-until-failure ecb-before-activate-hook nil (byte-code "\306 \210\307 \210\203 \204\310 \210\311 \210\312 \210\313\314 \210\315 \210\316 \210\317 \210\320 \210\321\n!\210\321 !\210\f\203D\322\323!\210\324 \325\305\326\313#\210\202M\327 \325\305\326\330#\210\331 !\210\332 !\210\333\313!\210\334\335\336 \"@A@\235\204\355\337A \340\341\342\343\344\345B\206x\346\347CD\"!B\350E\206\207\346\347FG\"!B\351B\206\226\346\347CH\"!BE\345IB\350IB\351IBEJ@\313KLMN\352O\205\306\353\354\355\217\205\306\356B\357O\205\325\360\361\362\217\205\325\363BD\350PBCQRS\347\364CTU#&\210V@\235\2044\337V \340\341\342\365\344\345E\206\346\347FG\"!BC\345WBCJA@\313KLMN\330\211D\330\211XY\347\366CTU#&\210Z@\235\204\326\337Z \340\341\330\367\370\371!\203N\371\202O\372\345[\206V\346\347\\]\"!B\350[\206e\346\347\\^\"!B\351[\206t\346\347\\^\"!BE\345_B\350_B\351_BE\351J8\313KLMN\352O\205\245\373\374\375\217\205\245\376B\357O\205\272\377\201q\201r\217\205\272\201sBD\330Q`a\347\201tCTU#&\210\201u bc@\235\204#\337c \340\341\342\201v\344\345d\206\360\346\347ef\"!BC\345gBC\201wJ8\313KLMN\330\211D\330\211hi\347\201xCTU#&\210)AVZcFj\201y \210\201z\201{\201|\313#\210\201z\201}\201~\313#\210\201k\201\200\"\210\201l\201\201\"\210\201m\201\202\"\210\201\330\201\203\"\210\201z\201\204\201\205\"\210\201z\201\206\201\207\"\210\201z\201\210\201\211\"\210\201\212 \210\201\213\201n!\203\256\325\201n\201\214n#\210\201z\201n\201\215\"\210\201z\201n\201\216\313#\210\201z\201\217\201\220\"\210o\203\335\201\221\330p\"\210\201zo\203\353\201\222\202\356\201\223\201\224\"\207" [ecb-auto-compatibility-check ecb-upgrade-check-done ecb-basic-adviced-functions ecb-winman-not-supported-function-advices ecb-new-ecb-frame ecb-frame ecb-check-requirements ecb-nav-initialize ecb-check-not-compatible-options ecb-upgrade-not-compatible-options ecb-upgrade-renamed-options t ecb-initialize-layout ecb-clear-token-tree-cache ecb-clear-files-and-subdirs-cache ecb-sources-cache-clear ecb-initialize-internal-vars ecb-enable-advices run-hooks ecb-activate-before-new-frame-created-hook make-frame put ecb-new-frame-created selected-frame nil raise-frame select-frame ecb-enable-own-temp-buffer-show-function mapcar #[(buff) "\301!\207" [buff buffer-name] 2] buffer-list tree-buffer-create ecb-interpret-mouse-click ecb-tree-buffer-node-select-callback ecb-tree-buffer-node-expand-callback ecb-mouse-over-directory-node equal 0 identity append 1 2 "[+]" #1=#:G47383 (byte-code "\300\301!\207" [require sb-image] 2) ((error)) speedbar-directory-plus "[-]" #2=#:G47384 (byte-code "\300\301!\207" [require sb-image] 2) ((error)) speedbar-directory-minus #[nil "\300\301\302\"\210\300\303\304\"\210\300\305\306\"\210\300\307\310\"\207" [local-set-key [f2] ecb-customize [f3] ecb-show-help [f4] ecb-add-source-path "" ecb-toggle-RET-selects-edit-window] 3] ecb-mouse-over-source-node #[nil "\300\301\302\"\207" [local-set-key "" ecb-toggle-RET-selects-edit-window] 3] ecb-mouse-over-method-node fboundp semantic-equivalent-tokens-p #[(l r) "\211@)\n\211@)\230\205)A@\nA@=\205)\303!\303\n!=\205)\304!\304\n!=\207" [l token r ecb-semantic-token-start ecb-semantic-token-end] 4] #3=#:G47385 (byte-code "\300\301!\207" [require sb-image] 2) ((error)) speedbar-box-plus #4=#:G47386 curr-buffer-list ecb-directories-buffer-name ecb-directories-menu-sorter ecb-directories-menu-user-extension ecb-directories-menu ecb-sources-menu-sorter ecb-sources-menu-user-extension ecb-sources-menu ecb-source-path-menu ecb-directories-menu-title-creator ecb-truncate-lines ecb-tree-indent ecb-tree-incremental-search ecb-tree-navigation-by-arrow ecb-tree-easy-hor-scroll ecb-tree-use-image-icons ecb-source-in-directories-buffer-face ecb-tree-expand-symbol-before ecb-directory-face ecb-directories-general-face ecb-common-tree-buffer-after-create-hook ecb-directories-buffer-after-create-hook ecb-sources-buffer-name ecb-sources-menu-title-creator ecb-source-face ecb-sources-general-face ecb-methods-buffer-name ecb-methods-menu-sorter ecb-methods-menu-user-extension ecb-methods-token-menu ecb-common-methods-menu ecb-methods-menu-title-creator ecb-method-face ecb-methods-general-face ecb-methods-root-node ecb-history-buffer-name ecb-history-menu-sorter ecb-history-menu-user-extension ecb-history-menu ecb-history-menu-title-creator ecb-history-face ecb-history-general-face ecb-tree-buffers ecb-highlight-token-with-point-delay ecb-window-sync-delay ecb-compilation-update-idle-time ediff-quit-hook ecb-running-xemacs ecb-minor-menu (byte-code "\300\301!\207" [require sb-image] 2) ((error)) speedbar-box-minus #[nil "\300\301\302\"\207" [local-set-key "" ecb-toggle-RET-selects-edit-window] 3] tree-buffer-get-root ecb-mouse-over-history-node 3 #[nil "\300\301\302\"\207" [local-set-key "" ecb-toggle-RET-selects-edit-window] 3] ecb-eshell-activate-integration add-hook semantic-after-partial-cache-change-hook ecb-update-after-partial-reparse semantic-after-toplevel-cache-change-hook ecb-rebuild-methods-buffer-with-tokencache ecb-activate-ecb-sync-functions ecb-token-sync ecb-window-sync-function ecb-compilation-buffer-list-changed-p ecb-layout-handle-compile-window-selection pre-command-hook ecb-layout-pre-command-hook after-save-hook ecb-update-methods-after-saving kill-buffer-hook ecb-kill-buffer-hook ecb-compilation-buffer-list-init boundp ecb-ediff-quit-hook-value ediff-cleanup-mess ecb-ediff-quit-hook ediff-before-setup-windows-hook ecb-ediff-before-setup-windows-hook add-submenu activate-menubar-hook menu-bar-update-hook ecb-compilation-update-menu] 25) ((error (ecb-clean-up-after-activation-failure "Errors during the basic setup of ECB."))) (byte-code "\300\301!\207" [run-hooks ecb-activate-before-layout-draw-hook] 2) ((error (ecb-clean-up-after-activation-failure "Errors during the hooks of ecb-activate-before-layout-draw-hook."))) t (byte-code "\306\307\310!#\311\211\211\211\211G\312U\203=\313 @!\313 A@!\314 @!@\314 A@!@U\2035\315\2026\316\317 @\232\311\320\321!\210)\322\216\323!\210\315\232\203Y\324 \210\202\235\316\232\203f\325 \210\202\235\204q\326 \210\202\235\n\315\232\203}\324 \210\202\206\n\316\232\203\206\325 \210\n\203\235\327 \f\"\210\327\330 ! \"\210\331 ?!\210)\332\333!\210\334 \210-\311\207" [ecb-frame first-win-selected split buf-2 buf-1 win-list ecb-window-list 0 frame-first-window nil 2 window-buffer ecb-window-edges vertical horizontal selected-window ecb-redraw-layout-full no-buffer-sync ((ecb-activate-adviced-functions ecb-advice-window-functions)) ecb-activate-adviced-functions split-window-vertically split-window-horizontally delete-other-windows set-window-buffer next-window ecb-select-edit-window ecb-current-buffer-sync force ecb-mode-line-format ecb-redraw-layout-quickly ecb-adviceable-functions ecb-split-edit-window ecb-edit-window] 6) ((error (ecb-clean-up-after-activation-failure "Errors during the layout setup of ECB."))) (byte-code "\203\303\304 !!\204\305\306\212\304 !q\210\n)!!\210\303\207" [ecb-display-default-dir-after-start ecb-edit-window default-directory buffer-file-name window-buffer ecb-set-selected-directory ecb-fix-filename] 4) ((error (ecb-clean-up-after-activation-failure "Errors during setting the default directory."))) (byte-code "\300\301!\207" [run-hooks ecb-activate-hook] 2) ((error (ecb-clean-up-after-activation-failure "Errors during the hooks of ecb-activate-hook."))) (byte-code "\300 \203\301 \210\300\207" [ecb-show-any-node-info-by-mouse-moving-p tree-buffer-activate-follow-mouse] 1) ((error (ecb-clean-up-after-activation-failure "Errors during the mouse-tracking activation."))) message "The ECB is now activated." (byte-code "\203\301 \210\301\207" [ecb-auto-compatibility-check ecb-display-upgraded-options] 1) ((error (ecb-clean-up-after-activation-failure "Error during the compatibility-check of ECB."))) #5=#:G47381 (byte-code "\204\302\303 \210\304\305!\210)\302\207" [ecb-source-path ecb-show-help-format info ecb-show-help Info-goto-node "First steps"] 2) ((error)) #6=#:G47382 (ecb-show-tip-of-the-day) ((error)) (ecb-set-activated-window-configuration) ((error (ecb-clean-up-after-activation-failure "Errors during the snapshot of the windows-configuration.")))] 3 (#$ . 181686)]) #@74 Set the `ecb-activated-window-configuration' after the ECB is activated. (defalias 'ecb-set-activated-window-configuration #[nil "\300\213\207" [((byte-code "\302\303\304!\"\210\305 \211\207" [ecb-edit-window ecb-activated-window-configuration set-window-buffer get-buffer-create "*scratch*" current-window-configuration] 4))] 1 (#$ . 190633)]) #@109 Added to the end of `ediff-quit-hook' during ECB is activated. It does all necessary after finishing ediff. (defalias 'ecb-ediff-quit-hook #[nil "\205\302 \232\204\303\304!\203\305\302 \306\"\210\307 !\210\310 \207" [ecb-minor-mode ecb-frame selected-frame y-or-n-p "Ediff finished. Do you want to delete the extra ediff-frame? " delete-frame t select-frame ecb-redraw-layout] 3 (#$ . 190987)]) (defalias 'ecb-ediff-before-setup-windows-hook #[nil "\302 \205\303 \304\216\305 !\210\306 *\207" [save-selected-window-window ecb-edit-window ecb-edit-window-splitted selected-window ((byte-code "\301!\203\n\302!\210\301\207" [save-selected-window-window window-live-p select-window] 2)) select-window delete-window] 2]) #@60 Deactivates the ECB and kills all ECB buffers and windows. (defalias 'ecb-deactivate #[nil "\300\301!\207" [ecb-minor-mode 0] 2 (#$ . 191724) nil]) #@60 Deactivates the ECB and kills all ECB buffers and windows. (defalias 'ecb-deactivate-internal #[(&optional run-no-hooks) "\203 \204\306\307!\203\310\311!\210\312\n!\210\312 !\210\312\f!\210\312 !\210\313\311!\210\314\315\316\217\210\317 \210\320 \210\321 \210\322 \210\323 \210\324\325\326\"\210\324\327\330\"\210?\311@\211A\203cA@@\331@A!\210AA\211A\204O*\311?B\311C\211D\203\206D@C\324\332C\"\210DA\211D\204r*\311B\324\333\334\"\210\324\335\336\"\210\324\337\340\"\210\341\342N\203\247\341\342N!\202\254\324\341\343\"\210\324\344\345\"\210\346\347\350\217\210\324E\203\300\351\202\301\352\353\"\210 \204\314\354\355!\210\3563!\203\355\3573!\210\3603!\210\311\361\362\217\210\363\364N\203\355\365\366\367\217\210\370 \210\371F!\210\371G!\210\371H!\210\371I!\210\311J\372 \210\373 \210\374 \210\311\204\375\376!\210\207" [ecb-minor-mode run-no-hooks ecb-basic-adviced-functions ecb-speedbar-adviced-functions ecb-eshell-adviced-functions ecb-winman-not-supported-function-advices run-hook-with-args-until-failure ecb-before-deactivate-hook ecb-activate-adviced-functions nil ecb-disable-advices ecb-enable-own-temp-buffer-show-function #1=#:G47387 (ecb-speedbar-deactivate) ((error)) ecb-eshell-deactivate-integration tree-buffer-activate-mouse-tracking tree-buffer-deactivate-mouse-tracking tree-buffer-activate-follow-mouse tree-buffer-deactivate-follow-mouse remove-hook semantic-after-partial-cache-change-hook ecb-update-after-partial-reparse semantic-after-toplevel-cache-change-hook ecb-rebuild-methods-buffer-with-tokencache cancel-timer post-command-hook pre-command-hook ecb-layout-pre-command-hook after-save-hook ecb-update-methods-after-saving kill-buffer-hook ecb-kill-buffer-hook ediff-quit-hook ecb-ediff-quit-hook-value ecb-ediff-quit-hook ediff-before-setup-windows-hook ecb-ediff-before-setup-windows-hook #2=#:G47390 (byte-code "\203\302 !\210\302\207" [ecb-running-xemacs ecb-minor-menu easy-menu-remove] 2) ((error)) activate-menubar-hook menu-bar-update-hook ecb-compilation-update-menu run-hooks ecb-deactivate-hook frame-live-p raise-frame select-frame (byte-code "\306 \307 !\205\307\310 !!\311 \312 \210\313 !\210\314 \210\315\316 \317\"\210\320\232\2030\321 \210\2029\322\232\2039\323 \210\203Z\324\316 \n\"\210\324\310\316 ! \"\210\f\203Z\f\325U\203Z\326\310 !\210,\317\207" [split ecb-edit-window buf-1 buf-2 sel-win ecb-frame ecb-edit-window-splitted window-buffer next-window ecb-point-in-edit-window ecb-select-edit-window ecb-make-windows-not-dedicated delete-other-windows set-window-dedicated-p selected-window nil vertical split-window-vertically horizontal split-window-horizontally set-window-buffer 2 select-window] 3) ((error (byte-code "\300\301!\210\302\303\304\217\210\305\306\307\217\207" [message "ECB %s: ecb-deactivate-internal: Error during frame cleanup!" #3=#:G47392 (ecb-make-windows-not-dedicated ecb-frame) ((error)) #4=#:G47393 (delete-other-windows) ((error))] 3))) ecb-frame ecb-new-frame-created #5=#:G47391 (delete-frame ecb-frame t) ((error)) ecb-initialize-layout tree-buffer-destroy ecb-clear-token-tree-cache ecb-clear-files-and-subdirs-cache ecb-sources-cache-clear message "The ECB is now deactivated." ecb-idle-timer-alist timer-elem #6=#:--dolist-temp--47388 ecb-post-command-hooks hook #7=#:--dolist-temp--47389 ecb-running-xemacs ecb-directories-buffer-name ecb-sources-buffer-name ecb-methods-buffer-name ecb-history-buffer-name ecb-activated-window-configuration] 4 (#$ . 191878)]) #@148 Toggle ECB minor mode. With prefix argument ARG, turn on if positive, otherwise off. Return non-nil if the minor mode is enabled. \{ecb-mode-map} (defalias 'ecb-minor-mode #[(&optional arg) "\204 ?\202\304!\305V\211\203\306 \210\202\307 \210) \203(\310\311!\210\202,\312\311!\210 \207" [arg ecb-minor-mode new-state ecb-running-xemacs prefix-numeric-value 0 ecb-activate-internal ecb-deactivate-internal redraw-modeline t force-mode-line-update] 3 (#$ . 195408) "P"]) (defalias 'ecb-maximize-ecb-window-menu-wrapper #[(node) "p\301 \210\302\303\304\217)\207" [ecb-buffer ecb-maximize-ecb-window #1=#:G47394 (byte-code "\301\302!!\207" [ecb-buffer select-window get-buffer-window] 3) ((error))] 3]) #@48 Creates a new sourcefile in current directory. (defalias 'ecb-create-source #[(node) "\305\306\307\310 !!\203\311\202\312\310 !!!\313\314\315\n\316P\"!\317 \210\320\321 \"\2031\322\n \"\210\2028\323\n\316 Q!\210edU\203N\324\325!\210\305\326 \210)\327\305\211\325#\210\330\n!\210\331\n\325\"\210\332 +\207" [use-dialog-box node dir filename ecb-auto-update-methods-after-save nil ecb-fix-filename file-directory-p tree-node-get-data identity file-name-directory file-name-nondirectory read-file-name "Source name: " "/" ecb-select-edit-window string-match "\\.java$" ecb-jde-gen-class-buffer find-file set-buffer-modified-p t save-buffer ecb-rebuild-methods-buffer-with-tokencache ecb-remove-dir-from-caches ecb-set-selected-directory ecb-current-buffer-sync] 5 (#$ . 196128)]) (defalias 'ecb-grep-directory-internal #[(node find) "\306\206 !\210\307\310\311\n!!\203\311\n!\202\312\311\n!!! P\313 \2035\314!\2031\206B\315\202B\314!\203A\206B\316!)\207" [ecb-last-edit-window-with-point ecb-edit-window node ecb-directory-sep-string default-directory find select-window ecb-fix-filename file-directory-p tree-node-get-data file-name-directory call-interactively fboundp grep-find grep ecb-grep-find-function ecb-grep-function] 4]) (defalias 'ecb-grep-find-directory #[(node) "\301\302\"\207" [node ecb-grep-directory-internal t] 3]) (defalias 'ecb-grep-directory #[(node) "\301\302\"\207" [node ecb-grep-directory-internal nil] 3]) (defalias 'ecb-create-directory #[(parent-node) "\301\302!\303\304\305!Q!\210\306!\210\307 \207" [parent-node make-directory tree-node-get-data "/" read-from-minibuffer "Directory name: " ecb-update-directory-node tree-buffer-update] 5]) #@28 Deletes current directory. (defalias 'ecb-delete-directory #[(node) "\302!\303\304 \305Q!\205\306\302!!\210\307\310!!\210\311 )\207" [node dir tree-node-get-data ecb-confirm "Really delete directory" "? " delete-directory ecb-update-directory-node tree-node-get-parent tree-buffer-update] 4 (#$ . 197839)]) (defalias 'ecb-dired-directory-internal #[(node &optional other) "\306 \204 \307 \210\202\310\203\311!\203\206 !\210\312\313\314\n!!\203*\315\202+\316\314\n!!!\317\216\320\f!\210 \203?\321\202@\322 !*\207" [ecb-last-edit-window-with-point ecb-edit-window node dir ecb-adviceable-functions other ecb-edit-window-splitted ecb-select-edit-window select-window window-live-p ecb-fix-filename file-directory-p tree-node-get-data identity file-name-directory ((ecb-activate-adviced-functions ecb-advice-window-functions)) ecb-activate-adviced-functions dired-other-window dired] 4]) (defalias 'ecb-dired-directory #[(node) "\301!\207" [node ecb-dired-directory-internal] 2]) (defalias 'ecb-dired-directory-other-window #[(node) "\301\302\"\207" [node ecb-dired-directory-internal other] 3]) (byte-code "\301B\302\301!\204\f\303\304\303\207" [current-load-list ecb-common-directories-menu boundp nil (("Grep Directory" ecb-grep-directory t) ("Grep Directory recursive" ecb-grep-find-directory t) ("---") ("Open in Dired" ecb-dired-directory t) ("Open in Dired other window" ecb-dired-directory-other-window t) ("---") ("Create Sourcefile" ecb-create-source t) ("Create Child Directory" ecb-create-directory t) ("Delete Directory" ecb-delete-directory t) ("---") ("Add Source Path" ecb-add-source-path-node t))] 2) #@108 Built-in menu for the directories-buffer for directories which are not a source-path of `ecb-source-path'. (defvar ecb-directories-menu nil (#$ . 199490)) (byte-code "\302\303\"\302\207" [ecb-common-directories-menu ecb-directories-menu append (("Make This a Source Path" ecb-node-to-source-path t) ("---") ("Maximize window" ecb-maximize-ecb-window-menu-wrapper))] 3) #@144 The menu-title for the directories menu. Has to be either a string or a function which is called with current node and has to return a string. (defvar ecb-directories-menu-title-creator #[(node) "\301!\207" [node tree-node-get-data] 2] (#$ . 199868)) #@99 Built-in menu for the directories-buffer for directories which are elements of `ecb-source-path'. (defvar ecb-source-path-menu nil (#$ . 200126)) (byte-code "\302\303\"\302\207" [ecb-common-directories-menu ecb-source-path-menu append (("Delete Source Path" ecb-delete-source-path t) ("---") ("Maximize window" ecb-maximize-ecb-window-menu-wrapper))] 3) #@29 Deletes current sourcefile. (defalias 'ecb-delete-source #[(node) "\303!\304\305 !!\306\307\310 !\311Q!\205-\312 !\203!\313\312 !!\210\314 !\210\315\n!\210\316\n\317\"*\207" [node file dir tree-node-get-data ecb-fix-filename file-name-directory ecb-confirm "Really delete " file-name-nondirectory "? " get-file-buffer kill-buffer ecb-delete-file ecb-remove-dir-from-caches ecb-set-selected-directory t] 4 (#$ . 200488)]) #@39 Built-in menu for the sources-buffer. (defvar ecb-sources-menu nil (#$ . 200920)) (byte-code "\301\302\207" [ecb-sources-menu (("Grep Directory" ecb-grep-directory t) ("Grep Directory recursive" ecb-grep-find-directory t) ("---") ("Open Dir in Dired" ecb-dired-directory t) ("Open Dir in Dired other window" ecb-dired-directory-other-window t) ("---") ("Create Sourcefile" ecb-create-source t) ("Delete Sourcefile" ecb-delete-source t) ("---") ("Maximize window" ecb-maximize-ecb-window-menu-wrapper)) nil] 1) #@80 The menu-title for the sources menu. See `ecb-directories-menu-title-creator'. (defvar ecb-sources-menu-title-creator #[(node) "\301\302!!\207" [node file-name-nondirectory tree-node-get-data] 3] (#$ . 201437)) (defalias 'ecb-methods-menu-jump-and-narrow #[(node) "\301\302\303\304\305%\207" [node ecb-method-clicked 1 nil t (ecb-token-visit-narrow-token ecb-token-visit-highlight-token-header)] 6]) (defalias 'ecb-methods-menu-widen #[(node) "\301 \210~\210\302\211\207" [ecb-buffer-narrowed-by-ecb ecb-select-edit-window nil] 2]) (byte-code "\204\301\302!\210\301\207" [ecb-running-xemacs require hideshow] 2) #@120 Activates `hs-minor-mode' in the buffer of `ecb-path-selected-source'. If this fails then nil is returned otherwise t. (defalias 'ecb-methods-menu-activate-hs #[nil "\212\302!q\210\303\301!\203 \204\304\301!\205\301\305!\210\306\202\306)\207" [ecb-path-selected-source hs-minor-mode get-file-buffer boundp fboundp 1 t] 2 (#$ . 202062)]) (defalias 'ecb-methods-menu-show-block #[(node) "\302 \204 \303\304!\207\305\306\307\310\311%\210\212\312 !\204\313 \307\310#\210\314 \210)\315\316!!\207" [node hs-block-start-regexp ecb-methods-menu-activate-hs ecb-error "hs-minor-mode can not be activated!" ecb-method-clicked 1 nil t (ecb-token-visit-smart-token-start) looking-at re-search-forward hs-show-block ecb-token-visit-highlight-token-header tree-node-get-data] 6]) (defalias 'ecb-methods-menu-hide-block #[(node) "\302 \204 \303\304!\207\305\306\307\310\311%\210\212\312 !\204\313 \307\310#\210\314 \210)\315\316!!\207" [node hs-block-start-regexp ecb-methods-menu-activate-hs ecb-error "hs-minor-mode can not be activated!" ecb-method-clicked 1 nil t (ecb-token-visit-smart-token-start) looking-at re-search-forward hs-hide-block ecb-token-visit-highlight-token-header tree-node-get-data] 6]) (defalias 'ecb-methods-menu-collapse-all #[(node) "\300\301\302\303#\207" [ecb-expand-methods-nodes-internal -1 nil t] 4]) (defalias 'ecb-methods-menu-expand-0 #[(node) "\300\301\302\303#\207" [ecb-expand-methods-nodes-internal 0 nil t] 4]) (defalias 'ecb-methods-menu-expand-1 #[(node) "\300\301\302\303#\207" [ecb-expand-methods-nodes-internal 1 nil t] 4]) (defalias 'ecb-methods-menu-expand-2 #[(node) "\300\301\302\303#\207" [ecb-expand-methods-nodes-internal 2 nil t] 4]) (defalias 'ecb-methods-menu-expand-all #[(node) "\300\301\302\303#\207" [ecb-expand-methods-nodes-internal 100 nil t] 4]) #@39 Built-in menu for the methods-buffer. (defvar ecb-common-methods-menu nil (#$ . 203881)) (byte-code "\303\302 B\304\302!\204\305\306\307\"\305\207" [ecb-common-methods-menu current-load-list ecb-methods-token-menu (("Undo narrowing of edit-window" ecb-methods-menu-widen t) ("---") ("Collapse all" ecb-methods-menu-collapse-all t) ("Expand level 0" ecb-methods-menu-expand-0 t) ("Expand level 1" ecb-methods-menu-expand-1 t) ("Expand level 2" ecb-methods-menu-expand-2 t) ("Expand all" ecb-methods-menu-expand-all t) ("---") ("Maximize window" ecb-maximize-ecb-window-menu-wrapper)) boundp nil append (("Jump to token and hide block" ecb-methods-menu-hide-block t) ("Jump to token and show block" ecb-methods-menu-show-block t) ("---") ("Jump to token and narrow" ecb-methods-menu-jump-and-narrow t))] 3) #@80 The menu-title for the methods menu. See `ecb-directories-menu-title-creator'. (defvar ecb-methods-menu-title-creator #[(node) "\303!\211\203: \211<\205\n@;\205\nA@\205\nA@9)\203+ \211@)\202= ;\2034 \202=\304!\202=\304!)\207" [node data token tree-node-get-data tree-node-get-name] 3] (#$ . 204699)) (defalias 'ecb-add-history-buffers-popup #[(node) "\300 \207" [ecb-add-all-buffers-to-history] 1]) #@103 Removes all history entries from the ECB history buffer where related buffers does not exist anymore. (defalias 'ecb-clear-history-only-not-existing #[(node) "\301\302 )\207" [ecb-clear-history-behavior not-existing-buffers ecb-clear-history] 1 (#$ . 205123)]) #@58 Removes all history entries from the ECB history buffer. (defalias 'ecb-clear-history-all #[(node) "\301\302 )\207" [ecb-clear-history-behavior all ecb-clear-history] 1 (#$ . 205391)]) #@52 Removes current entry from the ECB history buffer. (defalias 'ecb-clear-history-node #[(node) "\304 \305\216\306\216\307 !\205\310\n!\210\311 \210\312 !+\207" [save-selected-window-window ecb-history-buffer-name node ecb-path-selected-source selected-window ((byte-code "\301!\203\n\302!\210\301\207" [save-selected-window-window window-live-p select-window] 2)) nil ecb-window-select ecb-remove-from-current-tree-buffer tree-buffer-update tree-buffer-highlight-node-data] 2 (#$ . 205583)]) #@37 Kills the buffer for current entry. (defalias 'ecb-history-kill-buffer #[(node) "\302!\210\303!\304 !\205\305\304 !!)\207" [node data ecb-clear-history-node tree-node-get-data get-file-buffer kill-buffer] 3 (#$ . 206086)]) #@39 Built-in menu for the history-buffer. (defvar ecb-history-menu nil (#$ . 206320)) (byte-code "\301\302\207" [ecb-history-menu (("Grep Directory" ecb-grep-directory t) ("Grep Directory recursive" ecb-grep-find-directory t) ("---") ("Open Dir in Dired" ecb-dired-directory t) ("Open Dir in Dired other window" ecb-dired-directory-other-window t) ("---") ("Delete Sourcefile" ecb-delete-source t) ("Kill Buffer" ecb-history-kill-buffer t) ("---") ("Add all filebuffer to history" ecb-add-history-buffers-popup t) ("---") ("Remove Current Entry" ecb-clear-history-node t) ("Remove All Entries" ecb-clear-history-all t) ("Remove Non Existing Buffer Entries" ecb-clear-history-only-not-existing t) ("---") ("Maximize window" ecb-maximize-ecb-window-menu-wrapper)) nil] 1) #@80 The menu-title for the history menu. See `ecb-directories-menu-title-creator'. (defvar ecb-history-menu-title-creator #[(node) "\301!\207" [node tree-node-get-data] 2] (#$ . 207093)) #@138 Compile the ECB-file FILE if necessary. This is done if FORCE is not nil or FILE.el is newer than FILE.elc or if FILE.elc doesn't exist. (defalias 'ecb-compile-file-if-necessary #[(file &optional force) "\303!\304P\n\204\305 !\203\306 \"\205\307!)\207" [file elc-file force file-name-sans-extension ".elc" file-exists-p file-newer-than-file-p byte-compile-file] 3 (#$ . 207284)]) #@191 Byte-compiles the ECB package. This is done for all lisp-files of ECB if FORCE-ALL is not nil or for each lisp-file FILE.el which is either newer than FILE.elc or if FILE.elc doesn't exist. (defalias 'ecb-byte-compile #[(&optional force-all) "\305 \203\306\307!\203\310\311!\210\202\306 \210\312\313\314\315!\206 \310\316!!\313\314\317!\206+\310\320!!\313\314\321!\2066\310\322!!\313\314\323!!F\"\324\313\314\323!!\307\"\212 \325\211\203o @\326\327\n\"\203h\326\330\n\"\204h\331\n\f\"\210 A\211\204R-\325\207" [load-path files file #1=#:--dolist-temp--47395 force-all ecb-noninteractive ecb-check-requirements t ecb-error "Incorrect requirements; check the versions of semantic, eieio and speedbar!" append file-name-directory locate-library "semantic" "Semantic is not in the load-path!" "eieio" "Eieio is not in the load-path!" "speedbar" "Speedbar is not in the load-path!" "ecb" directory-files nil string-match "\\(silentcomp\\|tree-buffer\\|ecb.*\\)\\.el$" "ecb-autoloads" ecb-compile-file-if-necessary] 7 (#$ . 207681) "P"]) #@57 If necessary, run `ecb-activate' when Emacs is started. (defalias 'ecb-auto-activate-hook #[nil "\205\301 \207" [ecb-auto-activate ecb-activate] 1 (#$ . 208739)]) (byte-code "\301B\302\301!\204\f\303\303\207" [current-load-list ecb-last-major-mode boundp nil] 2) #@272 Added to `post-command-hook' after loading the ecb-library. Handles the values of `ecb-major-modes-activate' and `ecb-major-modes-deactivate'. Because this hook of `post-command-hook' does nothing if the major-mode has not changed there should be no performance-problem! (defalias 'ecb-handle-major-mode-activation #[nil "\203\304\211\207 \n\232?\205 \n\305\306\307\217)\207" [ecb-item-in-tree-buffer-selected ecb-last-major-mode major-mode last-mode nil #1=#:G47396 (byte-code ";\203G <\203G \203G @<\204G\306\n \"\204G\307 \310\216\311\312\n!\"*\204G\313 \314 \232\2048\f\315\232\203G \203D\316 \205F\317 \207\320 \207<\203\241\203\241\306\n\"\203\241\313 \314 \232\204e\f\315\232\203\241 \203q\316 \205\240\317 \207\320 \210\306\n\"A\211\321\232\203\216\322\323N\206\212\322\324N@\202\220\211\230?\205\237\325\322\"*\207 <\203\364 @\326\235\203\364 A;\203\364<\203\364\203\364\306\n\"\204\364 \203\364\316 \203\364\327 \203\327\f\315\232\203\364\307 \330\216\311 A\312\n!\"*\204\364 @\331\232\203\361\332 \207\333 \207 <\205- @<\205- \205-\306\n \"\205- \205-\316 \205-\327 \203\f\315\232\205-\306\n \"A\334\232\203+\333 \207\332 \207" [ecb-major-modes-activate ecb-major-modes-deactivate major-mode save-match-data-internal last-mode ecb-minor-mode assoc match-data ((set-match-data save-match-data-internal)) string-match symbol-name selected-window next-window dired-mode ecb-point-in-edit-window ecb-show-ecb-windows ecb-activate default ecb-layout-name saved-value standard-value customize-set-variable (hide-all-except-activated deactivate-all-except-activated) ecb-edit-window-splitted ((set-match-data save-match-data-internal)) deactivate-all-except-activated ecb-deactivate ecb-hide-ecb-windows hide layout layout-to-set] 5) ((error))] 3 (#$ . 209016)]) (byte-code "\300\301\302\"\210\300\303\304\"\207" [add-hook post-command-hook ecb-handle-major-mode-activation emacs-startup-hook ecb-auto-activate-hook] 3) #@55 Activate ECB from the Tools-menu. See `ecb-activate'. (defalias 'ecb-run-from-menubar #[nil "\300 \207" [ecb-activate] 1 (#$ . 211018) nil]) (byte-code "\303\304\305\306\307!#\210\310!\210\310 !\210\310\n!\210\311\304!\210\312\313!\207" [ecb-basic-adviced-functions ecb-speedbar-adviced-functions ecb-eshell-adviced-functions easy-menu-add-item nil ("tools") ecb-menu-item ["Start Code Browser (ECB)" ecb-run-from-menubar :active t :help "Start the Emacs Code Browser."] ecb-disable-advices ecb-activate-adviced-functions provide ecb] 5)