~ubuntu-branches/ubuntu/saucy/ecb/saucy

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
<html lang="en">
<head>
<title>ECB - the Emacs Code Browser</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name=description content="ECB - the Emacs Code Browser">
<meta name=generator content="makeinfo 4.2">
<link href="http://www.gnu.org/software/texinfo/" rel=generator-home>
</head>
<body>
<p>
Node:<a name="ecb-methods">ecb-methods</a>,
Next:<a rel=next accesskey=n href="ecb-history.html#ecb-history">ecb-history</a>,
Previous:<a rel=previous accesskey=p href="ecb-sources.html#ecb-sources">ecb-sources</a>,
Up:<a rel=up accesskey=u href="Customizable-options.html#Customizable%20options">Customizable options</a>
<hr><br>

<h4>Group ecb-methods</h4>

<p>This group contains settings for the methods-buffer in the ECB:

<p>
<table width="100%">
<tr>
<td align="left"><b>auto-expand-tag-tree</b><i>
</i></td>
<td align="right">User Option</td>
</tr>
</table>
<table width="95%" align="center">
<tr><td>
Expand the methods-tag-tree automatically if node invisible.

<p>This option has only an effect if option <code>ecb-highlight-tag-with-point</code> is
switched on too. There are three possible choices:
<ul>
<li><code>nil</code>:
No auto. expanding of the method buffer. 
<li><code>expand-spec</code>:
Auto expand the method-buffer nodes if the node belonging to current
tag under point is invisible because its parent-node is collapsed. 
But expanding is only done if the type of the tag under point in the
edit-buffer is contained in <code>ecb-methods-nodes-expand-spec</code>. 
<li><code>all</code>:
Like expand-spec but expands all tags regardless of the setting in
<code>ecb-methods-nodes-expand-spec</code>. 
</ul>

<p>This options takes only effect for semantic-sources - means sources
supported by semantic! 
</td></tr>
</table>

<p>
<table width="100%">
<tr>
<td align="left"><b>auto-expand-tag-tree-collapse-other</b><i>
</i></td>
<td align="right">User Option</td>
</tr>
</table>
<table width="95%" align="center">
<tr><td>
Auto. expanding the tag-tree collapses all not related nodes. There
are several choices:

<ul>
<li>Only if on tag:
This means collapsing 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. But do this only if
point stays onto a tag in the selected edit-window.

<li>Always:
Same as before but collapse also when point doesn't stays on a tag
(e.g. between two defuns in elisp) in the selected edit-window. This
means in such a situation a full collapsing of the methods-buffer.

<li>Never:
Do not automatically collapse the methods-buffer. 
</ul>
</td></tr>
</table>

<p>
<table width="100%">
<tr>
<td align="left"><b>auto-update-methods-after-save</b><i>
</i></td>
<td align="right">User Option</td>
</tr>
</table>
<table width="95%" align="center">
<tr><td>
Automatically updating the ECB method buffer after saving a source. 
</td></tr>
</table>

<p>
<table width="100%">
<tr>
<td align="left"><b>default-tag-filter</b><i>
</i></td>
<td align="right">User Option</td>
</tr>
</table>
<table width="95%" align="center">
<tr><td>
Default tag-filters for certain files. This option 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 <code>ecb-methods-filter</code> and they are
applied in the same manner - the only difference is they are applied
automatically. Please be aware that symbol-filters (e.g. 
protection-symbols like public or private) must not be inserted with
quotes whereas a filter-regexp has to be inserted with surrounding
double-quotes! In addition backslashes in a regexp have to be doubled!

<p>For each file-spec (a major-mode plus a file-regexp which both specify
a file for which filters should be applied) there can be as much
filters as needed - they are layered like with
<code>ecb-methods-filter</code> too.

<p>Tag-classes which are completely hidden or excluded by the option
<code>ecb-show-tags</code> will never being displayed in the Methods-buffer
regardless of the filters of this option! 
</td></tr>
</table>

