* Changes for ECB version 2.31 ** Fixed bugs *** Fixed a recently introduced bug with XEmacs and an active isearch. This bug occured when a user has clicked onto a node in a tree-buffer during an active isearch and it had as result completely out-of-order tree-buffers. This buf is now fixed and should never occur. *** Fixed a bug concerning accessing root-drives in native window-XEmacs Fixes an annoying behavior of the native windows-version of XEmacs: When a path contains only a drive-letter and a : (e.g. C:) then `expand-file-name' (and a lot of other file-operations) do not interpret this path as root of that drive. So ECB adds temporary a trailing `directory-sep-char' and calls file-operations like `expand-file-name' with this new path because then `expand-file-name' treats this as root-dir of that drive. For all (X)Emacs-version besides the native-windows-XEmacs this fix is not needed and takes no effect. *** Better recognizing of remote CVS-root-repositories for the VC-support ** Enhancement for the VC-support *** New option `ecb-vc-xemacs-exclude-remote-cvs-repository' This excludes directories with a remote cvs-repository from VC-check. This option takes only effect for XEmacs and is needed cause of the outdated VC-package of XEmacs which offers no heuristic state-checking and also no option `vc-cvs-stay-local'. So this option takes only effect if `vc-cvs-stay-local' is not avaiable. In this case ECB treats directories which are managed by CVS but have a remote repository as if the directory would not being managed by CVS (so the files are not checked for their VC-state). This is done to avoid blocking XEmacs cause of running full cvs-commands (e.g. ``cvs status'') for a bunch of files over the net. *** Added beta-support for Clearcase There is already an identify-backend-function `ecb-vc-dir-managed-by-CC' and a check-state-function `ecb-vc-check-CC-state' and an advice for `clearcase-sync-from-disk' which enable automatic state-update after checkin/out. These code seems to work quite well but nevertheless there are some problems so this Clearcase-support is not added per default to `ecb-vc-supported-backends'. So if you want Clearcase-support you have to customize the option `ecb-vc-supported-backends' and add these functions mentioned above (the advice of `clearcase-sync-from-disk' takes only effect if the function `ecb-vc-dir-managed-by-CC' can be found in `ecb-vc-supported-backends' and ECB is active!). But use it at your own risk. Of course the best would be if a lot of people would test this Clearcase-support and fix the encountered problems ;-). Thanks to David Ostrovsky for providing a first implementation! * Changes for ECB version 2.30.1 ** Enhancement to the automatic option-upgrading mechanism ECB now automatically makes a backup-file of that file which will be modified by storing the upgraded rsp. renamed ECB-options. This backup file gets a unique name by adding a suffix ".before_ecb_" to the name of the modified file. If such a file already exists ECB adds a unique number to the end of the filename to make the filename unique. This is a safety mechanism if something fails during storing the upgraded options, so you never lose the contents of your customization-file! ** Enhancement to the VC-support *** Better recomputing of the VC-state of a file when state changed outside With the new check-state-function `ecb-vc-state' the heuristic state is always computed right which is especially useful if the state for a file has been changed outside Emacs (e.g. by checking in from command line or Windows Explorer). This function is now added to the default-value of `ecb-vc-supported-backends' for GNU Emacs. *** Added out-of-the-box support for VC-system Subversion For this the latest version of the VC-package incl. the library vc-syn.el is needed. Latest CVS Emacs contains this VC-version. The new function `ecb-vc-dir-managed-by-SVN' is now added to the default-value of `ecb-vc-supported-backends'. Thanks for first implementation to Ekkehard Görlach . ** Fixed bugs *** Fixed errors occured at load-time of ECB 2.30 * Changes for ECB version 2.30 ** Enhancements to the file-browser *** Much better performance of the file-browser display because all time-consuming tasks (like the check if the displayed directories are empty of not) are now performed "stealthy" - means when Emacs is idle. Each stealthy task is interruptable by the user just by hitting any key or clicking the mouse so Emacs/ECB will not be blocked by such tasks; next time Emacs is idle again the interrupted task automatically proceeds from the state it has been interrupted. There is a new macro `defecb-stealthy' which can be used by a user to program own stealthy tasks. Currently ECB performs three stealthy tasks: Prescann directories for emptyness: Prescann directories and display them as empty or not-empty in the directories-buffer. See the documentation of the option `ecb-prescan-directories-for-emptyness' for a description. File is read only: Check if sourcefile-items of the directories- or sources-buffer are read-only or not. See documentation of the option `ecb-sources-perform-read-only-check'. Version-control-state: Checks the version-control-state of files in directories which are managed by a VC-backend. See the option `ecb-vc-enable-support'. There is also a new option `ecb-stealthy-tasks-delay'. There are three options which allow excluding certain directories from these stealthy tasks: `ecb-prescan-directories-exclude-regexps', `ecb-read-only-check-exclude-regexps' and last but not least `ecb-vc-directory-exclude-regexps'. *** ECB is now capable of handling remote paths. "Remote" means file- or directory-paths in the sense of TRAMP, ANGE-FTP or EFS. Such paths can now being added to the option `ecb-source-path' with no limitation compared to "local" paths. Just work with remote-paths in the same manner as with local paths. See also the additional choices of the options `ecb-prescan-directories-for-emptyness', `ecb-sources-perform-read-only-check' and `ecb-vc-enable-support' (new). This new support is tested with the combinations GNU Emacs+TRAMP and XEmacs+EFS but it should (hopefully) also work with all other combinations. Thanks a lot to Tomas Orti for beta-testing! *** ECB displays the Version-control-state of a file in the tree-buffers. There are four new options `ecb-vc-enable-support', `ecb-vc-supported-backends', `ecb-vc-directory-exclude-regexps' and `ecb-vc-state-mapping' which define if and how ECB should check the state of a sourcefile in a directory managed by a version-control system. By default ECB supports the same VC-backends as the builtin VC-support of Emacs: CVS, RCS and SCCS. But the option `ecb-vc-supported-backends' allows to add support for arbitrary VC-backends (e.g. Clearcase). New image-icons are also included for a cute display of the VC-state in the directories, sources and history-buffer. Thanks to Markus Gritsch for contributing the icons. It's recommended to read the section "Version-control support" in the chapter "Tips and Trick" of the ECB-info-manual! *** New hook which runs directly after the selected directory has changed. See documentation of `ecb-after-directory-change-hook'. ** The popup-menu of the methods-browser allows precisely expanding of the current node. This means you can precisely expand a certain node to an exact indentation level relative to the node. This means all subnodes <= this level will be expanded (full recursive expanding is therefore of course also possible) and all subnodes indented deeper than this level will be collapsed - this is very different from using the expand/collapse symbol of a node. For forther details and examples the the manual and the section "Expanding" and here the subsection "Explicit expanding of the current node to a certain level". ** Automatically upgraded ecb-option-settings are now not saved by default. This means that ECB has now the new policy "Never touching the customization-files of a user without asking". The result is a completely redesigned upgraded-options-buffer: Now at the bottom of this buffer (displayed by `ecb-display-upgraded-options') two clickable buttons [Save] and [Cancel] are displayed which give the user the choice between saving the upgraded options for future Emacs-sessions ot just to cancel this buffer. In the latter case ECB has also upgraded the not compatible or renamed options (as listed in the displayed upgraded-options-buffer) but they will be not saved, i.e. no customization-file is touched and the changed and upgraded values will be lost after quiting Emacs. ** With XEmacs ECB temporary sets `progress-feedback-use-echo-area' to t This is necessary because otherwise the progress-display with native widgets modifies the window-sizes of ECB and does not exactly restore the window-sizes as before that progress-display. Deactivating ECB automatically restores the old value of this option. ** Fixed bugs *** Fixed resizing of the ecb-windows after opening a file Sometimes (X)Emacs (the behavior has only been reported for XEmacs) resizes the ecb-windows after opening a file by clicking onto a sourcefile or calling `find-file' (or similar functions). This is not a bug of ECB but nevertheless it is annoying for the ECB-users. Therefore ECB has now a workaround which prevents the ecb-windows from resizing. The work around is done via two simple advices of `find-file' and `find-file-other-window'. *** Fixed a bug in the upgrading feature (command `ecb-download-ecb') which has occured when the user has set a different LOKALE (e.g. "de_DE@euro"). *** Fixed a bug in restoring sizes of the ecb-windows. Now a check will be performed if there are ecb-windows visible. If not nothing will be done (versions < 2.30 have failed in such a case). This bug has prevented ediff from working together with ECB when a compile-window was visible and the user has stored window-sizes for the current layout. * Changes for ECB version 2.27 ** The option `ecb-auto-expand-tag-tree-collapse-other' now has three possible choices. You can decide between auto-collapsing only when point stays onto a tag in the edit-window or even when point doesn't stay onto a tag (which then results in a full collapsed methods-buffer). ECB autom. upgrades the old setting of this option to the new type. Thanks to Javier Oviedo for the suggestion. ** Not accessible directories are displayed in a different face in the directory-browser. See the new option `ecb-directory-not-accessible-face' and the new face with same name. ** Enhancements to the permanent compile-window *** Enlarging the compile-window does not destroy some ecb-windows With previous versions of ECB enlarging the permanent compile-window has often destroyed some ecb-windows if the compile-window has occupied a large portion of the frame-height (e.g. half of the frame). Beginning with ECB 2.27 such a ecb-window-damage is either prevented or - if it still occurs (can not be prevented in all situations) - ECB now has a "self-healing"-mechanism which immediatelly repairs the layout via idle-checks if the current window-layout is correct for the current `ecb-layout-name'. Conclusion: Enlarging or shrinking the compile-window should never damage the ecb-windows! Thanks to Javier Oviedo for a great problem-report! Caution: If bytecompiled user-defined layouts are used (ie. the file, which contains the user-defined layouts is byte-compiled) then you MUST recompile this file with ECB 2.27 active! *** Now `ecb-store-window-sizes' and `ecb-restore-window-sizes' also work when called during a permanent compile-window is visible and also when these commands are called with another compile-window state than the other (e.g. when the window-sizes are stored without a compile-window and restored with a compile-window). *** Now ECB ensures that the permanent compile-window has always its specified size when shrinked either by Emacs/ECB or by the command `ecb-toggle-compile-window-height'. *** Now ECB ensures that all ecb-windows have always either their default or stored size size after the compile-window has been shrinked either by Emacs/ECB or by the command `ecb-toggle-compile-window-height'. *** ECB takes into account the new Emacs-option `grep-window-height' when it compute the max. allowed size of its permanent compile-window. More generally spoken: It takes into account all options with name *-window-height defined for modes which are defined by the macro `define-compilation-mode'. This mechanism is available in the forthcoming Emacs 21.4 (and of course with current CVS-Emacs 21). ** Fixed Bugs *** Added a workaround for a bug in the custom-library of current release 21.3 of GNU Emacs which causes under certain circumstances the autom. option-upgrading-feature of ECB to fail. Same for the command `ecb-store-window-sizes'. Thanks for reporting this annoying bug and great help to Christoph Ludwig * Changes for ECB version 2.26 ** Improved the performance of the directories-buffer-display Reduced the need of completely rebuilding the whole directories-tree-buffer when just switching between buffers and the related directories are already expanded. This can dramatically increase the speed of the tree-buffer display when displaying the sources-files in the directories-buffer (see `ecb-show-sources-in-directories-buffer'). Thanks to Rob Walker for tracking down the performance bottleneck and supplying a first patch. ** Per default all mouse-actions in the special ECB-buffers are now triggered first after releasing the mouse-button and not when pressed as with previous ECB-versions. This is the standard behavior of Emacs and of most applications. But with the new option `ecb-tree-mouse-action-trigger' a user can switch back to the old behavior. As a side effect now the ECB-tree-buffers can be used during an active isearch - at least with GNU Emacs. Thanks to Markus Gritsch for pointing to this problem. ** ECB sets autom. temp-buffer-resize-mode rsp. temp-buffer-shrink-to-fit when needed. This modes are needed when a permanent compile-window is used because otherwise the correct sizing of the compile-window according to the settings in ecb-compile-window-temporally-enlarge and ecb-enlarged-compilation-window-max-height is not possible. After disabling the permanent compile-window or when deactivating ECB the original settings of these modes are restored! ** Some regexp-options has been changed to regexp-list-options: `ecb-excluded-directories-regexp' --> `ecb-excluded-directories-regexps' `ecb-source-file-regexps' --> `ecb-source-file-regexps' `ecb-exclude-parents-regexp' --> `ecb-exclude-parents-regexps' All these options now accept (and require) a list of regexps instead of exactly one big regexp. This allows easier regexp-definition and follows now the way Emacs goes with other regexp-options like `same-window-regexps' or `special-display-regexps' which are also lists of regexps. ECB autom. upgrades your old settings to the new option-types rsp. also -names (if the option has been renamed). ** New option `ecb-history-exclude-file-regexps' for excluding certain files from being displayed in the history-buffer of ECB. Currently the filenames TAGS and semantic.cache are excluded per default. Thanks to Javier Oviedo for the suggestion. ** ECB now displays read-only sourcefiles in a different face. For this a new option and a new face are offered both named `ecb-source-read-only-face' (default: italic) which is used to display source-files in the sources-tree-buffer (or in the directories-tree-buffer if `ecb-show-sources-in-directories-buffer' is not nil) if the file is read-only. ** Fixed bugs *** Fixed merging faces with XEmacs. Now options like `ecb-type-tag-display' (merges own ECB-faces to already by semantic faced tags) work also correct with XEmacs. ECB-versions prior to 2.26 has not merged the ECB-faces to the already applied faces of a text but instead replaced the applied faces with the ECB ones. Now all faces are merged. *** Now the command `ecb-expand-methods-nodes' and all the expand-* menu-entries in the popup-menu of the methods-buffer work for non-semantic-buffers too. *** Fixed a bug concerning `ecb-auto-expand-tag-tree-collapse-other'. Thanks to Javier Oviedo for pointing to the problem. *** Handles not existing source-paths in `ecb-source-path' correct. These paths are now ignored with a warning. * Changes for ECB version 2.25 ** More flexible sorting of the Sources- and the History-buffer *** `ecb-sort-history-items' has been renamed to `ecb-history-sort-method' and offers now the same choices as the already existing option `ecb-sources-sort-method'. *** Two new options `ecb-sources-sort-ignore-case' and `ecb-history-sort-ignore-case' which allow to ignore case when sorting the Sources- and/or the History-buffer. Thanks for suggestion to Markus Gritsch . Per default case is now ignored. ** New icons for parent-display in the Methods-buffer. Thanks to Markus Gritsch for contributing the icon-images. ** Fixed Bugs *** Fixed an annoying bug which results sometimes in an error "stack-overflow error in equal" when using `senator-try-expand-semantic' which is called when you use hippie-expand for example. Maybe the bug occured also in other situation but now this bug has been extirpated! *** Fixed a bug in the mechanism which prescanes directories for emptyness. Now a directory is checked if it is accessible before it is prescanned - otherwise the prescan could fail with an error. *** Fixed a bug in the autom. option-upgrading-mechanism. Thanks to Javier Oviedo for pointing to the underlying problem. * Changes for ECB version 2.24 ** Enhancements for the Methods-buffer *** Enhancements to the icon-display in the Methods-buffer **** New icon-images for enumerations and abstract/virtual tags (interfaces are currently displayed with the icon for abstract classes - at least til someone provides special icons ;-) **** Some slightly fixes in the other icons - e.g. a better display with a not-white background **** Static and abstract tags are no longer underlined rsp. italic when icons are displayed because this is somehow "tautological" when a special static rsp. abstract icon is already displayed. *** New option for switching on/off distinction of function-prototypes from the real function-definitions: `ecb-methods-separate-prototypes'. This is useful for C++ and C because these languages distinct between a method-prototype (rsp. function-prototype for C) and the method (rsp. function for C) itself. If this option is not nil (default) then ECB separates the prototypes from the real function/methods in the Methods-buffer. *** New "current-type"-filter for the Methods-buffer In languages which have types (like Java or C++) this filter displays only the current type and all its members \(e.g. attributes and methods). The current-type is either the type of the current tag in the source-buffer or the type of the current node in the methods-buffer. If ECB can not identify the current type in the source-buffer or in the methods-window then nothing will be done. ** Now directories are prescanned for emptyness so they are displayed as empty in the directories-buffer even without user-interaction (i.e. in previous ECB-versions the emptyness of a directory has been first checked when the user has clicked onto a directory). ECB optimizes this check as best as possible but if a directory contains a lot of subdirectories which contain in turn a lot of entries, then expanding such a directory or selecting it takes of course more time as without this check - at least at the first time (all following selects of a directory uses the cached information if its subdirectories are empty or not). Therefore this feature can be switched of via the new option `ecb-prescan-directories-for-emptyness'. ** Fixed Bugs *** Fixed some newly introduced bugs which made ECB 2.23 incompatible with semantic 1.4. *** Fixed a bug which changed the highlighted directory even after just expanding or collapsing other directories. *** Fixed two small bugs which have influenced `ecb-create-new-layout' * Changes for ECB version 2.23 ** New cedet1.0beta2 is supported. ** Enhancements for the Methods-buffer *** The look&feel of the Methods-buffer is now much nicer because it has been polished with a lot of new icons. ECB contains now a lot of new icons for displaying the Method-buffer as pretty and professional as possible. The new default-value of the option `ecb-tree-image-icons-directories' points autom. to the new icon-images. Thanks a lot to Markus Gritsch for providing these new icons. To use this you should reset the option `ecb-tree-image-icons-directories' to the new default-value if you have customized this option! You can disable this icon-display via the new option `ecb-display-image-icons-for-semantic-tags' if you do not like the new icons. *** New feature for applying default tag-filters for certain files. The new option `ecb-default-tag-filter' allow to define default tag-filters for certain files which are applied automatically after loading such a file into a buffer. The possible filters are the same as offered by the command `ecb-methods-filter' and they are applied in the same manner - the only difference is they are applied automatically. The files can be specified on a combined major-mode- and filename-regexp-basis. Usage-example: This can be used to display for outline-mode files (e.g. NEWS) in the Methods-buffer only the level-1-headings by defining a regexp-filter "^\* .*" (see the default-value of this new option). *** New keybindings and commands for faster applying certain tag-filters. Here are the new bindings: [C-c . fr] --> `ecb-methods-filter-regexp' [C-c . ft] --> `ecb-methods-filter-tagclass' [C-c . fp] --> `ecb-methods-filter-protection' [C-c . fn] --> `ecb-methods-filter-nofilter' [C-c . fl] --> `ecb-methods-filter-delete-last' [C-c . ff] --> `ecb-methods-filter-function' *** The popup-menu contains now mode-dependend tag-filter entries. This means for sources not supported by semantic no protection- or tag-class filters will be offered. And for semantic-supported sources exactly these tag-classes are offered the semantic-parser for the current major-mode offers. Same for the command `ecb-methods-filter'. For example texi-sources can only be filtered by the tag-classes "Definitions" and "Sections" and java-sources can be filtered by "Methods", "Variables", "Classes" etc. In general the semantic-variable `semantic-symbol->name-assoc-list' is used to get the right tag-classes. *** The option `ecb-show-tags' is now defined on a major-mode-basis. This means you can have different settings for each major-mode. ECB autom. upgrades your old setting to the new option-type. *** Distinction between functions and function-prototypes in the Methods-buffer This is for example useful for C++ and C because these languages distinct between a method-prototype (rsp. function-prototype for C) and the method (rsp. function for C) itself. The new default value of `ecb-show-tags' displayes per default the methods as flattened and the method-prototype as collapsed when opening a C- or C++-buffer. ECB autom. updates your old setting of this option to the new default value. ** The command `ecb-toggle-layout' now has a prefix-argument: If this optional argument is not nil (e.g. if called with a prefix-arg) then always the last selected layout was choosen regardless of the setting in `ecb-toggle-layout-sequence'. The last selected layout is always that layout which was current direct before the most recent layout-switch. So now a user can switch to another layout via `ecb-change-layout' [C-c . l c] and always come back to his previous layout via [C-u C-c . l t]. ** Better internal self-monitoring of ECB ECB now monitors itself when Emacs is idle, ie. it monitors if all necessary ecb-functions are still member of the hooks `post-command-hook' and `pre-command-hook'. This is because Emacs resets these hooks to nil if any of the contained hook-functions fails with an error-signal. The ECB-hook-functions are error-save but if any of the "other" hook-functions of these hooks fail then the ECB-hooks would also have been removed from these hooks. The new monitoring-mechanism checks this periodically and re-adds the ECB-hooks if necessary. ** New option group for the integrated speedbar and one new option: The new hook `ecb-speedbar-before-activate-hook' runs directly before ECB activates the integrated speedbar. For example this hook can be used to change the expansion-mode of the integrated speedbar via `speedbar-change-initial-expansion-list'. Example: (speedbar-change-initial-expansion-list "buffers"). ** Added a new section in the info-manual which describes how desktop.el can be used best in combination with ECB. This has been done because some conflicts have been reported. See the "Conflicts"-Chapter in the info-manual. ** Fixed bugs *** Double-clicking the mouse-1-button now works with integrated speedbar. *** Fixed two small bugs in the advice of `display-buffer': One bug occured when called for one of the special ECB-buffers. The other bug has not preserved the current-buffer when called for a buffer in the sense of `ecb-compilation-buffer-p' and a hidden compile-window is shown by display-buffer to display this buffer. The latter one for example has prevented the ant-server of JDEE from working properly. *** Fixed a bug so now always the correct directory in the directories-buffer is higlighted. * Changes for ECB version 2.22 ** New nifty feature for filtering the tags displayed in the Methods-buffer You can filter by regexp, protection, tag-class etc. See the new command `ecb-methods-filter' (bound to [C-c . f m] and the new option `ecb-methods-filter-replace-existing' for getting all details. Filters can be layered filters, i.e. you can apply filters on top of already applied filters: An example of 3 combined filters would be: Display only all public methods having the string "test" in its name. The modeline of the Methods-buffer always displays the topmost filter. But you can see all currently applied filters by moving the mouse over this section of the modeline: The filters will be displayed as help-echo. The new functionality is also completely available via the popup-menu of the Methods-buffer. Currently tags of class 'type can not be filtered out, because especially in OO-languages like Java or C++ this makes only less sense because if the class is filtered out then no filter can be applied to its members like methods or attributes. These tag-filters can also applied to sources which are not supported by the semantic-parser but "only" by imenu or etags. But because for these sources not all information are avaiable the protection- and tag-class filter can not used with such "non-semantic"-sources. ** All tree-buffer filters are now guarded against filtering out all tags. Each filter which a user can apply to the sources-, methods- or history-buffer is now guarded against filtering out all nodes by accident, ie. if a filter would empty the whole tree-buffer then this filter will be autom. unwinded. ** Much smarter mechanism to highlight the current tag in the methods-buffer. Previous versions of ECB have always fully expanded the whole tree in the Methods-buffer if the current tag in the source-buffer was not visible in the current tree - e.g. because the variables-bucket was collapsed or the containing type of a tag (e.g. the class of a method) was collapsed. So in most cases much more was expanded as needed to make the current tag visible. The mechanism of ECB 2.22 only expands the needed parts of the tree-buffer to make the related node visible: First we try to highlight the current tag with current expansion-state of the Methods-buffer. If the node is not visible so the tag can not be highlighted then we go upstairs the ladder of type-tags the current tag belongs to (e.g. we expand successive the nodes of the whole class-hierachy of the current method-tag until the related node becomes visible). If there is no containing type for the current tag then the node of the tag is probably contained in a toplevel-bucket which is currently collapsed; in this case we expand only this bucket-node and try highlighting again. Only if this has still no success then we expand the full tree-buffer and try to highlight the current tag. There is also a new option `ecb-auto-expand-tag-tree-collapse-other': If this option is set then auto. expanding the tag-tree collapses all not related nodes. This means that all nodes which have no relevance for the currently highlighted node will be collapsed, because they are not necessary to make the highlighted node visible. This feature is switched off by default because if always collapses the complete Methods-tree before the the following highlighting of the node for the current tag expands the needed parts of the tree-buffer. ** The popup-menus can now be nested into 4 levels of submenus. In general there could be an infinite depth of nesting but it makes no sense - if possible at all - to define infinite nested defcustom-types. So there is a limit of 4 levels until a user asks for more - then this wish can be satisfied during 1 minute: Just increase the value of the `ecb-max-submenu-depth' before loading ECB. This enhancement affects the four options with name `ecb-*-menu-user-extension'. ** The indication for ECB in the minor-mode is now hidden when the ECB-windows are visible because in this case the activity of ECB is quite obvious. When the ECB-windows are hidden the the value of `ecb-minor-mode-text' is displayed in the modeline. ** Compatibility enhancements *** Cause of the fixed bugs the compatibility for `bs-show' has increased when the buffer-selection should be displayed in the permanent compile-window. ** Fixed Bugs *** Fixed a bug preventing the native Windows-port of XEmacs from working. *** Makes the behavior of adviced `display-buffer' fully compatible to the original version for all buffers which are neither ecb-tree-buffer nor compilation-buffers in the sense of `ecb-compilation-buffer-p'. These "source-buffers" are now also handled correctly in all situations. *** Fixed a small bug in `ecb-toggle-compile-window-height'. This bug has influenced the behavior of `display-buffer' when called from programs for "compilation-buffers". *** Fixed a bug related to the speedbar-integration. This bug complained "Can not switch buffer in dedicated window" when the intergrated speedbar-buffer was selected and the user tries to open a file or to jump to a tag. *** Fixed a bug for the special ECB-modeline-menu for the XEmacs-modelines. Now only in the special ECB-tree-buffer a special ECB-modeline-menu is bound to mouse-3, all other buffers display the standard modeline-menu of XEmacs. *** Fixed a bug which occurs with XEmacs in combination with func-menu. But there are still some incompatibilities between ECB and func-menu. So the recommendation is to disable func-menu-support when using ECB. Normally using func-menu makes no sense in combination with ECB because ECB provides the same and even more informations as func-menu - so func-menu is redundant ;-) * Changes for ECB version 2.21 ** Advice for `balance-windows' so only the edit-windows are balanced. Thanks to David Ishee <782zp6a02@sneakemail.com> for suggestion. ** New option `ecb-ignore-display-buffer-function' Per default the adviced version of `display-buffer' ignores the value of `display-buffer-function' when called for the ECB-frame. If this variable should not be ignored then the function of `display-buffer-function' is completely responsible which window is used for the buffer to display - no smart ECB-logic will help to deal best with the ECB-window-layout! You can define if and when `display-buffer-function' should be ignored: Always (default), when a compile-window is used or never. ** Compatibility enhancements In general the current layout-engine of ECB is so flexible that there should be no - or at least very few - conflicts between ECB and any other elisp-library - even when another lib is running during the ECB-windows are visible. *** Commands like `bs-show' of the library bs.el now work correctly with ECB *** Xrefactory works even when all ECB-windows are visible (see Fixed Bugs). *** Applications like Gnus or BBDB run withing the ECB-frame without conflicts - even when the ECB-windows are visible. *** Commands using `Electric-pop-up-window' now work correctly with ECB. This ensures that the electric-* commands (e.g. `electric-buffer-list' or `electric-command-history') work well with ECB. If the related "display-buffer" of such an electric command is a "compilation-buffer" in the sense of `ecb-compilation-buffer-p' then this buffer will be displayed in the compile-window of ECB - if there is any shown. ** For XEmacs the package fsf-compat is no longer required by ECB. But it is still necessary to check if fsf-compat is required by the packages semantic, eieio and speedbar which in turn are required by ECB. ** Fixed Bugs *** Fixed a fatal bug which prevents `other-window' from working with arguments < 0. This bug has also prevented Xrefactory from working correct when ECB is active - see compatibility enhancements above. *** If point stays in the current source-buffer on a function argument then still ECB highlights the function in the Methods-buffer. *** ECB now uses `compilation-window-height' correctly when set buffer-local as possible with latest CVS-version of GNU Emacs 21. *** Fixed a bug in `ecb-sources-filter' and `ecb-history-filter'. * Changes for ECB version 2.20 ** New customization group "ecb-most-important" This group centralizes the most important options of ECB in one group which is also offered by the "Preferences" submenu ob the ECB-menu. These are options you should at least know that they exist. ** The keybinding for the online-help has changed from [C-c . o] to [C-c . h] This has been done because the key [C-c . o] is needed for the new command `ecb-toggle-scroll-other-window-scrolls-compile'. ** The options `ecb-major-modes-activate' and `ecb-majors-mode-deactivate' have been replaced by one new option `ecb-major-modes-show-or-hide'. The purpose of the old option is now quite out-of-date because: - ECB supports window-managers like winring.el or escreen.el very well, - as of version 2.20 ECB has no restrictions about the number of edit-windows and - the new option simplifies things a lot. ** The restriction of only two edit-windows has been gone! *** Beginning with this version 2.20 there are no restrictions about the window-layout in the edit-area of ECB. This means you can split the edit-area of ECB in as many windows as you like. The split-state of the edit-area will be preserved when toggling the visibility of the ECB-windows and even between activation and deactivation of ECB. Deleting of certain edit-windows will never destroy the special ECB-windows or the compile-window. Just work with the edit-area of ECB as if it would be an extra frame! *** Option `ecb-split-edit-window' has been renamed in `ecb-split-edit-window-after-start' because this new name reflects much better the purpose of this option. In addition there is offered a new value 'before-deactivation which is also the new default value. This new value preserves the full state between activations of ECB, i.e. the visibility of the ECB-windows, the visibility of a compile-window and also the full split-state of the edit-area. ECB auto. upgrades your setting! *** Compile-window can now be displayed even when the ECB-windows are hidden. So now you can have the same compile-window functionality when the ECB-window are hidden as when the ECB-windows are visible. The state of the compile-window will be preserved when toggling the ecb-windows or when maximizing one ecb-windows! So you have the advantage of one special window for all help-, grep or compile-output also when the ecb-windows are hidden - a window which will not be deleted if you call `delete-other-windows' (bound to [C-x 1]) for one of the edit-windows. *** The option `ecb-primary-mouse-jump-destination' has been renamed to `ecb-mouse-click-destination' and has also changed its default value to 'last-point. ECB autom. upgrades the old settings. *** New keybinding [C-c . g l] for selecting the last selected edit-window. Also available via the ECB-menu. The command is `ecb-goto-window-edit-last'. *** Option `ecb-other-window-jump-behavior' has been renamed to `ecb-other-window-behavior' and has also two new allowed values: 'smart (the new default) and an arbitrary function-symbol. With the latter one the user can define his own other-window-behavior and the former one chooses in a smart and intuitive way the "other window" for going to it via `other-window' or for scrolling it via one of the "scroll another window"-functions (e.g. `scroll-other-window'). Thanks to John S. Yates, Jr. for suggesting the new smart behavior. ECB autom. upgrades the old value of `ecb-other-window-jump-behavior' to the new option-name. *** New option `ecb-scroll-other-window-scrolls-compile-window' and new command `ecb-toggle-scroll-other-window-scrolls-compile' (bound to [C-c . o]). If this new option is nil then ECB chooses very smart and intuitive the window which will be scrolled by commands like `scroll-other-window' (see documentation of the the option `ecb-other-window-behavior'). But sometimes the user wants to scroll the compile-window from another window. With this new command the user can fest and easy toggle the behavior ECB chooses another window for scrolling. *** Higher compatibility of ECB with other packages Without the 2-edit-window-restriction ECB is now more compatible with other packages. For example the package calculator.el can now also being used without setting `calculator-electric-mode' to not nil - regardless in how many edit-windows the edit-area of ECB is splitted. Also the package bs.el (command `bs-show') benefits from the new layout-flexibility. As of ECB-version 2.20 there should be no conflicts between this package and ECB. ** Enhancements to the tree-buffers of ECB *** Enhancements to the popup-menus of the tree-buffers **** All popup-menus of the tree-buffers can be used with the tmm-library The already existing command `tree-buffer-show-menu-keyboard' (bound to [M-m] in every tree-buffer of ECB) accepts now a prefix argument. If called with a prefix-argument (hit [C-u M-m]) then the popup-menu is displayed with the tmm-mechanismus (like the Emacs-[menu-bar] is displayed when `tmm-menubar' is called). Thanks for suggestion to Yvonne Thomson . **** Select an edit-window via popup where a source should be opened or a token should be displayed. **** The popup-menus can be dynamically extended. See the new options `ecb-directories-menu-user-extension-function', `ecb-sources-menu-user-extension-function', `ecb-methods-menu-user-extension-function' and `ecb-history-menu-user-extension-function'. **** All popup-menu-commands respect the setting of the option `ecb-mouse-click-destination' (formerly known as `ecb-primary-mouse-jump-destination' - see above). *** ECB supports the default modeline-mechanisms for deleting other windows. GNU Emacs binds [mouse-2] in its modeline to `delete-other-window'. ECB now supports this mechanism by binding a toggle-command to [mouse-2] in the modeline of each tree-buffer: If all ECB-windows are visible then this command maximizes the current tree-window and if current tree-window is maximized all ECB-windows are displayed again. XEmacs binds a popup-menu with some window commands to [button-3] in its modeline. ECB supports this mechanism by replacing this menu by a menu which offers exactly 2 commands: Maximizing current tree-window and displaying all ECB-windows. *** Now all commands for selecting a tree-buffer work even when this buffer is not visible because another tree-buffer is maximized. If the tree-buffer is contained in the layout then the layout is redrawn with all its tree-buffers visible so that tree-buffer can be selected. Same for maximizing. An example for such a command is `ecb-goto-window-methods'. *** New option `ecb-maximize-ecb-window-after-selection'. Automatic maximizing of a tree-window after selecting it. Thanks for suggestion to John S. Yates, Jr. . *** Changes to the image-icons of the tree-buffers **** All image-files have been renamed from .xpm to ecb-.xpm. This was necessary because the icons for "open" and "close" in Emacs toolbar got superseeded by ECB's icons for "open" and "close". The problem was, that ECB was using the same names for the icon files "open.xpm" and "close.xpm" as emacs toolbar does. This problem occurs if the image-directory of ECB is contained in the `load-path' which is when ECB is installed in the site-lisp directory of Emacs with the default subdirs.el of Emacs which adds automatically all subdirectories to the load-path (and therefore also subdirectories which does not contain elisp-files but only images - btw: not really smart;-). Thanks to Roland Schaeuble for pointing out that. **** Added all image-icons in a 10-point height. Thanks to Nick Cross for sizing down the images. ** New default-value for `ecb-post-process-semantic-taglist'. Now for buffers with major-mode `c-mode' all function-prototypes are filtered out. For example this is useful for editing C files which have the function prototypes defined at the top of the file and the implementations at the bottom. This means that everything appears twice in the methods buffer, but probably nobody wants to jump to the prototypes, they are only wasting space in the methods buffer. Of course in C-header-files function-prototypes will be displayed! Thanks for suggestion and a first implementation to Rob Walker . ** Changes for the compile-window *** The command `ecb-toggle-compile-window' now displays a compile-window even if the option `ecb-compile-window-height' is nil. This is a shortcut for customizing this option via the customize-feature if you just want displaying a compile-window for the current Emacs-session. In this situation ECB asks for the height of the compile-window, sets this height as new value of `ecb-compile-window-height' and displays the compile-window. *** New option `ecb-change-layout-preserves-compwin-state'. Changing the layout preserves now the state of the compile-window if this option is not nil. This is for example useful if the user toggles between several layouts and wants to preserve the hidden-state of the compile-window. Thanks to John S. Yates, Jr. for suggestion. *** Adviced `delete-window' and `delete-other-windows' handle compile-window. The former one hides the compile-window if called in or for that window whereas the latter one hides the compile-window if called in or for an unsplitted edit-window. Thanks to John S. Yates, Jr. for the suggestion. ** New option `ecb-activation-selects-ecb-frame-if-already-active'. See the docstring for more details. Thanks for suggestion to Jeff Jensen ** The command `ecb-redraw-layout' can be called with prefix-argument(s). Called with ONE prefix-argument the command behaves as with ECB-versions < 2.20, i.e. redrawing the full layout regardless of the current visibility-state of the ecb-windows or the compile-window. Called without a prefix-arg this command now preserves the state of the ecb-windows as well as the state of the compile-window. Called with TWO prefix-args means an emergency-redraw (see documentation of `ecb-redraw-layout'). ** New command `ecb-display-news-for-upgrade'. ECB autom. displays after an upgrade a short summary of the most important NEWS. With the new command you can do this also on demand. ** Fixed Bugs *** Adviced `display-buffer' handles `same-window-buffer-names' and `same-window-regexps' correctly. *** Fixed a bug preventing tree-buffers with expand-symbol "before" to work *** Fixed a bug in the adviced version of `other-window'. Now it works correctly also when a durable compile-window is set but currently hidden. *** Fixed a bug when scrolling a window from within the minibuffer. For example this bug has prevented scrolling the *Completion* buffer from within the minibuffer. Now `minibuffer-scroll-window' is set correctly. *** Toggling the compile-window has not worked when `ecb-compile-window-height' has not been saved for future sessions. This is fixed now. *** `ecb-cycle-through-compilation-buffers' works with hidden compile-window. *** Fixed a bug when an ECB-window was maximized and the user has stored sizes for this layout. *** Fixed a bug in `ecb-major-modes-activate' and `ecb-major-modes-deactivate' *** Fixed a bug in the handling of the option `ecb-kill-buffer-clears-history' *** Fixed a bug which prevents some older version of XEmacs 21.4 working well. For XEmacs 21.4.6 a bug was reported which causes this XEmacs-version to fail when `compile' or `grep' is called. The reason for this was that these old versions of XEmacs 21.4 contain versions of `display-buffer' and/or `get-frame-for-buffer' which do not have the fourth argument SHRINK-TO-FIT. Now ECB has fixed this and handles correctly the option `temp-buffer-shrink-to-fit' and all shades of displaying and compiling buffers even for these versions of XEmacs. * Changes for ECB version 2.11 ** Using semanticdb to jump to type-tags defined in other files. In OO-languages like CLOS, eieio and C++ there can be type-tags in the method-buffer which are somehow virtual because there is no definition in the current source-file. But such a virtual type collects all its outside defined members like methods in C++ which are defined in the *.cc file whereas the class-definition is defined in the associated header-file. ECB uses semanticb to open the definition-file of such a tag and to jump to the definition of this tag. Same for parent-tags in the methods-buffer. This feature can only work correctly if semanticdb is well configured! ** New option `ecb-ignore-special-display' The options `special-display-buffer-names', `special-display-regexps' and `special-display-function' work as expected. Per default this in only true, when no durable compile-window is used (see option `ecb-compile-window-height'), i.e. with a durable compile window the special-display-options are ignored per default. But this behavior can be changed with the new option `ecb-ignore-special-display'. Thanks to Rob Walker for a first suggestion. ** Better reporting if there are errors during ECB-startup ** Fixed bugs *** Clicking onto nodes with positionless semantic-tags as data doesn't fail *** Non-semantic sources (e.g. Perl, TeX) work when cedet 1.0 is loaded *** Fixed the versioning of ECB so the autom. upgrade works * Changes for ECB version 2.01 ** Prepared for the new semantic 2.0 beta (contained in the cedet 1 beta) *** New naming convention Forthcoming semantic 2.0 (part of the new cedet-library) introduces a new naming convention. Here is the relevant part of the semantic 2.0 NEWS-file: token - Refers to a lexical analyzer production. stream - A list of tokens tag - Refers to a datastructure created by a grammar to represent something in a language file table - A hierarchical list of tags. tag-class - A tag may represent a function, data type, or variable. parse - Run a source file through a parser. Normally there is no need for ECB users to bother with all details of semantic naming conventions but for the sake of consisteny between semantic and ECB the ECB-package has renamed all its variables and functions from "token" to "tag". Therefore also all options which contain "token" in their name have been renamed by replacing "token" with "tag". See RELEASE_NOTES for a list of this options. ECB autom. upgrades all old-values of these options to the new options! There is nothing to do for you. *** ECB works with new semantic 2.0 which is shipped within cedet 1.0 ** Overhaul of the display-layer and -handling of the tree-buffers *** Now there are 3 different styles available * Image: Looks very nice and modern - just give it a try or see the screenshots-section at http://ecb.sourceforge.net * Ascii with guide-lines: Drawing the trees with ascii-symbols * Ascii without guide-lines: This is the style of ECB <= 1.96 For details and a visualization of these different styles see the new option `ecb-tree-buffer-style' (replaces the old option `ecb-tree-use-image-icons'). Especially the new image-style was inspired by the library tree-widget.el written by David Ponce . Also some images shipped with ECB are "stolen" from this library. *** No-leaf-tree-nodes with currently no subnodes are displayed with [x] An example are directories in the Directories tree-buffer which have currently no subdirectories. Leafs like source-files or methods are of course handled as leafs and not as currently empty nodes. *** Fixed some inconsistencies in expanding, collapsing and selecting nodes *** Moving all options related to the tree-buffer-style or -handling to the new customize-group "ecb-tree-buffer". ** Completely rewritten popup-menu mechanism. *** Now sub-menus are allowed for all popups To give a better lucidity of the popup-menus of the tree-buffers these menus can now being arranged in sub-menus. The default values now already use sub-menus. So if you have added menu-entries to one of the options `ecb-directories-menu-user-extension', `ecb-sources-menu-user-extension', `ecb-methods-menu-user-extension' or `ecb-history-menu-user-extension' ECB resets these options to the new defaults of ECB and adds at the top your "old" personal entries. This comes because the type of these options has changed. Thanks for general suggestion to Ole Arndt . *** Added new defaults to `ecb-directories-menu-user-extension' Three new entries "CVS status", "CVS examine" and "CVS update" in a new sub-menu "Version control" for running CVS-commands against the directory. These menu-entries are added as new default values to `ecb-directories-menu-user-extension' so a user can delete or change them if he does not use CVS but another revision-tool (e.g. Clearcase). Thanks for suggestion and first implementation to Ole Arndt . *** Added new defaults to `ecb-sources-menu-user-extension' One new sub-menu "Version control" with some senseful commands. See also new default for the option `ecb-directories-menu-user-extension'. Same is added to the `ecb-history-menu-user-extension'. Thanks for suggestion and first implementation to Ole Arndt . ** Possibility to define which types should be expanded at file-open-time Semantic groups types into different type-specifiers. Current available type-specifiers are for example "class", "interface", "struct", "typedef", "union" and "enum". With the new option `ecb-type-tag-expansion' you can specify on a major-mode-basis which type-specifiers should be expanded at file-open-time and which not. So for example in C++ it could be senseful not to expand the types with a type-specifiers "typedef", "struct" or "enum" (see the default-value of this option). ** Adding a filter-feature to the Sources- and the History-buffer Now a filter can be applied to the Sources- and/or History-buffer which desides which entries are displayed in these buffers. See the new commands `ecb-sources-filter' (bound to [C-c . fs]) and `ecb-history-filter' (bound to [C-c . fh]) and the new entries for the popup-menus for these buffers. In the sources-buffer each directory has its own filter. The currently applied filter is displayed in the modeline of that tree-buffer with the new face `ecb-mode-line-prefix-face' (s.b.) ** Changes related to the modelines of the tree-buffers *** Added faces to the mode-lines of the ECB-tree-buffers. See the three new options `ecb-mode-line-win-nr-face', `ecb-mode-line-prefix-face' and `ecb-mode-line-data-face' and also they related (and equally named) new faces. *** Moved all options related to the modelines in the new customize-group "ecb-mode-line". ** No window-restrictions if the ECB-windows are hidden If the special ECB-windows are hidden (e.g. by `ecb-toggle-ecb-windows') then there are no restrictions about the window-layout of the ecb-frame: The frame can be splitted in any arbitrary windows. All adviced functions behave as their originals. So the frame can be used as if ECB would not be active but ECB IS still active in the "background" and all ECB-commands and all ECB-keybindings can be used. Of course some of them doesn't make much sense but nevertheless they can be called. Therefore it should be enough to hide the ECB-windows to run other Emacs-applications which have their own window-layout-managing. There should be no conflicts. But nevertheless the most recommended method for running ECB and other applications (e.g. xrefactory, Gnus etc.) in the same frame is to use a window-manager like winring.el or escreen.el! ** Ediff runs per default in the ECB-frame. Now ediff can run per default in the ECB-frame because ECB ensures that all special ECB-windows are hidden before ediff sets up its own window-layout. ECB also restores exactly the "before-ediff" window-layout of the ecb-frame See new option `ecb-run-ediff-in-ecb-frame'. ** More flexible directory-caching with new `ecb-cache-directory-contents-not' ** New option `ecb-advice-window-functions-signal-error' Now the adviced window functions of `ecb-advice-window-functions' do not signal per default an error if called in situations which are not allowed - they simple do nothing. An example is calling `delete-window' in a special ecb-window or in the compile-window; if this new option is nil then nothing is done otherwise an error is signaled. If you want the old behavior of signaling an error just set this new option to not nil. ** Fixed Bugs *** When the special ECB-windows were hidden and a durable compile-window was set then ECB shows the special ECB-windows when a temp-buffer (e.g. *Help*-buffers) has been displayed. This annoying behavior is fixed. *** XEmacs has not added the ECB-menu to the menubar of that buffers which are already alive while activating ECB. On the other side XEmacs has not removed the ECB-menu from the menubar for all living buffers after deactivating ECB. Both of these two bugs are fixed now. *** JDEE-dialogs now work correctly. JDEE offers sometimes "dialogs" where the user can choose among several options. These "dialogs" now work correctly regardless if a durable compile-window is used or not. *** A bug in displaying the tree-buffers in a different font or font-height * Changes for ECB version 1.96 ** ECB can work together with the window-managers escreen and winring This allows to run applications like Gnus, VM or BBDB in the same frame as ECB! See the new lib ecb-winman-support.el and read the section "Window-managers and ECB" in the chapter "Tips and tricks" in the info-manual of ECB. Thanks to Johann "Myrkraverk" Oskarsson who has reported some bugs related to escreen and has therefore motivated a lot to add support for the well known window-managers escreen and winring. ** ECB can display the window-number in the modeline of the special windows. The left-top-most window in a frame has the window-number 0 and all other windows are numbered with increasing numbers in the sequence, functions like `other-window' or `next-window' would walk through the frame. This allows to jump to windows by name as described at the Emacs-Wiki http://www.emacswiki.org/cgi-bin/wiki.pl?SwitchingWindows. See the new option `ecb-mode-line-display-window-number'. Currently this feature is only available for GNU Emacs 21.X, because neither GNU Emacs < 21 nor XEmacs can dynamically evaluate forms in the mode-line. Thanks to Johann "Myrkraverk" Oskarsson for suggesting this. In addition the already existing options `ecb-mode-line-data' and `ecb-mode-line-prefixes' are now more flexible and are now able to define special modelines not only for the 4 builtin ECB-tree-buffers but for every special ECB-buffer. ECB will autom. upgrade the old values of these options as best as possible to their new types! ** Much better support of the ECB-compile-window *** General overhaul for displaying buffers in the ECB-compile-window. The whole mechanism has been rewritten so now using a durable compile-window is much safer and works as well as without one. Now all buffers displayed with `display-buffer' are checked if they are "compilation-buffers" in the sense of the function `ecb-compilation-buffer-p' and then displayed in the compile-window of ECB. Especially temp-buffers displayed with `with-output-to-temp-buffer' (e.g. *Help*-buffers) are now much better supported. Simply said: All buffers for which `ecb-compilation-buffer-p' says t are now *always* displayed in the compile-window (if there is any) with complete consideration of Emacs-options like `compilation-window-height', `temp-buffer-max-height', `temp-buffer-resize-mode' (GNU Emacs), `temp-buffer-shrink-to-fit' (XEmacs) etc. All other buffer not. *** New layout-option `ecb-compile-window-width'. Thanks for suggestion to John S. Yates, Jr. *** New layout-option `ecb-compile-window-prevent-shrink-below-height' *** Better and more reliable eshell-integration. Now the compile-window fits always autom. to the output of the last eshell-command. *** All options related to the ECB-compile-window have been moved to the new customization-group "ecb-compilation" which is a subgroup of "ecb-layout". ** Safer handling of all adviced functions of ECB All ECB-advices are now active if and only if ECB is running. Just loading the ECB-library doesn't activate any ECB-advice! Also if there is an error during the activation-process of ECB then all advices are always disabled automatically. ** ECB can visit tokens in a smarter way *** Narrowing via popup-menu of the Methods-buffer includes now the documentation of the token if located outside of the token (e.g. Javadoc for Java). *** More flexible definition what to do after visiting a token via the Methods-buffer. See the new option `ecb-token-visit-post-actions' which now replaces the options ecb-highlight-token-header-after-jump', `ecb-scroll-window-after-jump' and `ecb-token-jump-narrow'. ** 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. See new option `ecb-display-default-dir-after-start'. ** ECB preserves the split-state of the frame after activation rsp. deactivation This is done if the already existing option `ecb-split-edit-window' has the new value t. ** New command `ecb-toggle-window-sync' for fast toggling between autom. synchronization of the ECB-buffers is switched on and off. ** The popup-menu of the Directories-buffer allows opening a dir with Dired. The Sources-Buffer offers the same for the current selected directory. In the History-buffer the directory of the selected file-buffer can be "dired". ** Now manually resizing of the ECB-windows is possible even if `ecb-fix-window-size' is not nil for current layout. Thanks for suggestion Massimiliano Mirra . Only relevant for GNU Emacs 21.X. ** ECB does not call any functions of the cl-library at runtime. ** Fixed Bugs *** Fixed all the file- and directory-commands in the popup-menus. Now the Directories- and Sources-buffers are autom. updated after creating rsp. deleting source-files or directories. *** Jumping to some tokens for Perl sources failed. This is fixed now. *** Now the buffer-names displayed in the History-window are always uptodate, even if file-buffers are killed/opened during hidden ECB-windows. *** Fixed a conflict between ECB and `tmm-menubar' (tmm.el) *** Fixed a lot of misspellings in the ECB-online-help and also in all comments and strings of the sources. *** Fixed a bug in `ecb-toggle-enlarged-compilation-window'. This function has been also renamed to `ecb-toggle-compile-window-height'. *** Fixed a bug in the layout-engine related to dedicated windows. Thanks to Johann "Myrkraverk" Oskarsson who helped to find this bug. *** Fixed some references in the info-manual of ECB. * Changes for ECB version 1.95.1 ** Now the ecb-windows can be "maximized", means all other ecb-windows are deleted so only the edit-window(s), and this maximized ecb-window are visible (and maybe a compile-window if active). This can be done either via the popup-menus of the ecb-windows or via calling `delete-other-windows' (bound to [C-x 1]) in one of the ecb-windows or via the new commands `ecb-maximize-window-*' where * stands for {directories, sources, methods, history, speedbar}. There is also a command `ecb-cycle-maximized-ecb-buffers'. *Note*: If there are byte-compiled(!) user-defined layouts - either created interactively by `ecb-create-new-layout' or programmed with the macro `ecb-layout-define' - then the file where these user-defined layouts are saved (see option `ecb-create-layout-file') must be re-byte-compiled with latest ECB version >= 1.95.1! If the user-defined layouts are not byte-compiled then there is nothing to do. ** Some default key-bindings have changed; see RELEASE_NOTES for details. ** All popup-menus of the ECB-tree-buffers can be opened via [Meta-m] ** Fixed bugs *** Clicking onto the image-icons of an integrated speedbar has failed for XEmacs. This comes from a bug in speedbar which is now fixed locally in ECB by advicing `dframe-mouse-set-point' if speedbar is integrated in the ECB-frame. * Changes for ECB version 1.95 ** ECB now displays the expand- and collapse symbols in the tree-buffers with image-icons - the same icons as speedbar uses. See the new option `ecb-tree-use-image-icons'. ** Adding hideshow to the popup-menu of the Methods-buffer. This popup-menu now offers two entries for hiding rsp. showing the block of that token in the Methods-buffer for which the popup-menu was opened. This is done with the hideshow.el library. Thanks to Christoff Pale for suggestion. ** Horizontal scrolling of the tree-buffers by clicking the edges of the modeline with mouse-1 or mouse-2. I.e. if you click with mouse-1 onto the left (rsp right) edge of the modeline you will scroll left (rsp. right) with the scroll-step defined in `ecb-tree-easy-hor-scroll'. This is only for GNU Emacs because XEmacs has hor. scrollbars. ** Changed default key-bindings: - C-c . r: `ecb-rebuild-methods-buffer' - C-c . lc: `ecb-change-layout' - C-c . lr: `ecb-redraw-layout' - C-c . lt: `ecb-toggle-layout' - C-c . lw: `ecb-toggle-ecb-windows' ** Starting ECB is now possible via the "Tools"-menu ** ECB now requires speedbar version 0.14beta1 or higher. An automatic requirements-check is done by ECB. This is because now ECB has three dependencies to speedbar-code: Integrating whole speedbar in the ECB-frame, using speedbar-logic to parse files with imenu or etags and using the icons of speedbar for the ECB-tree-buffers. ** Fixed bugs *** Now the "goto-window-..." menu-entries in the "ECB"-menu are working correct if a speedbar is integrated into the layout. *** Preventing etags-supported sources from being parsed (and saved) too often. * Changes for ECB version 1.94 ** Supporting of non-semantic-sources. *** Native parsing and displaying source-contents of imenu supported files *** Native parsing and displaying source-contents of etags supported files *** There are some new options like `ecb-process-non-semantic-files', `ecb-non-semantic-parsing-function' and `ecb-method-non-semantic-face' and one new face `ecb-method-non-semantic-face'. See new customize group "ecb-non-semantic"! ** Better speedbar integration into the ECB-frame *** Now speedbar can be used not only as replacement for the ECB-directory-browser in the directory-window but also instead of the sources- or the methods-buffer/window. See new option `ecb-use-speedbar-instead-native-tree-buffer' which replaces the old option `ecb-use-speedbar-for-directories'. *** Now speedbar can be integrated into an arbitrary layout in the same way as the other four special buffers (directories, sources, methods and history). See new example layout with name "left-dir-plus-speedbar". *** New option `ecb-directories-update-speedbar' which helps you to update a speedbar-window to the current selected directory of the ECB-directories-window. ** New option `ecb-compilation-predicates' for better specifying which buffers should be treated as compilation-buffers and therefore be displayed in the compile-window of ECB - if there is any. ** Better customizing of the mode-line of an ECB-tree-buffer. See the new option `ecb-mode-line-data'. ** Fixed bugs: *** Using "Add source path" from the popup-menu now doesn't open the Windows file-dialog-box onto Windows-systems because this would prevent this command from working. *** Smart arrowkey-navigation in the tree-buffers is now even smarter. Thanks to John Russel for suggestion. *** If ECB was activated with a layout which does not contain a directory-buffer then you got always an empty directory-buffer even after switching to a layout with a directory-buffer. This is fixed now. * Changes for ECB version 1.93 ** Fixed bugs: *** The adviced version of `other-window' now works correct too if a minibuffer-window is active. *** The commands of `winner-mode' are now only forbidden in the ECB-frame but work in any other frame. *** `scroll-all-mode' now works correct in other frames than the ECB-frame. *** Removed the annoying message "Partial reparsing..." ** Enhancements to the layout: *** Slightly better redrawing current layout especially if the layout contains a compile-window. *** ECB autom. displays hidden compile-window before starting a compilation. This is done if `ecb-compile-window-height' is not nil but the compile-window is currently hidden by `ecb-toggle-compile-window'. Of course this works also for grep and other compile-modes. Same for `switch-to-buffer' and `switch-to-buffer-other-window' if called for a compilation-buffer in the sense of `ecb-compilation-buffer-p'. *** `switch-to-buffer-other-window' now works more naturally within the ECB-frame, especially if a compile-window is used. *** `ecb-toggle-compile-window' now has a default key-binding: [C-c . \] *** Now also layouts with user-defined special ecb-windows can be created interactively. See the online-manual for further details. ** Enhancements to the tree-buffers: *** Now user-extensions can be added to the popup-menus of the tree-buffers. See new options `ecb-directories-menu-user-extension', `ecb-sources-menu-user-extension', `ecb-methods-menu-user-extension', `ecb-history-menu-user-extension'. *** The methods-buffer now has a popup-menu with senseful actions ** New option `ecb-sources-exclude-cvsignore' which allows to exclude files from being displayed in the sources-buffer if they are contained in a .cvsignore file. ** ECB now also works with buffers "online" extracted from archives. Buffers extracted from an archive in `tar-mode' or `archive-mode' are now correct handled as if they were normal file-buffers. This feature doesn't work with XEmacs cause of its tar-mode and arc-mode implementation which does not handle extracted files as normal files. ** ECB now checks at load-time if the required packages semantic and eieio are at least available - regardless of the needed version. If at least one of these packages is missing then ECB offers to download and install it. More details are available in the installation instructions. * Changes for ECB version 1.92.1 ** Fixed bugs: *** Fixing eating up a lot of CPU-power just for updating the menu- entries of current compilation-buffers in the ECB-menu. Now the mechanism is based on a idle-timer and a cache. Fixed with great testing-help by Dan Debertin *** Fixed a bug which always truncates lines in the ECB-windows regardless of the value of `ecb-truncate-lines' *** The upgrade library of ECB now explicitly requires and loads the library executable.el because Emacs 20.X does not autoload the function `executable-find'. *** `ecb-toggle-compile-window' now works also correct if called with a prefix arg. * Changes for ECB version 1.92 ** Fixed bugs: *** Fixed small bugs in the popup-menu of the history-buffer. *** Fixed some not working links in the FAQ. ** ECB now includes a file "ecb-autoloads.el" which contains all available autoloads of ECB. Therefore loading this file is enough. ** Enhancements to the layout *** The sizes of the ecb-windows can be fixed even during frame-resizing This new feature is only available with GNU Emacs 21.X. See new option `ecb-fix-window-size'. Suggested by Gunther Ohrner *** The command `ecb-store-window-sizes' can now also store fixed sizes. If called with a prefix arg then fixed sizes are stored instead of fractions of frame-width rsp. -height. *** The command `split-window' is now also adviced to work properly. ** Enhancements for the tree-buffers *** "Create Source" in the popup-menus now work also for non-java-files. *** ecb-truncate-lines can now be set different for each ECB-tree-buffer. *** Easy horizontal mouse-scrolling of the ECB tree-buffers. See new option `ecb-tree-easy-hor-scroll'. ** Added a command `ecb-jde-display-class-at-point' which displays the contents of the java-class under point in the methods-buffer of ECB. ** Renamed previous HISTORY file to NEWS and reformated it for outline-mode. * Changes for ECB version 1.91.1 ** Fixed bugs: *** Fixes a bug in the speedbar integration which prevented clicking onto a directory in the speedbar: Always after clicking onto a directory speedbar has re-synced itself to the directory of the current source-buffer in the edit-window. This bug is fixed, now directory navigation in the speedbar works. (Klaus) *** Fixes a bug in upgrading stored window-sizes from ECB 1.80 to ECB >= 1.90. Fixes also two bugs in `ecb-store-window-sizes' if default-values are used in `ecb-layout-window-sizes' or if ecb-windows have frame-height as height (rsp. frame-width as width) . (Klaus) *** Fixed a bug in the navigation-history of ECB which sometimes has prevented that a user can open files from the sources/history buffer or clicking onto tokens in the method-buffer. Now the back-forward-navigation works stable. (Klaus) ** Enhanced the downloading feature of ECB *** Fixed a bug in the downloading feature of ECB. (Klaus) *** Now ECB autom. checks at the download sites which versions are available. With the new option `ecb-download-package-version-type' you can define which types of version you allow to download (only stable, stable and betas or stable, betas and alphas); see related section in the online-manual! (Klaus) *** New command `ecb-download-semantic' for easy getting latest semantic versions. (Klaus) * Changes for ECB version 1.90 ** The website of ECB has moved from http://home.swipnet.se/mayhem/ecb.html to http://ecb.sourceforge.net. Maintainance has switched from Jesper Nordenberg to Klaus Berndl. ** Fixed bugs: *** Fixed an annoying bug which results in an error "Wrong type argument: integer-or-marker-p nil)" after a full buffer reparse. ECB 1.80 has repaired its internal state but nevertheless the user had to re-click on the same token after this error to really jump to a token. With ECB 1.90 this bug has been gone (Klaus). *** Fixed a small bug in `ecb-add-all-buffers-to-history': If `ecb-sort-history-items' is nil then now the most recently used buffers are added to the top of the history, the seldom used buffers at the bottom. Thanks to Stefan Reichör ! (Klaus). *** Fixed some bugs concerning the eshell-integration (Klaus): **** Synchronizing does not set the mark anymore **** No longer synchronizing after every command if current source resides in the HOME directory. **** Redrawing the layout preserves the eshell-buffer in the compile-window. **** Standard emacs-hooks are not clobbered with ecb-eshell-functions if ECB is not active. ** General enhancements: *** Now ECB displays at every start a "Tip of the day" in a dialog-box. This can be switched off with option `ecb-tip-of-the-day'. There is also a new command `ecb-show-tip-of-the-day' (Klaus). *** Advicing `scroll-all-mode' so it works correct with ECB, means `scroll-all-mode' scrolls only the windows of the edit-area, i.e. max. the two edit-windows (Klaus). *** Autom. preventing `winner-mode' from being activated as long as ECB is running (Klaus). *** Now autom. (de)activating ECB via the options ecb-major-modes-activate and ecb-major-modes-deactivate also works when opening files via dired (Klaus). *** Now ECB can be "autoloaded", i.e. + ecb-activate, + ecb-minor-mode, + ecb-byte-compile and + ecb-show-help are autoload-able via '(autoload ...)' (Klaus) *** Silencing the byte-compiler, i.e. byte-compilation of ECB should now be warning free. If byte-compilation still throws warnings during byte-compilation with 'ecb-byte-compile' (rsp. using the Makefile or make.bat) please send this to our mailing list. (Klaus) ** Enhancements to the methods/variable/token tree-buffer: *** New feature: Now the methods buffer is auto. expanded if the node related to the current token in the edit-window is not visible (probably because its parent is collapsed). See new options `ecb-auto-expand-token-tree' and `ecb-expand-methods-switch-off-auto-expand' and the new command `ecb-toggle-auto-expand-token-tree' (Klaus). *** New command `ecb-expand-methods-nodes' which allows precisely expanding tokens with a certain indentation-level. There are also two new related options `ecb-methods-nodes-expand-spec' and `ecb-methods-nodes-collapse-spec' (Klaus). ** Enhancements to the directories tree-buffer: *** New command `ecb-expand-directory-nodes' which does the same for the directories tree-buffer as the new command `ecb-expand-methods-nodes' for the methods tree-buffer (Klaus). *** Rewritten cache-mechanism for directories and sources: Depending on the value of the option ecb-cache-directory-contents the following is cached for a directory: - The disk-contents of the directory means subdirs and files - If ecb-show-sources-in-directories-buffer is nil (i.e. sources are displayed in the extra ECB-sources-window) then also the complete sources-buffer is cached. This results in a speed-boost for big-size directories. The cache of a directory is refreshed and actualized with a POWER-click onto the related directory in the directories-buffer (s.b.) (Klaus) ** Enhancements to the sources tree-buffer: *** The option ecb-source-file-regexps now works on a directory-base, which means for each directory-regexp the files to display can be specified. Default is an all-matching directory-regexp. Old saved values are autom. upgraded (Klaus). ** Enhancements to the layout-customization: *** Naming and managing of layouts has been changed! Now a layout is not longer identified by an integer but by an arbitrary string! Example: The layout with index 0 in ECB <= 1.80 is now named "left1" in ECB 1.90. **** Therefore the name of the option 'ecb-layout-nr' has changed to 'ecb-layout-name'! See the docstring of 'ecb-layout-name' for the names of all built-in layouts. **** In this context also the type of ecb-show-sources-in-directories-buffer has changed so it is now a list of layout-names where the sources should be displayed in the directories window (or 'always/'never). Now every change of the layout also checks the value of ecb-show-sources-in-directories-buffer. **** This change also introduces three new commands: - ecb-change-layout: Change layouts by selecting a name - ecb-delete-new-layout: Delete an user-created (by 'ecb-create-new-layout') layout. - ecb-show-layout-help: Displays the docstring of a layout which at least for built-in layouts contains a picture of the outline of this layout. All three commands offer TAB-completion for easy selecting a layout name. **** ECB autom. upgrades the following options to theirs new names/types: - ecb-layout-nr: The stored value is transformed to the new name of the related layout and stored in 'ecb-layout-name' - ecb-toggle-layout-sequence: The stored value is transformed to the new type with layout-names instead of layout-numbers. - ecb-major-modes-activate: The stored value is transformed to the new type with layout-names instead of layout-numbers. - ecb-layout-window-sizes: The stored value is transformed to the new type with layout-names instead of layout-numbers. - ecb-show-sources-in-directories-buffer: Reset to the new default value. (Klaus) *** Adding a new layout type "left-right" which allows the ECB-tree-windows to be located at the left and the right side of the ECB-frame. See the new layouts "leftright1", "leftright2" and "leftright3" for examples. Other layouts of this type can be created or programmed very easy with 'ecb-create-newlayout' rsp. the macro 'ecb-layout-define'. (Klaus) *** Now ECB offers a command `ecb-create-new-layout' for interactively creating new layouts "by example". Read the online-help. (Klaus) *** Rewritten the mechanism for storing customized window-sizes. See option ecb-layout-window-sizes and the command ecb-store-window-sizes and ecb-restore-window-sizes. Now the sizes are always saved as fractions of the width (rsp. height) of the ECB-frame, so the stored sizes are always correct regardless of the current frame-size (Klaus). Suggested and first implementation by Geert Ribbers [geert.ribbers@realworld.nl] ** General Enhancements of the tree-windows: *** Introduced a POWER-click (was SHIFT-click before) in the ECB-tree-windows - see documentation of ecb-primary-secondary-mouse-buttons and see also the online-help section "Usage of ECB --> Using the mouse" (Klaus). *** Now the ECB-tree-buffers offer in their popup-menus a "Grep" and a "Grep recursive" (= grep-find) command where you can perform an easy grep in every directory without buffer-switching before. See also the new options `ecb-grep-function' and `ecb-grep-find-function'. (Klaus) *** Modified syntax-table for all tree-buffers with all paren, braces and brackets handled as whitespace so for example no paren-matching takes place (Klaus). ** Enhancements to the layout-engine of ECB: *** Added a complete new section "The layout-engine of ECB" to the online-help which describes in detail how to program new layouts and new special windows. This is for foreign packages which want to display own informations in own special windows and synchronizing these windows with the edit-window of ECB (a graphical debugger could be an example). Also a full working example is added in the new file ecb-examples.el. (Klaus) *** Completely rewritten how to program new layouts. Now there is a new macro `ecb-layout-define' which offers very easy programming of new layouts. (Klaus). ** Enhancements to the compile-window *** ECB now has a list of valid compilation buffers within the ECB menu. (Kevin) *** ECB now supports `ecb-enlarged-compilation-window-max-height' which can be used for defining the max. height of the ecb-compile-window if enlarged by `ecb-toggle-enlarged-compilation-window'. (burton) *** Added new command 'ecb-toggle-compile-window': Toggle the visibility of the compile-window of ECB (Klaus). ** Speedbar is now integrated in ECB and can be used instead of the standard ECB-directories buffer (or instead of all tree-buffers if you like :-). Most of the important basic work has been done by Kevin A. Burton. *** See new option 'ecb-use-speedbar-for-directories' and the node "Integrating speedbar" in the online-help. (Klaus) *** Version-checking for correct speedbar version (>= 0.14beta1). For lower versions ecb-use-speedbar-for-directories has no effect. (Klaus) *** ecb-speedbar and speedbar first loaded direct before drawing the layout with integrated speedbar. (Klaus) *** The speedbar-commands speedbar, speedbar-get-focus are adviced during running speedbar within ECB, so they behave in a senseful way. (Klaus) ** Enhancements to the ehell-support of ECB: *** ecb-eshell now recenters after command execution. (burton) *** ecb-eshell now recenters if there are any window resizes. This is done so that the prompt is always at the bottom of the window. (burton) *** ecb-eshell integration now protects against buffer-list modifications during transparent eshell updates in the compile window. In the past, if the eshell was running, and you want from buffer "foo", to "bar", and then tries to go back to "foo" the next entry in your buffer list is "*eshell*" so this would break a lot of completion tools like 'switch-to-buffer. (burton) *** Added online documentation for the eshell integration. See section "Tips and tricks". (Klaus) ** New hooks: *** New or renamed hooks: - ecb-redraw-layout-after-hook (new) - ecb-redraw-layout-before-hook (new) - ecb-hide-ecb-windows-after-hook (new) - ecb-hide-ecb-windows-before-hook (was ecb-hide-ecb-windows-hook) - ecb-show-ecb-windows-after-hook (new) - ecb-show-ecb-windows-before-hook (was ecb-show-ecb-windows-hook) Read the documentation! (Klaus) *** Added two general hooks: + ecb-before-activate-hook: Activate ECB only if all added hooks return not nil + ecb-before-deactivate-hook: Deactivate ECB only if all added hooks return not nil (Klaus) *** Added 5 new hooks for the ECB tree-buffers: + ecb-common-tree-buffer-after-create-hook + ecb-directories-buffer-after-create-hook + ecb-sources-buffer-after-create-hook + ecb-methods-buffer-after-create-hook + ecb-history-buffer-after-create-hook These hooks are called directly after tree-buffer creation so they can be used for example to add personal local key-bindings either to all tree-buffers (ecb-common-tree-buffer-after-create-hook) or just to a certain tree-buffer. Please read the documentation. (Klaus) * Changes for ECB version 1.80 ** ECB now requires: + Latest stable release of semantic: Version 1.4 + Latest stable release of eieio: Version 0.17 ECB checks at start-time if the correct versions are available and if not ECB offers you to download and install them from within Emacs. After this you have only to restart Emacs and you are fine. (Klaus) ** Fixed bugs: *** Fixed: Now no empty tool-tips are displayed if mouse moves over nodes in the tree-buffers of ECB which can be displayed completely in the tree-window. (Klaus) *** Fixed a bug in ecb-eshell. If we are running with current buffer sync, and there is garbage on the current line, when we change buffers this garbage will be executed which could result in a 'command not found' or even worse, a damaging command executed. We now cleanse the command line prior to directory changed. (Kevin A. Burton) *** Fixed a bug in ecb-speedbar. The speedbar was doing its own updating outside of the ECB. This means that if you were to change buffers in a frame outside of the ECB frame, the ECB's Speedbar would be updated to reflect a buffer not within the ECB. We now disable Speedbar's automatic update and have ECB handle this. (Kevin A. Burton) *** Fixed a bug: Sometimes there occurs a a "wrong-type-argument"-error (or "destroyed extent"-error with XEmacs) under some circumstances. Now ECB auto-reparses the buffer and after that ECB is in correct state again. (Klaus) *** Fixed formatting of "Parent" nodes in token buffer. (Jesper) ** Byte compiling ECB either interactive with `ecb-byte-compile' or with the supplied Makefile now checks also the versions of semantic and eieio. (Klaus) ** ECB now displays the section "First steps" of the online-manual after activating first time. (Klaus) ** Now the adviced versions of `delete-window' and `delete-other-windows' can also handle the optional WINDOW argument of the original versions correctly so the adviced versions now also work correct if called from program (Klaus). ** New adviced window command: `delete-windows-on' now works correct with ECB. See `ecb-advice-window-functions'. (Klaus) ** In the ECB-directories buffer now F4 adds a new source-path instead of F1. That is because F1 is such an important key in many OS and tools (e.g. opens help in all windows-programs), so ECB should not hardly "rebind" it. (Klaus) ** Enhancing the option 'ecb-window-sync': Now the synchronization can take place for all buffers which have a relation to files AND directories, i.e. now also for dired-buffers. But per default this is switched off, see the doc-string. (Klaus) ** Now the ECB online help is available in the standard Info-format and also in HTML-format. With the new option 'ecb-show-help-format' you can choose which format is used by the function 'ecb-show-help'. (Klaus) ** New feature and command: ecb-download-ecb. With this function you can download and install any arbitrary ECB-version from the ECB-website from within Emacs. This is especially useful for upgrading to the latest version. (Klaus) ** New debug mode for ECB which prints some debug informations in the message buffer for certain critical operations with semantic-overlays/extends. New option 'ecb-debug-mode' (also available in the Help-menu of ECB). (Klaus) ** Some default key-bindings have changed; see `ecb-key-map'. (Klaus) ** New feature: Possibility to define a sequence of layouts with new option `ecb-toggle-layout-sequence' and toggle very fast between them via `ecb-toggle-layout'. Read the online-help section "Simulation a speedbar without an extra frame"! (Klaus). ** Two new hooks: ecb-hide-ecb-windows-hook and ecb-show-ecb-windows-hook. Read the documentation. (Klaus) Suggested by Daniel Hegyi ** Two new options: ecb-major-modes-activate and ecb-major-modes-deactivate. Allow (de)activation of ECB on major-mode base. Instead of deactivation also just hiding the ECB-windows is possible. Read the docstrings. (Klaus) Suggested by Daniel Hegyi ** Redefining of the option 'ecb-compile-window-temporally-enlarge': Now you can specify that the compile-window is auto. enlarged after selecting it and auto. shrinked after leaving it. Read the docstring! (Klaus) Suggested by Daniel Hegyi ** Much better and more powerful auto. upgrading-mechanism of incompatible or renamed ECB-options to latest ECB-version. See the option ecb-auto-compatibility-check! (Klaus) ** New option ecb-tree-RET-selects-edit-window: Possibility not to select the edit-window of hitting RET in a tree-buffer; see the doc-string. There is also a new function ecb-toggle-RET-selects-edit-window which is bound to [C-t] in each tree-buffer. (Kevin A. Burton, Klaus) ** Better grouping of external methods, i.e. methods which are implemented outside the class-definition, like in C++, CLOS and EIEIO. Now this is done completely by semantic. (Klaus) ** For application programmers using the tree-buffer library: + The function tree-buffer-create has a new argument NODE-DATA-EQUAL-FN. See the doc-string for a description (Klaus). + For each tree-buffer a special user-data-storage (for any arbitrary data) is created which can be accessed via `tree-buffer-set-data-store' and `tree-buffer-get-data-store'. See the docstring of `tree-buffer-create'. (Klaus) * Changes for ECB version 1.70 ** New option ecb-bucket-token-display. See doc-string for details. (Klaus) ** Reorganization of the faces used by ECB. The group 'ecb-face-options' contains now all options which type is 'face (i.e. the defcustom's) and the group 'ecb-faces' contains all face-definition (the defface's). In addition it is now possible to change easily and fast the general face for ALL ECB-tree-buffers (same for the highlighting face). See the docstring of the new faces 'ecb-default-general-face' and 'ecb-default-highlight-face' for further details. (Klaus). ** Smarter incr. search in a tree-buffer with the [end]-key: If there are at least two nodes with the same greatest common-prefix than every hit of [end] jumps to the next node with this common prefix. (Klaus) ** New feature ecb-auto-compatibility-check: ECB checks on startup if the current value of an ECB-option OPT is not compatible with the type of OPT in current ECB-release. This is done during activation. If there are incompatible options ECB resets them to the default value of current ECB release and displays after activation in a temporary window which options have been reset, incl. their old-value (before the reset) and new-value (after the reset). (Klaus) ** New feature ecb-tree-navigation-by-arrow: Smarter navigation in the tree-windows with left- and right-arrow key (Klaus). Thanks for the suggestion and a first implementation to Geert Ribbers ! ** New feature 'ecb-type-token-display'. See the doc-string of this new option for a description. (Klaus) ** Now the option 'ecb-post-process-semantic-tokenlist' has per default an entry for emacs-lisp-mode, so for eieio-code the methods (defmethod) of a class are grouped with respect to the class they belong. The new default value of this option does this for c++- and eieio-code. (Klaus) ** Now in the ECB-tree-buffers RETURN works like the primary button (already in previous versions) and C-RETURN works like the secondary button (new in version 1.70). For an explanation of primary and secondary see the option ecb-primary-secondary-mouse-buttons. (Klaus) ** New feature: Now the token-display function can be defined separated for each major-mode. Furthermore the token-display for C++ has enhanced, especially for template-classes (but template displaying is first available with semantic > version 14beta13!). For this the option ecb-token-display-function has been completely rewritten and is now incompatible with the old values before ECB 1.61. (Klaus) ** Fixed a bug with mouse-avoidance-mode (only relevant for GNU Emacs 20.X) Klaus. ** New feature, ecb-select-edit-window-on-redraw. Mostly used if you are running with ecb-redraw-layout-quickly and want to make sure you are always in the edit window. (Kevin) ** New feature, ecb-auto-activate. If non-nil we can start the ECB after Emacs is started. See `ecb-auto-activate' for more information. (Kevin) ** New package, ecb-cycle.el. Supports cycling through all known compilation buffers. (Kevin) + ecb-cycle-switch-to-compilation-buffer - switch to available compilation buffers. + ecb-cycle-through-compilation-buffers - cycle through all compilation buffers. ** Much better performance of the directory and file-browser in ECB, especially for directories with a lot of entries (means ~ >1000, dependent on your machine and the net-connection in case of network-drives). See also the new feature: ecb-cache-directory-contents. (Klaus) ** ecb-eshell now supports customization. (Kevin) ** New feature: ecb-layout-always-operate-in-edit-window. Look at the documentation. (Kevin & Klaus) ** Fixed a bug in `ecb-toggle-ecb-windows'. For starters we weren't setting `ecb-window-hidden' when we redraw the layout. This means that the ecb windows could be hidden but never shown. Other things: + ecb-windows-hidden now has documentation + we display status messages when we hide windows. (Kevin) ** Fixed bug in `ecb-redraw-layout-quickly'. If for come reason any of the ECB windows are not alive, we do not return with a hard error. Instead, we use the scratch buffer. (Kevin) ** New function ecb-toggle-enlarged-compilation-window allows users to expand and then contract the compilation window with a new key binding C-c . / (Kevin) ** new option ecb-add-path-for-not-matching-files. Look at the documentation (Klaus). * Changes for ECB version 1.60 ** ecb-highlight-token-header-after-jump is now a boolean; which face is used for highlighting is defined in ecb-token-header-face. (Klaus) ** New option 'ecb-post-process-semantic-tokenlist': Special post-processing of the semantic tokenlist for certain major-modes. This is useful for c++-mode. Now with the default value of this option all methods in a c++-implementation-file (no class/method-declaration but only method implementations) are grouped with respect to the class they belong. (Klaus) ** Now also with C++ Sources the method- and variable-protection is displayed correct in the ECB-method buffer (Klaus). ** Fixed a bug which prevented ECB using the root path "/" on Unix-like systems as a source-path. (Klaus) ** If a file via the standard-mechanisms of Emacs (e.g. find-file) is opened, then the auto. window sync (see `ecb-window-sync') has worked only correct if the new file is located in any of the paths in `ecb-source-path'. Now ECB adds the path of the new file at least temporally via `ecb-add-source-path' to the list of paths in `ecb-source-path', so the window-sync works always correct. ECB asks the user if the new path should saved also for future sessions. (Klaus) ** Added ecb-redraw-layout-hooks so that code can be executed after we redraw the ecb layout. ** New hook ecb-current-buffer-sync-hook allows developers to add code to be evaluated after the ECB is synchronized with the current buffer. ** Now all faces used by ECB for highlighting and displaying it´s own stuff are customizable. See new group 'ecb-faces' (Klaus). ** ECB is now fully prepared for Emacs 21. The new feature `ecb-show-node-info-in-minibuffer' is implemented with the new 'help-echo property of Emacs 21, therefore the ugly `track-mouse' mechanism is not needed anymore with Emacs 21. (Klaus). ** The options `ecb-show-node-name-in-minibuffer', `ecb-show-complete-file-name-in-minibuffer' and `ecb-show-file-info-in-minibuffer' are gone and have been replaced by one single new option `ecb-show-node-info-in-minibuffer' where you can define separately for every tree-buffer when and which node info should be displayed in the minibuffer (Klaus). ** ecb-auto-expand-directory-tree now offers two options: - best: Expand always the best matching source-path for a file - first: Expand always the first matching source-path for a file (Klaus) ** Fixed a bug in auto. expanding directories if a source-path has an alias. (Klaus) ** If mouse is moved over an alias in the directories buffer then the real path is shown in the echo-area; see also 'ecb-show-node-info-in-minibuffer' (Klaus). ** If mouse is moved over an history-entry then the full path is shown in the echo-area so you can distinct better between two entries with the same name but with different paths; see also 'ecb-show-node-info-in-minibuffer' (Klaus). ** New option for the history: ecb-kill-buffer-clears-history defines if `kill-buffer' should also remove the corresponding history entry. There are several options (Klaus). * Changes for ECB version 1.52 ** Added EIEIO requirement to ECB. * Changes for ECB version 1.51 ** Now the names of all ECB buffers begin with a SPC per default. (Klaus) ** ECB now can handle not only full but also partial buffer reparsing if done by semantic and other tools (e.g. JDE >= 2.2.9). The method buffer will always be uptodate if for a major-mode auto. reparsing after buffer changes is enabled (the auto. buffer reparsing itself is not an ECB feature but must be supplied by the major-mode, e.g. JDE). (Klaus) ** Incremental node-search in the ECB-buffers now uses the value of `case-fold-search'. (Klaus) ** Complete new customization of the ECB-key-bindings. The option `ecb-prefix-key' has been removed. There is one new option `ecb-key-map' where you can customize all key-settings of ECB (including a common prefixkey). (Klaus) ** ecb-add-source-path and ecb-delete-source-path now ask if saving should be done for future sessions (Klaus). ** Added new navigator functionality. Makes it easy to go to the back and forward in navigated tokens and buffers. See ecb-nav-goto-next and ecb-nav-goto-previous. (Jesper) ** Added an option to narrow the buffer to the token that is jumped to. See ecb-token-jump-narrow. (Jesper) ** Fixed a small bug that placed the window start at the beginning of the token instead of the beginning of the token line. (Jesper) * Changes for ECB version 1.50 ** Fixed a minor bug that occured when de-activating ECB under XEmacs. (Jesper) ** ecb-layout-window-sizes variable is now an association list, which makes it easier to add and remove layouts. (Jesper) ** Added a new layout (nr. 12). Thanks to Nick Cross for this layout. ** Each source path can now have an alias that is displayed instead of the path name in the directories buffer. (Jesper) ** The history items can now use the buffer name instead of the file name. Customizable with ecb-history-item-name. (Jesper) ** When jumping to a token the window can be scrolled so that the token starts at the top or center of the window. This behavior is customizable with the variable ecb-scroll-window-after-jump. (Jesper) ** Fixed a bug when retrieving parent names for a token. (Jesper) ** Now the option 'ecb-prefix-key' is customizable so you can define another prefix if there are conflicts with other minor-modes or packages (Klaus). * Changes for ECB version 1.41 ** Fixed bug when clicking on token in the methods buffer in XEmacs. * Changes for ECB version 1.40 ** Tree-incremental-search in the ecb-windows now ignores all non interesting stuff: + any leading spaces + expand/collapse-buttons: [+] rsp. [-] + protection-signs (+, -, #) in the method-window if uml-notation is used + variables types or return-types in front of variable- or method-names. + const specifier for variables This makes incremental-searching in a tree-buffer much faster and easier. (Klaus) ** ECB now uses Semantic DB to find parents of types. (Jesper) ** Long source paths in the directories buffer are now truncated at the beginning. Customizable with variable ecb-truncate-long-names. (Jesper) ** Tokens can now be sorted by access. (Jesper) ** Added a function to semantic-clean-token-hooks that just updates the token changed instead of re-building the entire token tree. (Jesper) ** Implemented a token tree cache that stores recently opened buffers' token trees. This makes the buffer switching much faster and also saves expanded nodes and window positions. The cache is unlimited at the moment. (Jesper) ** Added a speedbar-like layout nr. 11. This is very useful (like also layout nr. 10) either for users with small screens or users which normally do not need/want the ECB-windows but sometimes browsing/selecting methods/variables. (Klaus) ** Better extraction of tokens from current buffer. ECB now displays any token type in any order. (Jesper) ** ECB now uses Semantic to display tokens in the methods buffer. (Jesper) ** Much saver ecb-redraw-layout: Now the layout can be restored ALWAYS regardless what messy thing has been done before. (Klaus) ** New advice for 'other-window-for-scrolling', so all scroll-functions for the "other" window can also scroll the first edit-window if point stays in the second one. (Klaus) ** ecb-toggle-ecb-windows now preserves the split, the split-amount, the buffer contents, the window starts and current point. (Klaus) ** Some important changes in the ECB-layout concerning displaying compilation- and temp-buffers. (Klaus): *** 'ecb-select-compile-window' has been gone. *** 'ecb-use-dedicated-windows' is not longer a user-customizable option but it is always set to t, because this is essential for correct working of the ecb-layout engine! *** 'ecb-compile-window-temporally-enlarge' is now a boolean option. *** Now ECB does all necessary that your edit-window of ECB seems to be a normal Emacs frame, especially concerning displaying temp-buffers (like help- and completion-buffers) and compilation-buffers. *** The variables 'compilation-window-height' and 'temp-buffer-shrink-to-fit' (XEmacs) and 'temp-buffer-resize-mode' (GNU Emacs) are now fully supported by ECB if no durable compilation-window is shown. ** New function to toggle visibility of the ECB windows. Now it´s possible to hide all ECB windows without deactivating ECB (see 'ecb-toggle-ecb-windows') (Klaus). ** ECB is now a global minor mode with it´s own menu "ECB" and it´s own key-map with prefix "C-c .". New function to (de)activate/toggle ECB with 'ecb-minor-mode'. (Klaus) ** Fixed a bug in highlighting current token in the method-buffer when font-lock-mode is nil for the source-buffer. (Klaus) ** New option for highlighting the method-header in the edit-window after clicking onto the method in the method-window (like Speedbar does). (Klaus) ** Function for automatically submitting a problem report to the ECB mailing list: ecb-submit-problem-report. (Klaus) ** Now not only for method-highlighting an idle delay can be set but also for synchronizing the ECB windows with current edit window (see option ecb-window-sync and ecb-window-sync-delay; default is 0.25 sec delay) (Klaus). ** Smarter highlighting of current method (Klaus). ** All tree-buffers now have as default-directory the current selected directory in the directory buffer. So you can also open files with find-file etc. from within the tree-buffers. (Klaus). * Changes for ECB version 1.32 ** Nil parent bug fixed. (Jesper) ** New advices for find-file and switch-to-buffer (Klaus). ** Now possible to set an idle delay before the current method is highlighted; useful for slow machines but prevents also "jumping backward/forward" during scrolling within java-classes if point goes out of method-definition into class-definition. Default is an idle time of 0.25 seconds. (Klaus). * Changes for ECB version 1.31 ** Parents (extends and implements) of the classes in the current buffer is now shown in the methods buffer. (Jesper). Possibility to define a regexp which parents should not be shown. (Klaus). ** Now displaying the complete node name in minibuffer with the track-mouse mechanism works also with mouse-avoidance-mode on; the mouse-avoidance will be deactivated as long ECB is activated and the node-name display-mechanism is on. This refers only to GNU Emacs! (Klaus) ** Fixed a bug in 'ecb-current-buffer-sync' and 'ecb-redraw-layout' (Klaus) ** Fixed a bug in loading semantic 1.3.3 or semantic 1.4 (Klaus) * Changes for ECB version 1.30 ** If not all ECB-tree-windows of current layout are visible at redraw-time ('ecb-redraw-layout') then the redraw synchronizes the contents of the tree-windows with the source displayed in current edit-window (Klaus). ** Added a section "Tips and Tricks" to the ECB online-help. (Klaus) ** Added a new layout Nr. 10 for very small screen resolutions where all square-centimeters are needed for the editing itself. This layout only displays a method-window and a edit-window. (Klaus). ** The messages displayed after moving the mouse over a node in a tree-buffer do not longer wasting the log, means they will not be logged (Klaus). ** ECB now also works with semantic >= 1.4 (Klaus). ** Now the ecb-compile-window-height is also preserved after displaying temp-buffers (e.g. help-buffers after C-h f) - if you want this. See the documentation of the option 'ecb-compile-window-temporally-enlarge'. (Klaus) ** Added menu items for modification of the source paths in the directories buffer. (Jesper) ** Added buttons to directories buffer. (Jesper) ** Mouse over files, methods etc. now work even if follow-mouse isn't activated (Jesper). ECB adds a more intelligent mouse tracking mechanism, so not only the mouse-over-node stuff of ECB works now very well and savely but also follow-mouse itself works better and saver as without activated ECB. (Klaus) ** Popup menus now work in XEmacs. (Jesper) ** You can now specify paths with env-vars like $HOME in the option `ecb-source-path'. (Klaus) ** The user must now confirm if he tries to delete the ECB frame. If he wants to proceed then ECB will be first deactivated before deleting the frame. This works for all ways to delete a frame (shortcut, window-manager-button, ...). (Klaus) ** ECB now optionally create its own frame when activated. See the new option 'ecb-new-ecb-frame'. (Klaus) ** Intelligent recentering of tree-buffers now completely implemented without the function 'recenter'. This means no flickering and flashing the whole frame anymore after each 'recenter'. Now the ECB display is stable like a rock :-) (Klaus) ** Mouse over directories now shows directory path. (Jesper) ** Methods and variables with point are now highlighted. (Jesper) ** ECB windows are now updated when saving new files and deleting files. (Jesper) ** incremental-search in every tree-buffer for easier and faster selecting nodes with the keyboard (see new option `ecb-tree-incremental-search' and new function 'tree-buffer-incremental-node-search') for more details. (Klaus) ** ecb-redraw-layout now restores both edit window buffers and the edit window start. (Jesper) ** Spelling corrections. Thanks to Colin Marquardt for spotting them. ** Mode line prefixes can now be set individually for each ECB-buffer. There is a default-prefix for each buffer but the user can also define a custom prefix or no prefix at all. (Jesper/Klaus) ** Fixed small bug in directory tree that caused directories to be sorted by extension. (Jesper) * Changes for ECB version 1.20 ** Now the ECB-buffers are intelligent in displaying nodes (Klaus): + Expandable nodes: (e.g. a directory with it´s subdirectories). An ECB-tree-window now tries always to make visible as much as possible of the sub-nodes of a node if a node is expanded (e.g. by clicking onto it´s expand-symbol). + Other nodes: A ECB-tree-window is always best filled, means no empty lines if there are enough lines to fill the whole window. ** The source file is only parsed if the ECB methods window is visible (Jesper). ** The methods buffer now show fields of EIEIO classes. Only works with semantic 1.4. Thanks to Eric M. Ludlam for this patch. ** Now all adviced functions behave only special in the ECB-frame. In each other frame they behave exactly like the not adviced functions. (Klaus) ** Fix "invalid method-buffer"-bug (Klaus, with a lot of help by Eric Ludlam and David Ponce). ** Source files can now be sorted by name, extension or not sorted at all (Jesper). ** Now you can precisely define by an exclude and include regexp which files should be displayed by ECB. (Jesper). ** Jumping to a method/variable from the ECB-method buffer now sets the mark so the user can easily jump back (see `ecb-method-jump-sets-mark'). (Klaus) ** Now you can define a primary and a secondary mouse-button for ECB. See the new variable `ecb-primary-secondary-mouse-buttons'. Note: The name of the option 'ecb-left-mouse-jump-destination' has been changed to `ecb-primary-mouse-jump-destination'! ** Now ECB is really ediff-friendly: During ediff is active the advices of ECB are temporally deactivated! (Klaus) ** Now all tree-buffers (ECB-buffers) are read-only (Klaus)! ** Better implementation of advising the functions. Now all advice-able functions are completely independent from each other (Klaus)! ** Removes the redundant modeline info and shows important information. ** Added new option `ecb-advice-window-functions'. Enabling the intelligent window functions via customize. No hook hacking necessary anymore! Now the intelligent window functions are implemented by advicing (Klaus). ** Better online help display (Klaus). ** Added new option 'ecb-primary-mouse-jump-destination' (thanks to David Hay for suggestion . ** Adviced 'other-window' acts now exactly like the original but always related to 'ecb-other-window-jump-behavior' (Klaus)! ** Fixed bug with 'ecb-compile-window-height'. Now ECB has always the correct compile-window height after compilation-output (compile, grep etc.) ** New option 'ecb-compile-window-temporally-enlarge'. Allowing Emacs-compilation to enlarge the ECB-compile-window temporally. * Changes for ECB version 1.10 ** Automatic expansion of the directory tree. ** Method parsing is now recursive, so that for example inner classes in Java are shown in the methods buffer. ** Variables are now shown in the methods buffer. ** Selected files and directories now use the secondary-selection face. Thanks to Kevin A. Burton for this patch. ** Fixed some issues with XEmacs. Thanks to Colin Marquardt for this. ** Fixed bug with truncating lines in tree-buffer.el. ** The methods buffer can now be automatically updated when the source file is saved. ** Help text is available with "ecb-show-help". ** Moving the mouse over a node shows the name in the mini-buffer. Currently this only works when follow-mouse is activated. * Changes for ECB version 1.0 ** Changed name from JCB to ECB and prefix from "jde-jcb-" to "ecb-". ** Works with semantic 1.3.1 and higher. ** Fixed a couple of bugs when creating and deleting files. ** Grouped customization variables. ** Contributed by Klaus Berndl : *** A lot of intelligent ECB window-functions (e.g. ecb-delete-window) which gives you the feeling as if the edit-window is the only window of the ECB frame. *** New layout functionality. *** The history buffer can optionally be sorted and also cleared. *** The package expanded symbol can optionally be placed before the package name. *** Syntax highlighting of the methods buffer. *** Show argument names and return type in the methods buffer. *** History clear function: ecb-clear-history. *** Added pop-up menu to the history buffer. *** Fixed edit buffer sync bug. * Changes for ECB version 0.04 ** Keyboard navigation in JCB buffers. Use Return to select and Tab to expand. ** Tree view of packages. ** Class files can be viewed in the packages buffer. ** Better handling of mouse events. ** Automatic update of the packages buffer. ** Added pop-up menus to the packages and classes buffers. They are activated with mouse button 3 (right button). ** Added method sorting. Thanks to Brian Anderson for this improvement. * Changes for ECB version 0.03 ** Fixed naming of variables. ** Fixed license and copyright comments. ** Fixed class file regular expression bug. Thanks to Jim Loverde for finding it. ** Added three new layouts. ** The JCB buffers can now be (almost) synchronized with the edit window. ** When clicking on a class or method using mouse button 2, it will be loaded into another window. A new customization variable was added for this. ** Minor changes. Thanks to Jim for his suggestions. ** Removed the "jde-jcb-window-skips-from-methods-buffer" and "jde-jcb-window-skips-from-history-buffer" customization variables. * Changes for ECB version 0.02 ** Changed prefix from "jcb-" to "jde-jcb-". This will cause JCB customization variables to be saved in JDE project files. ** Lists and parses non-Java file types. Currently the C and Lisp parsers from semantic-ex.el are used. ** History buffer implemented. ** Layout function implement. Thanks to Jim Loverde for helping out with this. ** Packages matching a regular expression can be excluded from the packages buffer. Thanks to Mark Gibson for this feature. * Changes for ECB version 0.01 ** Initial version. Local variables: mode: outline paragraph-separate: "[ ]*$" end: