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

« back to all changes in this revision

Viewing changes to info-help/ecb.info-10

  • Committer: Bazaar Package Importer
  • Author(s): Joerg Jaspert
  • Date: 2004-09-01 22:15:18 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20040901221518-0jfdt2apb2rj69ey
Tags: 2.27-1
And include latest Upstream too...

Show diffs side-by-side

added added

removed removed

Lines of Context:
6
6
END-INFO-DIR-ENTRY
7
7
 
8
8
 
 
9
File: ecb.info,  Node: Possible layout-outlines,  Next: The layout-engine API,  Prev: Programming special windows,  Up: The layout-engine
 
10
 
 
11
The wide range of possible layout-outlines
 
12
------------------------------------------
 
13
 
 
14
In the two previous sections *Note Programming a new layout:: and *Note
 
15
Programming special windows:: we have explained in detail how to program new
 
16
layouts and how to program new special windows/buffers and adding them to a
 
17
new layout.
 
18
 
 
19
The intention of this section is to be a summary what are the real
 
20
restrictions for a new layout-outline programmed with `ecb-layout-define'.
 
21
This is necessary because until now we just programmed "obvious" layouts,
 
22
means layout which are in principle very similar to the standard ones which
 
23
means one big edit-window and some special windows "around" this edit-window.
 
24
This section will show you that a layout can have also very different
 
25
outlines.
 
26
 
 
27
OK, here are the real restrictions and conditions for a layout programmed
 
28
with `ecb-layout-define':
 
29
1. It must have exactly one edit-window regardless of its size. The user of
 
30
   this layout can later split this edit-window in as many edit-windows as he
 
31
   like.
 
32
 
 
33
2. All other windows created within the CREATE-CODE body of
 
34
   `ecb-layout-define' (*note Programming a new layout::) must be dedicated
 
35
   to their buffers.
 
36
 
 
37
3. All the dedicated windows must (exclusive!) either reside on the left,
 
38
   right, top or left-and-right side of the edit-window. This will be defined
 
39
   with the TYPE-argument of `ecb-layout-define' (*note Programming a new
 
40
   layout::).
 
41
 
 
42
You see, there are only three restrictions/conditions. These and only these
 
43
must be fulfilled at layout-programming.
 
44
 
 
45
Demonstrating what this really means and how flexible the layout-engine of
 
46
ECB really is, can be done best with some "pathological" layout-outlines. All
 
47
the following are correct layouts (working code is added below each layout):
 
48
 
 
49
The following is a top layout with three vertical layered special windows.
 
50
 
 
51
   ------------------------------------------------------------------
 
52
   |                                                                |
 
53
   |                 Upper special window                           |
 
54
   |                                                                |
 
55
   |----------------------------------------------------------------|
 
56
   |                                                                |
 
57
   |                 Middle special window                          |
 
58
   |                                                                |
 
59
   |----------------------------------------------------------------|
 
60
   |                                                                |
 
61
   |                 Lower special window                           |
 
62
   |                                                                |
 
63
   |================================================================|
 
64
   |                                                                |
 
65
   |                         Edit-area                              |
 
66
   |      (can be splitted by the user in several edit-windows)     |
 
67
   ------------------------------------------------------------------
 
68
   |                                                                |
 
69
   |                 Compilation-window (optional)                  |
 
70
   |                                                                |
 
71
   ------------------------------------------------------------------
 
72
 
 
73
Here is the code for that top layout (all buffers are dummy-buffers):
 
74
 
 
75
 
 
76
   ;; The "dedicated setter" functions:
 
77
   
 
78
   (defun ecb-set-usw-buffer ()
 
79
     (ecb-with-dedicated-window
 
80
       "Upper special window"
 
81
       'ecb-set-usw-buffer
 
82
         (switch-to-buffer (get-buffer-create "Upper special window"))))
 
83
   
 
84
   (defun ecb-set-msw-buffer ()
 
85
     (ecb-with-dedicated-window
 
86
       "Middle special window"
 
87
       'ecb-set-msw-buffer
 
88
         (switch-to-buffer (get-buffer-create "Middle special window"))))
 
89
   
 
90
   (defun ecb-set-lsw-buffer ()
 
91
     (ecb-with-dedicated-window
 
92
       "Lower special window"
 
93
       'ecb-set-lsw-buffer
 
94
         (switch-to-buffer (get-buffer-create "Lower special window"))))
 
95
   
 
96
   ;; The layout itself:
 