<p>
<table width="100%">
<tr>
<td align="left"><b>display-image-icons-for-semantic-tags</b><i>
</i></td>
<td align="right">User Option</td>
</tr>
</table>
<table width="95%" align="center">
<tr><td>
Display nice and pretty icons for semantic-tags in the Methods-buffer. 
This option takes only effect if Emacs can display images and if
<code>ecb-tree-buffer-style</code> is set to <code>image</code>. 
</td></tr>
</table>

<p>
<table width="100%">
<tr>
<td align="left"><b>exclude-parents-regexp</b><i>
</i></td>
<td align="right">User Option</td>
</tr>
</table>
<table width="95%" align="center">
<tr><td>
Regexps which parent classes should not be shown in the methods buffer
(see also <code>ecb-show-parents</code>). If nil then all parents will be
shown if <code>ecb-show-parents</code> is not nil.

<p>This options takes only effect for semantic-sources - means sources
supported by semantic! 
</td></tr>
</table>

<p>
<table width="100%">
<tr>
<td align="left"><b>expand-methods-switch-off-auto-expand</b><i>
</i></td>
<td align="right">User Option</td>
</tr>
</table>
<table width="95%" align="center">
<tr><td>
Switch off auto expanding in the ECB-method buffer. If on then auto
expanding is switched off after explicit expanding or collapsing by
<code>ecb-expand-methods-nodes</code>.

<p>This is done with <code>ecb-toggle-auto-expand-tag-tree</code> so after
the switch off the auto expanding feature can again switched on
quickly.

<p>But after explicitly expanding/collapsing the methods-buffer to a
certain level the auto. expanding could undo this when the node
belonging to current tag under point in the current active edit-window
is invisible after <code>ecb-expand-methods-nodes</code> - then the auto. 
expand feature would make this node immediately visible and destroys
the explicitly set expand-level. 
</td></tr>
</table>

<p>
<table width="100%">
<tr>
<td align="left"><b>font-lock-tags</b><i>
</i></td>
<td align="right">User Option</td>
</tr>
</table>
<table width="95%" align="center">
<tr><td>
Adds font-locking (means highlighting) to the ECB-method buffer.

<p>This options takes only effect for semantic-sources - means sources
supported by semantic! 
</td></tr>
</table>

<p>
<table width="100%">
<tr>
<td align="left"><b>highlight-tag-with-point</b><i>
</i></td>
<td align="right">User Option</td>
</tr>
</table>
<table width="95%" align="center">
<tr><td>
How to highlight the method or variable under the cursor.

<ul>
<li><code>highlight-scroll</code>:
Always scroll the method buffer, so the current method of the
edit-window is highlighted in the method-window. 
<li><code>highlight</code>:
Only highlight the current method of the edit window in the
method window if the method is visible in the method-window. 
<li><code>nil</code>:
No highlighting is done. 
</ul>

<p>See also <code>ecb-highlight-tag-with-point-delay</code>.

<p>This options takes only effect for semantic-sources - means sources
supported by semantic! 
</td></tr>
</table>

<p>
<table width="100%">
<tr>
<td align="left"><b>highlight-tag-with-point-delay</b><i>
</i></td>
<td align="right">User Option</td>
</tr>
</table>
<table width="95%" align="center">
<tr><td>
Time Emacs must be idle before current tag is highlighted. If nil
then there is no delay, means current tag is highlighted
immediately. A small value of about 0.25 seconds saves CPU resources
and you get even though almost the same effect as if you set no delay. 
But such a delay prevents also "jumping backward/forward" during
scrolling within java-classes if point goes out of method-definition
into class-definition. Therefore the default value is a delay of 0.25
seconds.

<p>This options takes only effect for semantic-sources - means sources
supported by semantic! 
</td></tr>
</table>

<p>
<table width="100%">
<tr>
<td align="left"><b>methods-buffer-after-create-hook</b><i>
</i></td>
<td align="right">User Option</td>
</tr>
</table>
<table width="95%" align="center">
<tr><td>
Local hook running after the creation of the methods-buffer. Every
function of this hook is called once without arguments direct after
creating the methods-buffer of ECB and it's local key-map. So for
example a function could be added which performs calls of
<code>local-set-key</code> to define new keybindings only for the
methods-buffer of ECB. 
</td></tr>
</table>

