~ubuntu-branches/debian/lenny/ecb/lenny

1 by Joerg Jaspert
Import upstream version 2.21
1
<html lang="en">
2
<head>
3
<title>ECB - the Emacs Code Browser</title>
4
<meta http-equiv="Content-Type" content="text/html">
5
<meta name=description content="ECB - the Emacs Code Browser">
6
<meta name=generator content="makeinfo 4.2">
7
<link href="http://www.gnu.org/software/texinfo/" rel=generator-home>
8
</head>
9
<body>
10
<p>
11
Node:<a name="Conflicts">Conflicts</a>,
12
Next:<a rel=next accesskey=n href="Bugs.html#Bugs">Bugs</a>,
13
Previous:<a rel=previous accesskey=p href="Conflicts-and-bugs.html#Conflicts%20and%20bugs">Conflicts and bugs</a>,
14
Up:<a rel=up accesskey=u href="Conflicts-and-bugs.html#Conflicts%20and%20bugs">Conflicts and bugs</a>
15
<hr><br>
16
17
<h3>Conflicts with other packages</h3>
18
19
<p>This chapter contains a list of already known conflict between ECB and
20
other packages and how to solve them - in most cases ECB already
21
contains a suitable workaround.
22
23
<p>But in front of this "know-conflicts-and-solutions-list" a general
24
recipe is given what you can do when you have detected a conflict
25
between ECB and a package not listed in the know-conflicts-section.
26
27
<h4>What to do for unknown conflicts with other packages</h4>
28
29
<p>As of version 2.20 the layout-engine of ECB is so flexible that
30
normally there should be no conflicts with other packages unless these
31
packages have their own complete window-layout-management (e.g. Gnus,
32
BBDB, Xrefactory). But these packages can and should be handled very
33
well with the window-manager-support of ECB (see <a href="Window-managers-and-ECB.html#Window-managers%20and%20ECB">Window-managers and ECB</a>).
34
35
<p>So if you detect an unknown (i.e. not listed in the conflicts-list in
36
the next subsection) conflict with a small package and some of its
37
commands and you have installed an ECB-version &lt; 2.20 the first task
38
you have to do is to upgrade to a version &gt;= 2.20!
39
40
<p>If this doesn't solve the problem a very probable reason for the
41
conflict is that the command fails if called from another window than
42
an edit-window of the ecb-frame. So please check if the problem
43
disappears if you call the failing command from an edit-window of ECB. 
44
If this is true then you you can add the following code to your
45
.emacs (and of course replace the XXX with the failing command):
46
47
<br><pre>(defadvice XXX (before ecb activate)
48
  "Ensures `XXX' works well when called from another window
49
as an edit-window. Does nothing if called in another frame
50
as the `ecb-frame'."
51
  (when (equal (selected-frame) ecb-frame)
52
    (unless (ecb-point-in-edit-window)
53
      (ecb-select-edit-window))))
54
</pre>
55
56
<p>This before-advice runs before the command XXX and ensures that the
57
XXX is called from within an edit-window if the current selected
58
window is not an edit-window. It does nothing if called for another
59
frame as the ecb-frame.
60
61
<p>If such an advice solves the problem then please send a not with the
62
solution to the ECB-mailing-list or direct to the ECB-maintainer so
63
the solution can be integrated in the next ECB-release
64
65
<p>If calling from an edit-window fails too then please file a complete
66
bug-report to the ECB-mailing-list (see <a href="Submitting-problem-report.html#Submitting%20problem%20report">Submitting problem report</a>). This report should contain a detailed description which
67
command of which package fails under which circumstances!
68
69
<h4>Known conflicts and proper solutions/work-arounds</h4>
70
71
<p>Here is a list of known conflicts of ECB with other packages and
72
helpful solutions/hints/workarounds:
73
74
<h5>Package avoid.el</h5>
75
76
<p>With GNU Emacs 20.X ECB must deactivate <code>mouse-avoidance-mode</code> if the
77
option <code>ecb-show-node-info-in-minibuffer</code> activates for at least one
78
ECB tree-buffer 'if-too-long or 'always. This is done automatically
79
but only as long ECB is activated.
80
81
<h5>Package bs.el</h5>
82
83
<p>The package bs.el offers a nifty buffer-selection buffer. The main
84
command of this package is <code>bs-show</code>. With ECB &lt; 2.20 this
85
command does not really working well within activated ECB. But as of
86
version 2.20 of ECB there should be no problems using this package.
87
88
<p>If you add "*buffer-selection*" as buffer-name to the option
89
<code>ecb-compilation-buffer-names</code> then ECB will always display the
90
buffer-selection buffer of bs in the compile-window (if there is one). 
91
Otherwise bs will use the edit-area to do its job.
92
93
<h5>Package BBDB</h5>
94
95
<p>As of ECB 2.21 there should be no conflicts between BBDB and ECB, so
96
BBDB can be used even when the ECB-windows are visible.
97
98
<p>But if you encounter problems then it is recommened to use one of the
99
window-managers escreen.el or winring.el (see <a href="Window-managers-and-ECB.html#Window-managers%20and%20ECB">Window-managers and ECB</a>). With such a window-manager ECB and BBDB should work together
100
very well under all circumstances!
101
102
<h5>Package calculator.el</h5>
103
104
<p>The following is only for ECB-versions &lt; 2.20. From beginning with
105
version 2.20 there are no conflicts with the package calculator.el!
106
107
<p>If the edit-window is already splitted then calling <code>calculator</code> uses
108
the whole "other" edit-window for the calculator. With an unsplitted
109
edit-window the calculator window has itŽs normal size of about 2
110
lines. Therefore itŽs recommended to set <code>calculator-electric-mode</code>
111
during ECB activation to not nil so calculator uses always the
112
echo-area instead of creating a new small window!
113
114
<h5>Package calendar.el</h5>
115
116
<p>With activated ECB <code>calendar</code> does not shrink itŽs window to the small
117
size but splits the window equally. But if you add this to your
118
<code>.emacs</code> it works:
119
120
<br><pre>(add-hook 'initial-calendar-window-hook
121
          (function (lambda ()
122
                      (when (and ecb-minor-mode
123
                                 (ecb-point-in-edit-window))
124
                        ;; if no horizontal split then nothing
125
                        ;; special to do
126
                        (or (= (frame-width) (window-width))
127
                            (shrink-window (- (window-height) 9))))
128
                     )))
129
</pre>
130
131
<h5>Package cygwin-mount.el</h5>
132
133
<p>There can be a conflict between ECB and cygwin-mount.el if the
134
following conditions are true:
135
136
<ul>
137
<li>You are working with cygwin-mount.el (sounds clear :-)
138
<li>You have set <code>cygwin-mount-build-mount-table-asynch</code> to not
139
nil
140
<li>ECB is automatically started after starting Emacs (e.g. with
141
<code>ecb-auto-activate</code> or calling <code>ecb-activate</code> in
142
<code>window-setup-hook</code>)
143
<li>Your Emacs-setup contains a call of <code>cygwin-mount-activate</code>. 
144
</ul>
145
146
<p>Under these circumstances Emacs 21.X sometimes eats up the whole CPU (at
147
least with Windows XP) and the cygwin-mount-table is never build.
148
149
<p>But there is an easy work-around: Call <code>cygwin-mount-activate</code>
150
first *AFTER* ECB is activated. This can be done with the hook
151
<code>ecb-activate-hook</code>:
152
153
<br><pre>(add-hook 'ecb-activate-hook
154
          (function (lambda ()
155
                      (require 'cygwin-mount)
156
                      (setq cygwin-mount-build-mount-table-asynch t)
157
                      (cygwin-mount-activate))))
158
</pre>
159
160
<h5>Package edebug (Lisp Debugger)</h5>
161
162
<p>It is strongly recommended to run edebug only when the ECB-windows are
163
hidden. With visible ECB-windows there will probably serious conflicts
164
between the ECB-layout and the edebug-window-manager.
165
166
<h5>Package ediff.el</h5>
167
168
<p>In most cases ECB works very well with ediff (see option
169
<code>ecb-run-ediff-in-ecb-frame</code>). But currently suspending ediff
170
with <code>ediff-suspend</code> and restoring the ediff-session (e.g. with
171
command <code>eregistry</code>) does confuse the window-management of ECB.
172
173
<p>If you often use ediff in a scenario where you suspend ediff and
174
reactivate it later then it is recommended to exit ECB first
175
(<code>ecb-deactivate</code> or <code>ecb-minor-mode</code>)!
176
177
<h5>Package escreen.el</h5>
178
179
<p>Beginning with version 1.96 ECB supports the window-manager
180
escreen.el. See <a href="Window-managers-and-ECB.html#Window-managers%20and%20ECB">Window-managers and ECB</a>.
181
182
<h5>Package follow-mouse.el</h5>
183
184
<p>The following is only relevant for Emacs 20.X!
185
186
<p>ECB works very well with follow-mouse if follow-mouse is turned on
187
<strong>BEFORE</strong> ECB is activated (e.g. within the
188
<code>ecb-activate-hook</code>). But if you activate follow-mouse first
189
after ECB is already activated, then the follow-mouse stuff prevents
190
the complete node-name to be displayed in the echo-area if mouse moves
191
over it. Because ECB has a much more intelligent mouse tracking
192
mechanism than follow-mouse the follow-mouse stuff profit from ECB and
193
works even better and saver as without activated ECB!
194
195
<h5>Package Gnus (Newsreader)</h5>
196
197
<p>As of ECB 2.21 there should be no conflicts between Gnus and ECB, so
198
Gnus can be used even when the ECB-windows are visible.
199
200
<p>But if you encounter problems then it is recommened to use one of the
201
window-managers escreen.el or winring.el (see <a href="Window-managers-and-ECB.html#Window-managers%20and%20ECB">Window-managers and ECB</a>). With such a window-manager ECB and Gnus should work together
202
very well under all circumstances!
203
204
<h5>Package JDEE (Java Development Environment)</h5>
205
206
<p>JDEE has a lot of "dialogs" where the user can select among several
207
choices. An example is importing classes via the command
208
<code>jde-import-find-and-import</code>. These dialogs are strongly designed
209
to work in an environment where a new temporary window is created, the
210
contents of the dialog are displayed in the new window, the user
211
select his choice and hits [OK]. After that the new window is deleted
212
and the selection is performed (for example the chosen import
213
statement are inserted in the source-buffer.
214
215
<p><strong>Caution</strong>: ECB can work very well with this dialogs but only if
216
the buffer-name of these dialog-buffers (normally "Dialog") is not
217
contained in the option <code>ecb-compilation-buffer-names</code>. So do not
218
add the string "Dialog" to this option!
219
220
<p><strong>Please Note</strong>: Regardless if a durable compile-window is used
221
(i.e. <code>ecb-compile-window-height</code> is not nil) or not, these
222
JDEE-dialogs will always being displayed by splitting the edit-window
223
of ECB and not within the compile-window.
224
225
<h5>Package scroll-all.el (scroll-all-mode)</h5>
226
227
<p>ECB advices <code>scroll-all-mode</code> so it is working correct during
228
running ECB. This means if point stays in an edit-window and the
229
edit-window is splitted then all edit-windows are scrolled by
230
<code>scroll-all-mode</code> and no other window! If point stays in any
231
other window just this selected window is scrolled. This is the only
232
senseful behavior of <code>scroll-all-mode</code> with ECB.
233
234
<h5>Package tmm.el (Text mode menu)</h5>
235
236
<p>In general this library does not work perfectly with ECB. Beginning
237
with version 1.95.2 ECB autom. ensures that every code which uses
238
<code>tmm-prompt</code> (e.g. <code>tmm-menubar</code>) works.
239
240
<h5>Package VC (Version Control)</h5>
241
242
<p>The variable <code>vc-delete-logbuf-window</code> must be set to nil during
243
active ECB. This can be done with the hooks mentioned in <a href="Elisp-programming.html#Elisp%20programming">Elisp programming</a>.
244
245
<h5>Package VM (Emacs Mail-Client)</h5>
246
247
<p>As of ECB 2.21 there should be no conflicts between VM and ECB, so
248
VM can be used even when the ECB-windows are visible.
249
250
<p>But if you encounter problems then it is recommened to use one of the
251
window-managers escreen.el or winring.el (see <a href="Window-managers-and-ECB.html#Window-managers%20and%20ECB">Window-managers and ECB</a>). With such a window-manager ECB and VM should work together very
252
well under all circumstances!
253
254
<h5>Package winner.el (winner-mode)</h5>
255
256
<p><code>winner-mode</code> is autom. disabled as long as ECB is running. ECB
257
has its own window-management which is completely incompatible with
258
<code>winner-mode</code>! But <code>winner-mode</code> makes also not really sense
259
with ECB.
260
261
<h5>Package winring.el</h5>
262
263
<p>Beginning with version 1.96 ECB supports the window-manager
264
winring.el. See <a href="Window-managers-and-ECB.html#Window-managers%20and%20ECB">Window-managers and ECB</a>.
265
266
<h5>Application xrefactory</h5>
267
268
<p>Xrefactory (also known as Xref, X-ref and Xref-Speller), the
269
refactoring browser for (X)Emacs<a rel=footnote href="#fn-1"><sup>1</sup></a>, can be used during running ECB regardless if the ECB-windows are
270
visible or not. There should be no conflicts as of ECB versions &gt;=
271
2.21.
272
273
<p>If there are conflicts with the Xref-browser then the most recommended
274
way is to use one of the window-manager escreen.el or winring.el (and
275
then use different escreens or window-configurations for ECB and
276
Xrefactory-browsing - <a href="Window-managers-and-ECB.html#Window-managers%20and%20ECB">Window-managers and ECB</a>).
277
278
<hr><h4>Footnotes</h4>
279
<ol type="1">
280
<li><a name="fn-1"></a>
281
<p>Xrefactory is available at
282
<a href="http://www.xref-tech.com">http://www.xref-tech.com</a>
283
</p>
284
285
</ol><hr>
286
287
</body></html>
288