97
   
 
98
   (ecb-layout-define "example-layout3" top
 
99
     nil
 
100
   
 
101
     ;; here we have an edit-window and above one top window which we can
 
102
     ;; now split in several other windows. Dependent on the value of
 
103
     ;; `ecb-compile-window-height' we have also a compile-window at the
 
104
     ;; bottom.
 
105
   
 
106
     (ecb-set-usw-buffer)
 
107
     (ecb-split-ver 0.33)
 
108
     (ecb-set-msw-buffer)
 
109
     (ecb-split-ver 0.5)
 
110
     (ecb-set-lsw-buffer)
 
111
   
 
112
     ;; select the edit-window.
 
113
     (select-window (next-window)))
 
114
 
 
115
The following is a left-right layout which has six special windows in the
 
116
left-"column" and one big special window in the right-"column". For
 
117
left-right layouts the left-"column" and the right-"column" have always the
 
118
same width.
 
119
 
 
120
   ------------------------------------------------------------------
 
121
   |             |       |                   |                      |
 
122
   | Left1       | Left5 |                   |                      |
 
123
   |             |       |                   |                      |
 
124
   |-------------|       |                   |                      |
 
125
   |      |      |       |                   |                      |
 
126
   |      |      |       |                   |                      |
 
127
   |      |      |       |                   |                      |
 
128
   | Left2| Left3|-------|     Edit-area     |   Right1             |
 
129
   |      |      |       | (can be splitted  |                      |
 
130
   |      |      |       |  in several edit- |                      |
 
131
   |      |      |       |      windows)     |                      |
 
132
   |-------------|       |                   |                      |
 
133
   |             |       |                   |                      |
 
134
   | Left4       | Left6 |                   |                      |
 
135
   |             |       |                   |                      |
 
136
   ------------------------------------------------------------------
 
137
   |                                                                |
 
138
   |                 Compilation-window (optional)                  |
 
139
   |                                                                |
 
140
   ------------------------------------------------------------------
 
141
 
 
142
Here is the code for that left-right layout, again with dummy-buffers
 
143
(depending to your screen-resolution you will need a quite big value for
 
144
`ecb-windows-width', e.g. 0.4):
 
145
 
 
146
Here is one of the "dedicated setter" functions(1):
 
147
 
 
148
   (defun ecb-set-left1-buffer ()
 
149
     (ecb-with-dedicated-window
 
150
       "Left1"
 
151
       'ecb-set-left1-buffer
 
152
         (switch-to-buffer (get-buffer-create "Left1"))))
 
153
 
 
154
Here is the layout-definition itself:
 
155
 
 
156
   (ecb-layout-define "example-layout2" left-right
 
157
     nil
 
158
   
 
159
     ;; here we have an edit-window and left and right two windows each
 
160
     ;; with width `ecb-windows-width'. Dependent to the value of
 
161
     ;; `ecb-compile-window-height' we have also a compile-window at the
 
162
     ;; bottom.
 
163
   
 
164
     (ecb-set-left1-buffer)
 
165
     (ecb-split-hor 0.66 t)
 
166
     (ecb-split-ver 0.75)
 
167
     (ecb-set-left4-buffer)
 
168
     (select-window (previous-window (selected-window) 0))
 
169
     (ecb-split-ver 0.25 nil t)
 
170
     (ecb-set-left2-buffer)
 
171
     (ecb-split-hor 0.5)
 
172
     (ecb-set-left3-buffer)
 
173
     (select-window (next-window (next-window)))
 
174
     (ecb-set-left5-buffer)
 
175
     (ecb-split-ver 0.5)
 
176
     (ecb-set-left6-buffer)
 
177
     (select-window (next-window (next-window)))
 
178
     (ecb-set-right1-buffer))
 
179
   
 
180
     ;; select the edit-window
 
181
     (select-window (previous-window (selected-window) 0)))
 
182
 
 
183
Especially the last example should demonstrate that even very complicated
 
184
layouts are easy to program with `ecb-layout-define'.  If such layouts are
 
185
senseful is another topic ;-)
 
186
 
 
187
---------- Footnotes ----------
 
188
 
 
189
(1) The "dedicated setter functions" for all these ecb-windows/buffers are
 
190
not explicitly described - they look all like `ecb-set-left1-buffer' - of
 
191
course with different buffer-names!
 
192
 
 
193
 
 
194
File: ecb.info,  Node: The layout-engine API,  Prev: Possible layout-outlines,  Up: The layout-engine
 
195
 
 
196
The complete layout-engine API of ECB
 
197
-------------------------------------
 
198
 
 
199
This section lists all functions, macros, variables and user-options the
 
200
layout-engine API of ECB offers foreign packages. Call `describe-function'
 
201
rsp. `describe-variable' to get a detailed description.
 
202
 
 
203
Functions for programming with layouts and special ecb-windows:
 
204
 - ecb-available-layouts-member-p
 
205
 
 
206
 - ecb-canonical-ecb-windows-list
 
207
 
 
208
 - ecb-canonical-edit-windows-list
 
209
 
 
210
 - ecb-compile-window-live-p
 
211
 
 
212
 - ecb-compile-window-state
 
213
 
 
214
 - ecb-do-if-buffer-visible-in-ecb-frame
 
215
 
 
216
 - ecb-get-current-visible-ecb-buffers
 
217
 
 
218
 - ecb-layout-define
 
219
 
 
220
 - ecb-layout-switch
 
221
 
 
222
 - ecb-layout-undefine
 
223
 
 
224
 - ecb-point-in-compile-window
 
225
 
 
226
 - ecb-point-in-ecb-window
 
227
 
 
228
 - ecb-point-in-edit-window
 
229
 
 
230
 - ecb-select-edit-window
 
231
 
 
232
 - ecb-split-hor
 
233
 
 
234
 - ecb-split-ver
 
235
 
 
236
 - ecb-where-is-point
 
237
 
 
238
 - ecb-with-dedicated-window
 
239
 
 
240
Utility functions/macros:
 
241
 - ecb-enlarge-window
 
242
 
 
243
 - ecb-fix-filename
 
244
 
 
245
 - ecb-window-live-p
 
246
 
 
247
 - ecb-with-readonly-buffer
 
248
 
 
249
Some other maybe useful functions/macros:
 
250
 - ecb-with-adviced-functions
 
251
 
 
252
 - ecb-with-original-functions
 
253
 
 
254
 - ecb-with-some-adviced-functions
 
255
 
 
256
Some useful *READONLY* variables:
 
257
 - ecb-compile-window
 
258
 
 
259
 - ecb-last-edit-window-with-point
 
260
 
 
261
 - ecb-last-source-buffer
 