<p>
<table width="100%">
<tr>
<td align="left"><b>methods-buffer-name</b><i>
</i></td>
<td align="right">User Option</td>
</tr>
</table>
<table width="95%" align="center">
<tr><td>
Name of the ECB methods buffer. Because it is not a normal buffer for
editing you should enclose the name with stars, e.g. " *ECB
Methods*".

<p>If it is necessary for you you can get emacs-lisp access to the
buffer-object of the ECB-methods-buffer by this name, e.g. by a call
of <code>set-buffer</code>.

<p>Changes for this option at runtime will take affect only after
deactivating and then activating ECB again! 
</td></tr>
</table>

<p>
<table width="100%">
<tr>
<td align="left"><b>methods-filter-replace-existing</b><i>
</i></td>
<td align="right">User Option</td>
</tr>
</table>
<table width="95%" align="center">
<tr><td>
How the methods-filter should be applied to existing filters. There
are three different choices:

<ul>
<li><code>never</code>:
This is the default and means that calling <code>ecb-methods-filter</code>
always adds the new filter on top of already existing filters. So you
can combine several filter to one combined like this example: 'Display
only all public methods having the string "test" in its name.' With
this setting the filters can only be cleared by calling
<code>ecb-methods-filter</code> and then choosing "nothing".

<li><code>always</code>:
This means that <code>ecb-methods-filter</code> always clears a previous
filter before applying the new one.

<li><code>ask</code>:
ECB asks if the new filter should replace the existing ones. 
</ul>
</td></tr>
</table>

<p>
<table width="100%">
<tr>
<td align="left"><b>methods-menu-sorter</b><i>
</i></td>
<td align="right">User Option</td>
</tr>
</table>
<table width="95%" align="center">
<tr><td>
Function which re-sorts the menu-entries of the directories buffer.

<p>If a function then this function is called to sort the menu-entries of
the combined menu-entries of the user-menu-extensions of
<code>ecb-methods-menu-user-extension</code> and the built-in-menu
<code>ecb-methods-menu</code>. If nil then no special sorting will be done
and the user-extensions are placed in front of the built-in-entries.

<p>For the guidelines for such a sorter-function see
<code>ecb-directories-menu-sorter</code>. 
</td></tr>
</table>

<p>
<table width="100%">
<tr>
<td align="left"><b>methods-menu-user-extension</b><i>
</i></td>
<td align="right">User Option</td>
</tr>
</table>
<table width="95%" align="center">
<tr><td>
Static user extensions for the popup-menu of the methods buffer. For
further explanations see <code>ecb-directories-menu-user-extension</code>.

<p>The node-argument of a menu-function contains as data the semantic-tag
of the method/variable/tag for which the popup-menu has been opened.

<p>Per default the static user-extensions are added at the beginning of
the built-in menu-entries of <code>ecb-methods-menu</code> but the whole
menu can be re-arranged with <code>ecb-methods-menu-sorter</code>. 
</td></tr>
</table>

<p>
<table width="100%">
<tr>
<td align="left"><b>methods-menu-user-extension-function</b><i>
</i></td>
<td align="right">User Option</td>
</tr>
</table>
<table width="95%" align="center">
<tr><td>
Dynamic user extensions for the popup-menu of the methods buffer. A
function which has to return a list in the same format like the option
<code>ecb-methods-menu-user-extension</code>. This function is called when
the user opens the popup-menu for the methods buffer. For an example
how such a function can be programmed see
<code>ecb-methods-menu-editwin-entries</code>.

<p>Per default the dynamic user-extensions are added in front of the
static extensions of <code>ecb-methods-menu-user-extension</code> but the
whole menu can be re-arranged with <code>ecb-methods-menu-sorter</code>. 
</td></tr>
</table>

<p>
<table width="100%">
<tr>
<td align="left"><b>methods-nodes-collapse-spec</b><i>
</i></td>
<td align="right">User Option</td>
</tr>
</table>
<table width="95%" align="center">
<tr><td>
Semantic tag-types collapsed by <code>ecb-expand-methods-nodes</code>. 
For valid values of this option see <code>ecb-methods-nodes-expand-spec</code>!

