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 < 2.20 the first task
|
|
38 |
you have to do is to upgrade to a version >= 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 < 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 < 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 >=
|
|
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 |