262
 
 
263
*Caution*: DO NOT USE THE VARIABLE `ecb-edit-window' IN YOUR PROGRAMS!
 
264
 
 
265
User-options and hooks related to the layout-engine API:
 
266
 - ecb-current-buffer-sync-hook
 
267
 
 
268
 - ecb-hide-ecb-windows-after-hook
 
269
 
 
270
 - ecb-hide-ecb-windows-before-hook
 
271
 
 
272
 - ecb-redraw-layout-after-hook
 
273
 
 
274
 - ecb-redraw-layout-before-hook
 
275
 
 
276
 - ecb-show-ecb-windows-after-hook
 
277
 
 
278
 - ecb-show-ecb-windows-before-hook
 
279
 
 
280
 - ecb-windows-height
 
281
 
 
282
 - ecb-windows-width
 
283
 
 
284
 - ecb-compile-window-height
 
285
 
 
286
 
 
287
File: ecb.info,  Node: Conflicts and bugs,  Next: FAQ,  Prev: Elisp programming,  Up: Top
 
288
 
 
289
Conflicts and bugs of ECB
 
290
*************************
 
291
 
 
292
This chapter describes what to do when there are conflicts with other
 
293
packages and also the known (and currently unfixed) bugs of ECB. If possible
 
294
(and in most cases it is possible ;-) then a practicable solution or
 
295
workaround is described.
 
296
 
 
297
* Menu:
 
298
 
 
299
* Conflicts::                   Conflicts with other packages
 
300
* Bugs::                        Known bugs
 
301
 
 
302
 
 
303
File: ecb.info,  Node: Conflicts,  Next: Bugs,  Prev: Conflicts and bugs,  Up: Conflicts and bugs
 
304
 
 
305
Conflicts with other packages
 
306
=============================
 
307
 
 
308
This chapter contains a list of already known conflict between ECB and other
 
309
packages and how to solve them - in most cases ECB already contains a
 
310
suitable workaround.
 
311
 
 
312
That is followed by a general recipe what you can do when you have detected a
 
313
conflict between ECB and a package is not listed in the
 
314
know-conflicts-section.
 
315
 
 
316
Proved workarounds or recommendations for other packages
 
317
--------------------------------------------------------
 
318
 
 
319
Here is a list of packages which are proved to work properly with ECB and if
 
320
not (i.e. there are conflicts) then helpful solutions/hints/workarounds are
 
321
offered:
 
322
 
 
323
Package avoid.el
 
324
................
 
325
 
 
326
With GNU Emacs 20.X ECB must deactivate `mouse-avoidance-mode' if the option
 
327
`ecb-show-node-info-in-minibuffer' activates for at least one ECB tree-buffer
 
328
'if-too-long or 'always. This is done automatically but only as long ECB is
 
329
activated.
 
330
 
 
331
Package bs.el
 
332
.............
 
333
 
 
334
The package bs.el offers a nifty buffer-selection buffer. The main command of
 
335
this package is `bs-show'. With ECB < 2.20 this command does not really
 
336
working well within activated ECB. But as of version 2.20 of ECB there should
 
337
be no problems using this package.
 
338
 
 
339
If you add "*buffer-selection*" as buffer-name to the option
 
340
`ecb-compilation-buffer-names' then ECB will always display the
 
341
buffer-selection buffer of bs in the compile-window (if there is one).
 
342
Otherwise bs will use the edit-area to do its job.
 
343
 
 
344
Package BBDB
 
345
............
 
346
 
 
347
As of ECB 2.21 there should be no conflicts between BBDB and ECB, so BBDB can
 
348
be used even when the ECB-windows are visible.
 
349
 
 
350
But if you encounter problems then it is recommened to use one of the
 
351
window-managers escreen.el or winring.el (*note Window-managers and ECB::).
 
352
With such a window-manager ECB and BBDB should work together very well under
 
353
all circumstances!
 
354
 
 
355
Package calendar.el
 
356
...................
 
357
 
 
358
With activated ECB `calendar' does not shrink it�s window to the small size
 
359
but splits the window equally. But if you add this to your `.emacs' it works:
 
360
 
 
361
   (add-hook 'initial-calendar-window-hook
 
362
             (function (lambda ()
 
363
                         (when (and ecb-minor-mode
 
364
                                    (ecb-point-in-edit-window))
 
365
                           ;; if no horizontal split then nothing
 
366
                           ;; special to do
 
367
                           (or (= (frame-width) (window-width))
 
368
                               (shrink-window (- (window-height) 9))))
 
369
                        )))
 
370
 
 
371
Package cygwin-mount.el
 
372
.......................
 
373
 
 
374
There can be a conflict between ECB and cygwin-mount.el if the following
 
375
conditions are true:
 
376
 
 
377
 - You are working with cygwin-mount.el (sounds clear :-)
 
378
 
 
379
 - You have set `cygwin-mount-build-mount-table-asynch' to not nil
 
380
 
 
381
 - ECB is automatically started after starting Emacs (e.g. with
 
382
   `ecb-auto-activate' or calling `ecb-activate' in `window-setup-hook')
 
383
 
 
384
 - Your Emacs-setup contains a call of `cygwin-mount-activate'.
 
385
 
 
386
Under these circumstances Emacs 21.X sometimes eats up the whole CPU (at
 
387
least with Windows XP) and the cygwin-mount-table is never build.
 
388
 
 
389
But there is an easy work-around: Call `cygwin-mount-activate' first *AFTER*
 
390
ECB is activated. This can be done with the hook `ecb-activate-hook':
 
391
 
 
392
   (add-hook 'ecb-activate-hook
 
393
             (function (lambda ()
 
394
                         (require 'cygwin-mount)
 
395
                         (setq cygwin-mount-build-mount-table-asynch t)
 
396
                         (cygwin-mount-activate))))
 
397
 
 
398
Package desktop.el
 
399
..................
 
400
 
 
401
ECB works perfectly with the desktop-saver desktop.el. But to ensure this the
 
402
option `desktop-minor-mode-table' *MUST* contain the following entry:
 
403
 
 
404
   (ecb-minor-mode nil)
 
405
 
 
406
Without this entry desktop.el tries for each buffer it loads after
 
407
Emacs-start to enable `ecb-minor-mode' and therefore to start ECB. This
 
408
conflicts with ECB! Therefore you must add the entry above to
 
409
`desktop-minor-mode-table'!
 
410
 
 
411
Further it is strongly recommended to add entries for all the minor-mode of
 