<p>This options takes only effect for semantic-sources - means sources
supported by semantic! 
</td></tr>
</table>

<p>
<table width="100%">
<tr>
<td align="left"><b>methods-nodes-expand-spec</b><i>
</i></td>
<td align="right">User Option</td>
</tr>
</table>
<table width="95%" align="center">
<tr><td>
Semantic tag-types expanded by <code>ecb-expand-methods-nodes</code>.

<p>The value of this option is either the symbol <code>all</code> (all tags
are expanded regardless of their type) or a list of symbols where each
symbol is a valid semantic tag-type. For a description of semantic
tag types see option <code>ecb-show-tags</code>.

<p>But this option also defines if bucket-nodes in the ECB-method-buffer
(e.g. "[Variables]") should be expanded. Therefore valid symbols for
this list are also all cars of the variable returned by
<code>ecb--semantic-symbol-&gt;name-assoc-list</code>.

<p>If there is a bucket-name (the node-name stripped of the settings in
<code>ecb-bucket-node-display</code>) which is not contained as cdr in the
value returned by <code>ecb--semantic-symbol-&gt;name-assoc-list</code> then
the symbol with this bucket-name as name is also a valid symbol for
this list. Example: In ECB there are buckets "[Parents]". The
bucket-name is "Parents" and the valid symbol-name is then
<code>Parents</code>.

<p>This options takes only effect for semantic-sources - means sources
supported by semantic! 
</td></tr>
</table>

<p>
<table width="100%">
<tr>
<td align="left"><b>methods-separate-prototypes</b><i>
</i></td>
<td align="right">User Option</td>
</tr>
</table>
<table width="95%" align="center">
<tr><td>
Separate function-prototypes from the real functions. 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. If this option is not nil then ECB
separates the prototypes from the real function/methods. Then with
<code>ecb-show-tags</code> the user can define different display-settings
for each of them. If this option is nil then the prototypes and the
real functions are filled in the same bucket and displayed plain and
there is no sorting between prototypes and functions possible. If this
option is switched on then it is senseful that <code>ecb-show-tags</code>
contains for all modes which distinct between prototypes and real
functions/methods two entries for the tag-type 'function - see the
documentation of this option. 
</td></tr>
</table>

<p>
<table width="100%">
<tr>
<td align="left"><b>post-process-semantic-taglist</b><i>
</i></td>
<td align="right">User Option</td>
</tr>
</table>
<table width="95%" align="center">
<tr><td>
Define mode-dependent post-processing for the semantic-taglist. This
is an alist where the car is a major-mode symbol and the cdr is a list
of function-symbols of functions which should be used for
post-processing the taglist (returned by
<code>ecb--semantic-bovinate-toplevel</code>) for a buffer in this
major-mode. The first function in the list is called with current
semantic taglist of current buffer and must return a valid taglist
again. All other functions are called with the result-taglist of its
preceding function and have to return a new taglist again.

<p>For oo-programming languages where the methods of a class can be
defined outside the class-definition (e.g. C++, Eieio) the function
<code>ecb-group-function-tags-with-parents</code> can be used to get a much
better method-display in the methods-window of ECB, because all method
implementations of a class are grouped together.

<p>Another senseful usage is to filter out certain tags, e.g. prototype
tags in <code>c-mode</code>. For this you can set
<code>ecb-filter-c-prototyp-tags</code>.

<p>This options takes only effect for semantic-sources - means sources
supported by semantic! 
</td></tr>
</table>

<p>
<table width="100%">
<tr>
<td align="left"><b>show-only-positioned-tags</b><i>
</i></td>
<td align="right">User Option</td>
</tr>
</table>
<table width="95%" align="center">
<tr><td>
Show only nodes in the method-buffer which are "jump-able". If not nil
then ECB displays in the method-buffer only nodes which are
"jump-able", i.e. after selecting it by clicking or with RET then ECB
jumps to the corresponding location in the edit-window. Example: With
CLOS or Eieio source-code there can exist some position-less nodes like
variable-attributes in a <code>defclass</code> form which are only displayed
if this option is nil. Displaying such nodes can be senseful even if
they can not be jumped.

