ecb / HISTORY

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
Version 1.91.1
--------------

* 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
  (resp. frame-width as width) . (Klaus)

* Fixed a bug in the downloading feature of ECB. (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 new packages" feature of ECB: 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)


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 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 reclick 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 <xsteve@riic.at>! (Klaus).

* 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).

* 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 comand
  `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).

* 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).

* 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).

* 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).

* 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 (resp. 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]

* 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)

* 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).

* Added new command 'ecb-toggle-compile-window': Toggle the visibility of the
  compile-window of ECB (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).

* 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)

* 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.

* Added online documentation for the eshell integration. See section
  "Tips and tricks". (Klaus)

* ECB now has a list of valid compilation buffers within the ECB menu. (Kevin)

* 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).

* 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)

* 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 buildin 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 buildin 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)
  
* 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)

* 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' resp. the macro 'ecb-layout-define'. (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' (resp. using the Makefile or
  make.bat) please send this to our mailing list. (Klaus)

* 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)

* 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)

* 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)

* Now ECB offers a command `ecb-create-new-layout' for interactively creating
  new layouts "by example". Read the online-help. (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).

* 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)

* 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 keybindings either to all
  tree-buffers (ecb-common-tree-buffer-after-create-hook) or just to a certain
  tree-buffer. Please 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)


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)

* 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 synchronisation 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 usefull 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 keybindings 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).

* Fixed: Now no empty tooltips are displayed if mouse moves over nodes in the
  tree-buffers of ECB which can be displayed completely in the tree-window.
  (Klaus)

* Two new hooks: ecb-hide-ecb-windows-hook and ecb-show-ecb-windows-hook. Read
  the documentation. (Klaus)
  Suggested by Daniel Hegyi <daniel_hegyi@hotmail.com>

* 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)

* 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 <daniel_hegyi@hotmail.com>

* 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 <daniel_hegyi@hotmail.com>

* 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)

* Fixed formatting of "Parent" nodes in token buffer. (Jesper)

* 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)

* 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) 

* 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 ceated which can be accessed via `tree-buffer-set-data-store' and
    `tree-buffer-get-data-store'. See the docstring of `tree-buffer-create'.
    (Klaus)

    
Version 1.70:
-------------

* New option ecb-bucket-token-display. See doc-string for details. (Klaus)

* Reorganisation 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, inkl. 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
  <geert.ribbers@realworld.nl>!

* 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, dependend 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).

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 postprocessing of
  the semantic tokenlist for certain major-modes. This is usefull 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 openend,
  then the auto. window synch (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-synch 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 differnt pathes; 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).

Version 1.52:
-------------

* Added EIEIO requirement to 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-keybindings. The option
  `ecb-prefix-key' has been removed. There is one new option `ecb-key-map'
  where you can customize all keysettings 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)

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
  <nick.cross@prismtechnologies.com> 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 behaviour 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).

Version 1.41:
-------------

* Fixed bug when clicking on token in the methods buffer in XEmacs.

Version 1.40:
-------------

* Tree-incremental-search in the ecb-windows now ignores all non interesting
  stuff:
  + any leading spaces
  + expand/collapse-buttons: [+] resp. [-]
  + protection-signs (+, -, #) in the method-window if uml-notation is used
  + variables types or returntypes 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 keymap
  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).

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).

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)

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
  squarecentimeters 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
  <colin.marquardt@usa.alcatel.com> 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)

Version 1.20 (2001-04-28):
--------------------------

* 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 visisble as much as possible of
    the subnodes 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 <eric@siege-engine.com> 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 adviceable
  functions are completely independent from each other (Klaus)!

* Mon Apr 2 21:20:34 2001 (burton@relativity.yi.org): merge my modeline
  additions... this 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 <David.Hay@requisite.com>.

* 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.

Version 1.10 (2001-03-25):
--------------------------

* 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 <burton@relativity.yi.org> for this
  patch.

* Fixed some issues with XEmacs. Thanks to Colin Marquardt
  <colin.marquardt@usa.alcatel.com> 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.

Version 1.0 (2001-03-17):
-------------------------

* 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 <klaus.berndl@sdm.de>:

* 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.

Version 0.04 (2000-11-07):
--------------------------

* 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 <brian.anderson@luna.com> 
  for this improvement.

Version 0.03 (2000-07-28):
--------------------------

* Fixed naming of variables.

* Fixed license and copyright comments.

* Fixed class file regular expression bug. 
  Thanks to Jim Loverde <loverde@str.com> 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.

Version 0.02 (2000-07-15):
--------------------------

* 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 <loverde@str.com> for 
  helping out with this.

* Packages matching a regular expression can be excluded from the packages 
  buffer. Thanks to Mark Gibson <mark@markg.co.uk> for this feature.

Version 0.01 (2000-07-08):
--------------------------

* Initial version.
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.