412
the semantic-package to `desktop-minor-mode-table', so for example add also:
 
413
 
 
414
   (semantic-show-unmatched-syntax-mode nil)
 
415
   (semantic-stickyfunc-mode nil)
 
416
   (senator-minor-mode nil)
 
417
   (semantic-idle-scheduler-mode nil)
 
418
 
 
419
Which modes you have to add depends on which modes of semantic you use. But
 
420
to get sure you should add all minor-modes of the semantic-package because
 
421
these modes are normally activated by the related "global" command (e.g.
 
422
`global-semantic-show-unmatched-syntax-mode') or by adding the minor-mode to
 
423
the related major-mode-hook.
 
424
 
 
425
It has also been reported that just disabling the Tip-Of-The-Day (option:
 
426
`ecb-tip-of-the-day') fixes the compatibility-problems with desktop.el. Just
 
427
try it out!
 
428
 
 
429
Package edebug (Lisp Debugger)
 
430
..............................
 
431
 
 
432
It is strongly recommended to run edebug only when the ECB-windows are
 
433
hidden. With visible ECB-windows there will probably serious conflicts
 
434
between the ECB-layout and the edebug-window-manager.
 
435
 
 
436
Package ediff.el
 
437
................
 
438
 
 
439
In most cases ECB works very well with ediff (see option
 
440
`ecb-run-ediff-in-ecb-frame'). But currently suspending ediff with
 
441
`ediff-suspend' and restoring the ediff-session (e.g. with command
 
442
`eregistry') does confuse the window-management of ECB.
 
443
 
 
444
If you often use ediff in a scenario where you suspend ediff and reactivate
 
445
it later then it is recommended to exit ECB first (`ecb-deactivate' or
 
446
`ecb-minor-mode')!
 
447
 
 
448
Package follow-mouse.el
 
449
.......................
 
450
 
 
451
The following is only relevant for Emacs 20.X!
 
452
 
 
453
ECB works very well with follow-mouse if follow-mouse is turned on *BEFORE*
 
454
ECB is activated (e.g. within the `ecb-activate-hook'). But if you activate
 
455
follow-mouse first after ECB is already activated, then the follow-mouse
 
456
stuff prevents the complete node-name to be displayed in the echo-area if
 
457
mouse moves over it. Because ECB has a much more intelligent mouse tracking
 
458
mechanism than follow-mouse the follow-mouse stuff profit from ECB and works
 
459
even better and saver as without activated ECB!
 
460
 
 
461
Package func-menu.el
 
462
....................
 
463
 
 
464
This package has been reported to produce some conflicts under some
 
465
circumstances when ECB is activated. Some of them could be reproduced by the
 
466
ECB-maintainer. So the recommendation is to disable func-menu-support when
 
467
using ECB. Normally using func-menu makes no sense in combination with ECB
 
468
because ECB provides the same and even more informations as func-menu - so
 
469
func-menu is redundant ;-)
 
470
 
 
471
Package Gnus (Newsreader)
 
472
.........................
 
473
 
 
474
As of ECB 2.21 there should be no conflicts between Gnus and ECB, so Gnus can
 
475
be used even when the ECB-windows are visible.
 
476
 
 
477
But if you encounter problems then it is recommened to use one of the
 
478
window-managers escreen.el or winring.el (*note Window-managers and ECB::).
 
479
With such a window-manager ECB and Gnus should work together very well under
 
480
all circumstances!
 
481
 
 
482
Package JDEE (Java Development Environment)
 
483
...........................................
 
484
 
 
485
JDEE has a lot of "dialogs" where the user can select among several choices.
 
486
An example is importing classes via the command `jde-import-find-and-import'.
 
487
These dialogs are strongly designed to work in an environment where a new
 
488
temporary window is created, the contents of the dialog are displayed in the
 
489
new window, the user select his choice and hits [OK]. After that the new
 
490
window is deleted and the selection is performed (for example the chosen
 
491
import statement are inserted in the source-buffer.
 
492
 
 
493
*Caution*: ECB can work very well with this dialogs but only if the
 
494
buffer-name of these dialog-buffers (normally "Dialog") is not contained in
 
495
the option `ecb-compilation-buffer-names'. So do not add the string "Dialog"
 
496
to this option!
 
497
 
 
498
*Please Note*: Regardless if a durable compile-window is used (i.e.
 
499
`ecb-compile-window-height' is not nil) or not, these JDEE-dialogs will
 
500
always being displayed by splitting the edit-window of ECB and not within the
 
501
compile-window.
 
502
 
 
503
Package scroll-all.el (scroll-all-mode)
 
504
.......................................
 
505
 
 
506
ECB advices `scroll-all-mode' so it is working correct during running ECB.
 
507
This means if point stays in an edit-window and the edit-window is splitted
 
508
then all edit-windows are scrolled by `scroll-all-mode' and no other window!
 
509
If point stays in any other window just this selected window is scrolled.
 
510
This is the only senseful behavior of `scroll-all-mode' with ECB.
 
511
 
 
512
Package VC (Version Control)
 
513
............................
 
514
 
 
515
The variable `vc-delete-logbuf-window' must be set to nil during active ECB.
 
516
This can be done with the hooks mentioned in *Note Elisp programming::.
 
517
 
 
518
Package VM (Emacs Mail-Client)
 
519
..............................
 
520
 
 
521
As of ECB 2.21 there should be no conflicts between VM and ECB, so VM can be
 
522
used even when the ECB-windows are visible.
 
523
 
 
524
But if you encounter problems then it is recommened to use one of the
 
525
window-managers escreen.el or winring.el (*note Window-managers and ECB::).
 
526
With such a window-manager ECB and VM should work together very well under
 
527
all circumstances!
 
528
 
 
529
Package winner.el (winner-mode)
 
530
...............................
 
531
 
 
532
`winner-mode' is autom. disabled as long as ECB is running. ECB has its own
 
533
window-management which is completely incompatible with `winner-mode'! But
 
534
`winner-mode' makes also not really sense with ECB.
 
535
 
 
536
Package wb-line-number.el
 
537
.........................
 
538
 
 
539
Do not use the package wb-line-number.el in combination with ECB - it will
 
540
not work and it will not work under any circumstances and there is no way to
 
541
make it work together and there will be no way in the future!
 
542
 
 
543
The reason behind that is: wb-line-number.el uses additional dedicated
 
544
windows to display the line-numbers. And ECB can not work if there there are
 
545
additional dedicated windows - additional to that ones created by ECB.
 
546
 
 
547
Application xrefactory
 
548
......................
 
549
 
 
550
Xrefactory (also known as Xref, X-ref and Xref-Speller), the refactoring
 
551
browser for (X)Emacs(1), can be used during running ECB regardless if the
 
552
ECB-windows are visible or not. There should be no conflicts as of ECB
 
553
versions >= 2.21.
 
554
 
 
555
If there are conflicts with the Xref-browser then the most recommended way is
 
556
to use one of the window-manager escreen.el or winring.el (and then use
 
557
different escreens or window-configurations for ECB and Xrefactory-browsing -
 
558
*Note Window-managers and ECB::).
 
559
 
 
560
What to do for unknown conflicts with other packages
 
561
----------------------------------------------------
 
562
 
 
563
As of version 2.20 the layout-engine of ECB is so flexible that normally
 
564
there should be no conflicts with other packages unless these packages have
 
565
their own complete window-layout-management (e.g. Gnus, BBDB, Xrefactory).
 
566
But these packages can and should be handled very well with the
 
567
window-manager-support of ECB (*note Window-managers and ECB::).
 
568
 
 
569
So if you detect an unknown (i.e. not listed in the conflicts-list in the
 
570
next subsection) conflict with a small package and some of its commands and
 
571
you have installed an ECB-version < 2.20 the first task you have to do is to
 
572
upgrade to a version >= 2.20!
 
573
 
 
574
If this doesn't solve the problem a very probable reason for the conflict is
 
575
that the command fails if called from another window than an edit-window of
 
576
the ecb-frame. So please check if the problem disappears if you call the
 
577
failing command from an edit-window of ECB.  If this is true then you you can
 
578
add the following code to your .emacs (and of course replace the XXX with the
 
579
failing command):
 
580
 
 
581
   (defadvice XXX (before ecb activate)
 
582
     "Ensures `XXX' works well when called from another window
 
583
   as an edit-window. Does nothing if called in another frame
 
584
   as the `ecb-frame'."
 
585
     (when (equal (selected-frame) ecb-frame)
 
586
       (unless (ecb-point-in-edit-window)
 
587
         (ecb-select-edit-window))))
 
588
 
 
589
This before-advice runs before the command XXX and ensures that the XXX is
 
590
called from within an edit-window if the current selected window is not an
 
591
edit-window. It does nothing if called for another frame as the ecb-frame.
 
592
 
 
593
If such an advice solves the problem then please send a not with the solution
 
594
to the ECB-mailing-list or direct to the ECB-maintainer so the solution can
 
595
be integrated in the next ECB-release
 
596
 
 
597
If calling from an edit-window fails too then please file a complete
 
598
bug-report to the ECB-mailing-list (*note Submitting problem report::). This
 
599
report should contain a detailed description which command of which package
 
600
fails under which circumstances!
 
601
 
 
602
---------- Footnotes ----------
 
603
 
 
604
(1) Xrefactory is available at <http://www.xref-tech.com>
 
605
 
 
606
 
 
607
File: ecb.info,  Node: Bugs,  Prev: Conflicts,  Up: Conflicts and bugs
 
608
 
 
609
Known bugs
 
610
==========
 
611
 
 
612
This section describes all currently known bugs of ECB. The maintainers of
 
613
ECB try to fix these bugs as soon as possible.
 
614
 
 
615
Following the source-file link in a help-buffer
 
616
-----------------------------------------------
 
617
 
 
618
The following bug occurs only in ECB-versions < 1.96 and is fixed since ECB
 
619
1.96!!
 
620
 
 
621
This bug only occurs if a compile-window is used and visible!
 
622
 
 
623
If you call functions like `describe-function' which displays a help-buffer
 
624
in the compile-window, then you will often get an output like this in the
 
625
compile-window:
 
626
 
 
627
   ecb-activate is an interactive compiled Lisp function in `ecb'.
 
628
   (ecb-activate)
 
629
   
 
630
   Activates the ECB...
 
631
 
 
632
The link to `ecb' is normally a click-able link, means if you click with the
 
633
middle-mouse button onto it the file is opened (in our example `ecb.el' would
 
634
be opened.
 
635
 
 
636
If you click onto it when the help-buffer is already the current buffer (i.e.
 
637
the compile-window is already selected before the click!)  then all is
 
638
working fine (i.e. the file is opened in the edit-window), but if you click
 
639
onto the link without selecting the compile-window before (i.e. the
 
640
edit-window is the current selected window) then the file is opened in the
 
641
compile-window which is probably not what you want. Not a big problem but
 
642
annoying.
 
643
 
 
644
The only available workaround is, first selecting the compile-window and then
 
645
clicking onto the link!
 
646
 
 
647
Extra history-entries for JDEE source-buffers
 
648
---------------------------------------------
 
649
 
 
650
ECB on occasions creates an extra edit buffer for entries in the history
 
651
window. For example, let say there are three entries in the history window:
 
652
 
 
653
   Test1
 
654
   Test2
 
655
   Test3
 
656
 
 
657
In the edit window Test1 file is edited. When clicked on Test2 entry in
 
658
history, on occasion instead of switching to the existing buffer for Test2, a
 
659
new edit buffer is opened for Test2 file. At this point, there are four
 
660
entries in the history as follows:
 
661
 
 
662
   Test2
 
663
   Test2<2>
 
664
   Test1
 
665
   Test3
 
666
 
 
667
 
9
668
File: ecb.info,  Node: FAQ,  Next: Command Index,  Prev: Conflicts and bugs,  Up: Top
10
669
 
11
670
Frequently asked questions
218
877
ECB chooses another window for    
219
878
selecting it or scrolling it.     
220
879
 
 
880
Can i increase the allowed        Yes, see the docstring of the option
 
881
depth of nested submenus.         `ecb-directories-menu-user-extension'.
 
882
 
 
883
Can i apply some filters to       Yes, see *Note Filtering the tree-buffers::
 
884
the Tree-buffers.                 
 
885
 
 
886
With XEmacs i get sometimes an    Disable the func-menu support in your
 
887
error "Wrong number of            XEmacs-setup. See *Note Conflicts::.
 
888
arguments: widen (1)". What       
 
889
can i do?                         
 
890
 
 
891
Can i use desktop.el in           Yes, see *Note Conflicts::.
 
892
combination with ECB?             
 
893
 
 
894
Opening directories takes a       Read *Note Large directories:: and/or set the
 
895
long time - what can i do?        option
 
896
                                  `ecb-prescan-directories-for-emptyness' to
 
897
                                  nil.
 
898
 
221
899
---------- Footnotes ----------
222
900
 
223
901
(1) <http://jdee.sunsite.dk/>
257
935
* display-upgraded-options:              Interactive ECB commands.
258
936
* download-ecb:                          Interactive ECB commands.
259
937
* download-semantic:                     Interactive ECB commands.
 
938
* dump-semantic-toplevel:                Interactive ECB commands.
260
939
* eshell-current-buffer-sync:            Interactive ECB commands.
261
940
* eshell-recenter:                       Interactive ECB commands.
262
941
* expand-directory-nodes:                Interactive ECB commands.
278
957
* maximize-window-methods:               Interactive ECB commands.
279
958
* maximize-window-sources:               Interactive ECB commands.
280
959
* maximize-window-speedbar:              Interactive ECB commands.
 
960
* methods-filter:                        Interactive ECB commands.
 
961
* methods-filter-current-type:           Interactive ECB commands.
 
962
* methods-filter-delete-last:            Interactive ECB commands.
 
963
* methods-filter-function:               Interactive ECB commands.
 
964
* methods-filter-nofilter:               Interactive ECB commands.
 
965
* methods-filter-protection:             Interactive ECB commands.
 
966
* methods-filter-regexp:                 Interactive ECB commands.
 
967
* methods-filter-tagclass:               Interactive ECB commands.
281
968
* minor-mode:                            Interactive ECB commands.
282
969
* nav-goto-next:                         Interactive ECB commands.
283
970
* nav-goto-previous:                     Interactive ECB commands.
310
997
* upgrade-options:                       Interactive ECB commands.
311
998
* window-sync:                           Interactive ECB commands.
312
999
 
313
 
 
314
 
File: ecb.info,  Node: Option Index,  Next: Concept Index,  Prev: Command Index,  Up: Top
315
 
 
316
 
Option Index
317
 
************
318
 
 
319
 
This index contains all customizable options of ECB.
320
 
 
321
 
*Please note*: All options in this index are listed without the prefix "ecb-"
322
 
(e.g. the option `ecb-layout-name' is listed with name "layout-name").
323
 
 
324
 
* Menu:
325
 
 
326
 
* activate-before-layout-draw-hook:      ecb-general.
327
 
* activate-before-new-frame-created-hook: ecb-layout.
328
 
* activate-hook:                         ecb-general.
329
 
* activation-selects-ecb-frame-if-already-active: ecb-general.
330
 
* add-path-for-not-matching-files:       ecb-directories.
331
 
* advice-window-functions:               ecb-layout.
332
 
* advice-window-functions-signal-error:  ecb-layout.
333
 
* auto-activate:                         ecb-general.
334
 
* auto-compatibility-check:              ecb-general.
335
 
* auto-expand-directory-tree:            ecb-directories.
336
 
* auto-expand-tag-tree:                  ecb-methods.
337
 
* auto-save-before-etags-methods-rebuild: ecb-non-semantic.
338
 
* auto-update-methods-after-save:        ecb-methods.
339
 
* before-activate-hook:                  ecb-general.
340
 
* before-deactivate-hook:                ecb-general.
341
 
* bucket-node-display:                   ecb-general.
342
 
* cache-directory-contents:              ecb-directories.
343
 
* cache-directory-contents-not:          ecb-directories.
344
 
* change-layout-preserves-compwin-state: ecb-compilation.
345
 
* clear-caches-before-activate:          ecb-general.
346
 
* common-tree-buffer-after-create-hook:  ecb-tree-buffer.
347
 
* compilation-buffer-names:              ecb-compilation.
348
 
* compilation-major-modes:               ecb-compilation.
349
 
* compilation-predicates:                ecb-compilation.
350
 
* compile-window-height:                 ecb-compilation.
351
 
* compile-window-prevent-shrink-below-height: ecb-compilation.
352
 
* compile-window-temporally-enlarge:     ecb-compilation.
353
 
* compile-window-width:                  ecb-compilation.
354
 
* create-layout-file:                    ecb-create-layout.
355
 
* current-buffer-sync-hook:              ecb-general.
356
 
* deactivate-hook:                       ecb-general.
357
 
* debug-mode:                            ecb-general.
358
 
* directories-buffer-after-create-hook:  ecb-directories.
359
 
* directories-buffer-name:               ecb-directories.
360
 
* directories-general-face:              ecb-face-options.
361
 
* directories-menu-sorter:               ecb-directories.
362
 
* directories-menu-user-extension:       ecb-directories.
363
 
* directories-menu-user-extension-function: ecb-directories.
364
 
* directory-face:                        ecb-face-options.
365
 
* display-default-dir-after-start:       ecb-directories.
366
 
* download-delete-archive:               ecb-download.
367
 
* download-install-parent-dir:           ecb-download.
368
 
* download-package-version-type:         ecb-download.
369
 
* download-url:                          ecb-download.
370
 
* ecb-create-layout-frame-height:        ecb-create-layout.
371
 
* ecb-create-layout-frame-width:         ecb-create-layout.
372
 
* enlarged-compilation-window-max-height: ecb-compilation.
373
 
* eshell-auto-activate:                  ecb-eshell.
374
 
* eshell-enlarge-when-eshell:            ecb-eshell.
375
 
* eshell-fit-window-to-command-output:   ecb-eshell.
376
 
* eshell-synchronize:                    ecb-eshell.
377
 
* exclude-parents-regexp:                ecb-methods.
378
 
* excluded-directories-regexp:           ecb-directories.
379
 
* expand-methods-switch-off-auto-expand: ecb-methods.
380
 
* fix-window-size:                       ecb-layout.
381
 
* font-lock-tags:                        ecb-methods.
382
 
* grep-find-function:                    ecb-general.
383
 
* grep-function:                         ecb-general.
384
 
* help-html-path:                        ecb-help.
385
 
* help-info-path:                        ecb-help.
386
 
* hide-ecb-windows-after-hook:           ecb-layout.
387
 
* hide-ecb-windows-before-hook:          ecb-layout.
388
 
* highlight-tag-with-point:              ecb-methods.
389
 
* highlight-tag-with-point-delay:        ecb-methods.
390
 
* history-buffer-after-create-hook:      ecb-history.
391
 
* history-buffer-name:                   ecb-history.
392
 
* history-face:                          ecb-face-options.
393
 
* history-general-face:                  ecb-face-options.
394
 
* history-item-name:                     ecb-history.
395
 
* history-menu-sorter:                   ecb-history.
396
 
* history-menu-user-extension:           ecb-history.
397
 
* history-menu-user-extension-function:  ecb-history.
398
 
* ignore-display-buffer-function:        ecb-layout.
399
 
* ignore-special-display:                ecb-layout.
400
 
* key-map:                               ecb-general.
401
 
* kill-buffer-clears-history:            ecb-history.
402
 
* layout-always-operate-in-edit-window:  ecb-layout.
403
 
* layout-debug-mode:                     ecb-layout.
404
 
* layout-name:                           ecb-layout.
405
 
* layout-window-sizes:                   ecb-layout.
406
 
* major-modes-show-or-hide:              ecb-general.
407
 
* maximize-ecb-window-after-selection:   ecb-layout.
408
 
* method-face:                           ecb-face-options.
409
 
* method-non-semantic-face:              ecb-face-options.
410
 
* methods-buffer-after-create-hook:      ecb-methods.
411
 
* methods-buffer-name:                   ecb-methods.
412
 
* methods-general-face:                  ecb-face-options.
413
 
* methods-menu-sorter:                   ecb-methods.
414
 
* methods-menu-user-extension:           ecb-methods.
415
 
* methods-menu-user-extension-function:  ecb-methods.
416
 
* methods-nodes-collapse-spec:           ecb-methods.
417
 
* methods-nodes-expand-spec:             ecb-methods.
418
 
* minor-mode-text:                       ecb-general.
419
 
* mode-line-data:                        ecb-mode-line.
420
 
* mode-line-data-face:                   ecb-mode-line.
421
 
* mode-line-display-window-number:       ecb-mode-line.
422
 
* mode-line-prefix-face:                 ecb-mode-line.
423
 
* mode-line-prefixes:                    ecb-mode-line.
424
 
* mode-line-win-nr-face:                 ecb-mode-line.
425
 
* mouse-click-destination:               ecb-general.
426
 
* new-ecb-frame:                         ecb-layout.
427
 
* non-semantic-exclude-modes:            ecb-non-semantic.
428
 
* non-semantic-methods-initial-expand:   ecb-non-semantic.
429
 
* non-semantic-parsing-function:         ecb-non-semantic.
430
 
* other-window-behavior:                 ecb-layout.
431
 
* post-process-semantic-taglist:         ecb-methods.
432
 
* primary-secondary-mouse-buttons:       ecb-tree-buffer.
433
 
* process-non-semantic-files:            ecb-non-semantic.
434
 
* rebuild-non-semantic-methods-before-hook: ecb-non-semantic.
435
 
* redraw-layout-after-hook:              ecb-layout.
436
 
* redraw-layout-before-hook:             ecb-layout.
437
 
* redraw-layout-quickly:                 ecb-layout.
438
 
* run-ediff-in-ecb-frame:                ecb-general.
439
 
* scroll-other-window-scrolls-compile-window: ecb-compilation.
440
 
* select-edit-window-on-redraw:          ecb-layout.
441
 
* show-ecb-windows-after-hook:           ecb-layout.
442
 
* show-ecb-windows-before-hook:          ecb-layout.
443
 
* show-help-format:                      ecb-help.
444
 
* show-node-info-in-minibuffer:          ecb-tree-buffer.
445
 
* show-only-positioned-tags:             ecb-methods.
446
 
* show-source-file-extension:            ecb-sources.
447
 
* show-sources-in-directories-buffer:    ecb-directories.
448
 
* show-tags:                             ecb-methods.
449
 
* sort-history-items:                    ecb-history.
450
 
* source-face:                           ecb-face-options.
451
 
* source-file-regexps:                   ecb-sources.
452
 
* source-in-directories-buffer-face:     ecb-face-options.
453
 
* source-path:                           ecb-directories.
454
 
* sources-buffer-after-create-hook:      ecb-sources.
455
 
* sources-buffer-name:                   ecb-sources.
456
 
* sources-exclude-cvsignore:             ecb-sources.
457
 
* sources-general-face:                  ecb-face-options.
458
 
* sources-menu-sorter:                   ecb-sources.
459
 
* sources-menu-user-extension:           ecb-sources.
460
 
* sources-menu-user-extension-function:  ecb-sources.
461
 
* sources-sort-method:                   ecb-sources.
462
 
* split-edit-window-after-start:         ecb-layout.
463
 
* tag-display-function:                  ecb-methods.
464
 
* tag-header-face:                       ecb-face-options.
465
 
* tag-jump-sets-mark:                    ecb-methods.
466
 
* tag-visit-post-actions:                ecb-methods.
467
 
* tip-of-the-day:                        ecb-general.
468
 
* tip-of-the-day-file:                   ecb-general.
469
 
* toggle-layout-sequence:                ecb-layout.
470
 
* tree-buffer-style:                     ecb-tree-buffer.
471
 
* tree-easy-hor-scroll:                  ecb-tree-buffer.
472
 
* tree-expand-symbol-before:             ecb-tree-buffer.
473
 
* tree-image-icons-directories:          ecb-tree-buffer.
474
 
* tree-incremental-search:               ecb-tree-buffer.
475
 
* tree-indent:                           ecb-tree-buffer.
476
 
* tree-navigation-by-arrow:              ecb-tree-buffer.
477
 
* tree-RET-selects-edit-window:          ecb-tree-buffer.
478
 
* truncate-lines:                        ecb-tree-buffer.
479
 
* truncate-long-names:                   ecb-tree-buffer.
480
 
* type-tag-display:                      ecb-methods.
481
 
* type-tag-expansion:                    ecb-methods.
482
 
* use-recursive-edit:                    ecb-general.
483
 
* use-speedbar-instead-native-tree-buffer: ecb-directories.
484
 
* version-check:                         ecb-general.
485
 
* window-sync:                           ecb-general.
486
 
* window-sync-delay:                     ecb-general.
487
 
* windows-height:                        ecb-layout.
488
 
* windows-width:                         ecb-layout.
489
 
* winman-escreen-number:                 ecb-winman.
490
 
* winman-winring-name:                   ecb-winman.
491
 
 
492
 
 
493
 
File: ecb.info,  Node: Concept Index,  Prev: Option Index,  Up: Top
494
 
 
495
 
Concept Index
496
 
*************
497
 
 
498
 
* Menu:
499
 
 
500
 
* Activation hook-sequence:              Standard activation.
501
 
* Adviced functions:                     The edit-area.
502
 
* Automatic activation:                  Automatic activation.
503
 
* Automatic deactivation:                Automatic activation.
504
 
* avoid package:                         Conflicts.
505
 
* BBDB:                                  Conflicts.
506
 
* bs package:                            Conflicts.
507
 
* bs-show:                               Conflicts.
508
 
* Bug report:                            Submitting problem report.
509
 
* calculator package:                    Conflicts.
510
 
* calendar package:                      Conflicts.
511
 
* collapsing:                            Navigation/Selection.
512
 
* compilation buffers:                   Temp- and compile-buffers.
513
 
* Creating new layouts:                  Creating a new ECB-layout.
514
 
* cygwin-mount package:                  Conflicts.
515
 
* Deactivation hook-sequence:            Standard activation.
516
 
* Directories:                           ECB Directories-buffer.
517
 
* Download:                              Downloading new versions.
518
 
* ECB-layout:                            The ECB-layout.
519
 
* ECB-windows:                           Overview.
520
 
* edebug:                                Conflicts.
521
 
* ediff:                                 Conflicts.
522
 
* edit-window:                           The edit-area.
523
 
* escreen:                               Window-managers and ECB.
524
 
* eshell:                                Using eshell.
525
 
* expanding:                             Navigation/Selection.
526
 
* Faces:                                 Changing faces.
527
 
* follow-mouse package:                  Conflicts.
528
 
* Gnus:                                  Conflicts.
529
 
* grep buffers:                          Temp- and compile-buffers.
530
 
* help buffers:                          Temp- and compile-buffers.
531
 
* Hide windows:                          Hiding the ECB windows.
532
 
* History:                               ECB Sources-buffer.
533
 
* Hooks:                                 List of hooks.
534
 
* Incremental search:                    Incremental search.
535
 
* JDEE:                                  Conflicts.
536
 
* layout:                                The ECB-layout.
537
 
* Methods:                               ECB Methods-buffer.
538
 
* minor mode:                            Standard activation.
539
 
* mouse button:                          Using the mouse.
540
 
* New layouts:                           Creating a new ECB-layout.
541
 
* non-semantic-sources:                  The Methods buffer.
542
 
* other window:                          The other window.
543
 
* POWER-click:                           Using the mouse.
544
 
* primary button:                        Using the mouse.
545
 
* Problem report:                        Submitting problem report.
546
 
* Redraw:                                Redrawing the ECB-layout.
547
 
* RETURN key:                            Navigation/Selection.
548
 
* scroll-all:                            Conflicts.
549
 
* scroll-all-mode:                       Conflicts.
550
 
* Scrolling:                             Optimize scrolling.
551
 
* secondary button:                      Using the mouse.
552
 
* semantic tag:                          Customizing the display.
553
 
* semantic-sources:                      The Methods buffer.
554
 
* SHIFT-click:                           Using the mouse.
555
 
* Show windows:                          Hiding the ECB windows.
556
 
* Small screen:                          Small screens.
557
 
* Sources:                               ECB Sources-buffer.
558
 
* special-display:                       Temp- and compile-buffers.
559
 
* Speedbar:                              Simulating speedbar.
560
 
* TAB key:                               Navigation/Selection.
561
 
* tag:                                   Customizing the display.
562
 
* temporary buffers:                     Temp- and compile-buffers.
563
 
* tmm <1>:                               Using popup-menus.
564
 
* tmm:                                   Conflicts.
565
 
* tmm-menubar:                           Conflicts.
566
 
* tree-buffer:                           Overview.
567
 
* VC package:                            Conflicts.
568
 
* Version control:                       Conflicts.
569
 
* VM package:                            Conflicts.
570
 
* window-manager:                        Window-managers and ECB.
571
 
* winner:                                Conflicts.
572
 
* winner-mode:                           Conflicts.
573
 
* winring:                               Window-managers and ECB.
574
 
* xrefactory:                            Conflicts.
575
 
 
576