<p>This options takes only effect for semantic-sources - means sources
supported by semantic! 
</td></tr>
</table>

<p>
<table width="100%">
<tr>
<td align="left"><b>show-tags</b><i>
</i></td>
<td align="right">User Option</td>
</tr>
</table>
<table width="95%" align="center">
<tr><td>
How to show tags in the methods buffer first time after find-file. 
This functionality is set on a major-mode base, i.e. for every
major-mode a different setting can be used. The value of this option
is a list of cons-cells:

<p>The car is either a major-mode symbol or the special symbol 'default
which means if no setting for a certain major-mode is defined then the
cdr of the 'default cons-cell is used. This option should always
contain a default-setting!

<p>The cdr is a list where each element represents a type of tags:

<br><pre>(&lt;tag type&gt; &lt;display type&gt; &lt;sort method&gt;)
</pre>

<p>There can be more than 1 element for a certain &lt;tag type&gt;. 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 default value of these option
contains two entries for &lt;tag type&gt; is <code>function</code> whereas the
first one is responsible for the "real" methods (rsp. functions) and
the second one for the prototypes. So if the methods should be
flattened and the prototypes collapsed the show-tags-list for C++ and
C must contain two entries for &lt;tag type&gt; <code>function</code>, the first
one defined as <code>flattened</code> and the second one defined as
<code>collapsed</code>.

<p>The tags in the methods buffer are displayed in the order as they appear in
this list.

<dl>
<dt><code>&lt;tag type&gt;</code>
<dd>A Semantic tag type symbol (function, variable, rule, include etc.) 
or one of the following:

<ul>
<li><code>t</code>: All tag types not specified anywhere else in the list. 
<li><code>parent</code>: The parents of a type. 
</ul>

<br><dt><code>&lt;display type&gt;</code>
<dd>A symbol which describes how the tags of this type shall be shown:

<ul>
<li><code>expanded</code>: The tags are shown in an expanded node. 
<li><code>collapsed</code>: The tags are shown in a collapsed node. 
<li><code>flattened</code>: The tags are added to the parent node. 
<li><code>hidden</code>: The tags are not shown. 
</ul>

<br><dt><code>&lt;sort method&gt;</code>
<dd>A symbol describing how to sort the tags of this type:

<ul>
<li><code>name</code>:
Sort by the tag name. 
<li><code>access</code>:
Sort by tag access (public, protected, private) and then by name. 
<li><code>nil</code>:
Don't sort tags. They appear in the same order as in the source
buffer. 
</ul>
</dl>

<p>This options takes only effect for semantic-sources - means sources
supported by semantic! 
</td></tr>
</table>

<p>
<table width="100%">
<tr>
<td align="left"><b>tag-display-function</b><i>
</i></td>
<td align="right">User Option</td>
</tr>
</table>
<table width="95%" align="center">
<tr><td>
Function to use for displaying tags in the methods buffer. This
functionality is set on major-mode base, i.e. for every major-mode a
different function can be used. The value of this option is a list of
cons-cells:

<ul>
<li>The car is either a major-mode symbol or the special symbol 'default which
means if no function for a certain major-mode is defined then the cdr of
the 'default cons-cell is used. 
<li>The cdr is the function used for displaying a tag in the related
major-mode. 
</ul>

<p>Every function is called with 3 arguments:

<ol type=1 start=1>
</p><li>The tag
<li>The parent-tag of tag (can be nil)
<li>The value of <code>ecb-font-lock-tags</code>.
</ol>

<p>Every function must return the display of the tag as string,
colorized if the third argument is not nil.

<p>The following functions are predefined:

<ul>
<li>For each element E of <code>ecb--semantic-format-function-alist</code>
exists a function with name "ecb-&lt;(cdr E)&gt;". These functions are
just aliase to the builtin format-functions of semantic. See the
docstring of these functions to see what they do. Example:
(semantic-name-nonterminal . semantic-format-tag-name) is an element
of <code>ecb--semantic-format-function-alist</code>. Therefore the
alias-function for this element is named
<code>ecb--semantic-format-tag-name</code>.

<li>For every cdr in <code>ecb--semantic-format-function-alist</code> with name
"semantic-XYZ" a function with name "ecb-XYC" is predefined. The
differences between the semantic- and the ECB-version are:

<ul>
<li>The ECB-version displays for type tags only the type-name and nothing
else (exception: In c++-mode a template specifier is appended to the
type-name if a template instead a normal class). 
<li>The ECB-version displays type-tags according to the setting in
<code>ecb-type-tag-display</code>. This is useful for better recognizing
different classes, structs etc. in the ECB-method window. 
</ul>

<p>For all tags which are not types the display of the ECB-version is
identical to the semantic version. Example: For
<code>ecb--semantic-format-tag-name</code> (one of the builtin semantic
formatters) the pendant is <code>ecb-format-tag-name</code>. 
</ul>

<p>This functionality also allows the user to display tags as UML. To
enable this functionality set the function for a major-mode \(e.g. 
<code>jde-mode</code>) to
<code>ecb--semantic-format-tag-uml-concise-prototype</code>,
<code>ecb--semantic-format-tag-uml-prototype</code>, or
<code>ecb--semantic-format-tag-uml-abbreviate</code> the ECB-versions of
these functions.

<p>If the value is <code>nil</code>, i.e. neither a function for a major-mode
is defined nor the special 'default, then
<code>ecb--semantic-format-tag-prototype</code> is used for displaying the
tags.

<p>This options takes only effect for semantic-sources - means sources
supported by semantic! 
</td></tr>
</table>

<p>
<table width="100%">
<tr>
<td align="left"><b>tag-jump-sets-mark</b><i>
</i></td>
<td align="right">User Option</td>
</tr>
</table>
<table width="95%" align="center">
<tr><td>
Set the mark after jumping to a tag from the ECB-method buffer. If
set the user can easily jump back. 
</td></tr>
</table>

<p>
<table width="100%">
<tr>
<td align="left"><b>tag-visit-post-actions</b><i>
</i></td>
<td align="right">User Option</td>
</tr>
</table>
<table width="95%" align="center">
<tr><td>
Actions to perform after visiting a tag from the Method-buffer. With
this option actions can be added which will be performed after
visiting the start of the tag in the source-buffer.

<p>This functionality is set on a <code>major-mode</code> base, i.e. for every
<code>major-mode</code> a different setting can be used. The value of this
option is a list of cons-cells:
<ul>
<li>The car is either a <code>major-mode</code> symbol or the special symbol
'default.

<li>The cdr is a list of action-functions or nil. 
</ul>

<p>ECB first performs all actions defined for the special symbol 'default
(if any) and then all actions defined for current <code>major-mode</code>
(if any).

<p>ECB offers some predefined senseful action-functions. Currently there
are: <code>ecb-tag-visit-highlight-tag-header</code>
<code>ecb-tag-visit-smart-tag-start</code>
<code>ecb-tag-visit-recenter</code> <code>ecb-tag-visit-recenter-top</code>
<code>ecb-tag-visit-goto-doc-start</code>
<code>ecb-tag-visit-narrow-tag</code> See the documentation of these
function for details what they do.

<p>But you can add any arbitrary function if the following conditions are
fulfilled: The function gets the semantic tag as argument, returns the
(new) point after finishing its job and the function must not put the
point outside the tag-boundaries of the tag-argument. 
</td></tr>
</table>

<p>
<table width="100%">
<tr>
<td align="left"><b>type-tag-display</b><i>
</i></td>
<td align="right">User Option</td>
</tr>
</table>
<table width="95%" align="center">
<tr><td>
How to display semantic type-tags in the methods buffer. Normally
all tag displaying, colorizing and facing is done by semantic
according to the value returned by
<code>ecb--semantic-format-face-alist</code> and the semantic
display-function (e.g. one from
<code>ecb--semantic-format-tag-functions</code>). But sometimes a finer
distinction in displaying the different type specifiers of type-tags
can be useful. For a description when this option is evaluated look at
<code>ecb-tag-display-function</code>!

<p>This functionality is set on a major-mode base, i.e. for every
major-mode a different setting can be used. The value of this option
is a list of cons-cells:

<ul>
<li>The car is either a major-mode symbol or the special symbol 'default which
means if no setting for a certain major-mode is defined then the cdr of
the 'default cons-cell is used.

<li>The cdr is a list of 3-element-lists:

<ol type=1 start=1>
<li>First entry is a semantic type specifier in string-form. Current
available type specifiers are for example "class", "interface",
"struct", "typedef" and "enum". In addition to these ones there
is also a special ECB type specifier "group" which is related to
grouping tags (see <code>ecb-post-process-semantic-taglist</code> and
<code>ecb-group-function-tags-with-parents</code>). Any arbitrary
specifier can be set here but if it is not "group" or not known by
semantic it will be useless. 
<li>Second entry is a flag which indicates if the type-specifier string
from (1.) itself should be removed (if there is any) from the display. 
<li>Third entry is the face which is used in the ECB-method window to
display type-tags with this specifier. ECB has some predefined faces
for this (<code>ecb-type-tag-class-face</code>,
<code>ecb-type-tag-interface-face</code>, <code>ecb-type-tag-struct-face</code>,
<code>ecb-type-tag-typedef-face</code>, <code>ecb-type-tag-union-face</code>,
<code>ecb-type-tag-enum-face</code> and <code>ecb-type-tag-group-face</code>) but
any arbitrary face can be set here. This face is merged with the faces
semantic already uses to display a tag,
i.e. the result is a display where all face-attributes of the ECB-face
take effect plus all face-attributes of the semantic-faces which are not
set in the ECB-face (with XEmacs this merge doesn't work so here the
ECB-face replaces the semantic-faces; this may be fixed in future
versions).
</ol>
</ul>

<p>The default value is nil means there is no special ECB-displaying of
type-tags in addition to the displaying and colorizing semantic
does. But a value like the following could be a useful setting:

<br><pre>((default
   ("class" t ecb-type-tag-class-face)
   ("group" nil ecb-type-tag-group-face))
 (c-mode
  ("struct" nil ecb-type-tag-struct-face)
  ("typedef" nil ecb-type-tag-typedef-face)))
</pre>

<p>This means that in <code>c-mode</code> only "struct"s and "typedef"s are
displayed with special faces (the specifiers itself are not removed)
and in all other modes "class"s and grouping-tags (see
<code>ecb-tag-display-function</code>,
<code>ecb-group-function-tags-with-parents</code>) have special faces and
the "class" specifier-string is removed from the display.

<p>This options takes only effect for semantic-sources - means sources
supported by semantic! 
</td></tr>
</table>

<p>
<table width="100%">
<tr>
<td align="left"><b>type-tag-expansion</b><i>
</i></td>
<td align="right">User Option</td>
</tr>
</table>
<table width="95%" align="center">
<tr><td>
Default expansion of semantic type-tags. Semantic groups type-tags in
different type-specifiers. Current available type specifiers are for
example "class", "interface", "struct", "typedef", "union"
and "enum". In addition to these ones there is also a special ECB
type-specifier "group" which is related to grouping tags (see
<code>ecb-post-process-semantic-taglist</code>).

<p>This option defines which type-specifiers should be expanded at
file-open-time. Any arbitrary specifier can be set here but if it is
not "group" or not known by semantic it will be useless.

<p>This functionality is set on a major-mode base, i.e. for every
major-mode a different setting can be used. The value of this option
is a list of cons-cells:

<ul>
<li>The car is either a major-mode symbol or the special symbol
<code>default</code> which means if no setting for a certain major-mode is
defined then the cdr of the <code>default</code> cons-cell is used.

<li>The cdr is either a list of type-specifiers which should be expanded
at file-open-time or the symbol <code>all-specifiers</code> (then a type-tag
is always expanded regardless of its type-specifier). 
</ul>

<p>This options takes only effect for semantic-sources - means sources
supported by semantic! 
</td></tr>
</table>

</body></html>