From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: joakim@verona.se Newsgroups: gmane.emacs.devel Subject: Re: Things I would like to be added after the release Date: Sun, 17 Jun 2007 18:00:27 +0200 Message-ID: References: <86fy5ghs0s.fsf@lola.quinscape.zz> <18035.28326.988640.435412@gargle.gargle.HOWL> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1182096410 24928 80.91.229.12 (17 Jun 2007 16:06:50 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Sun, 17 Jun 2007 16:06:50 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Jun 17 18:06:48 2007 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1HzxH4-0005kW-Ul for ged-emacs-devel@m.gmane.org; Sun, 17 Jun 2007 18:06:47 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1HzxH4-00047t-Gr for ged-emacs-devel@m.gmane.org; Sun, 17 Jun 2007 12:06:46 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1HzxGa-0003ol-LV for emacs-devel@gnu.org; Sun, 17 Jun 2007 12:06:16 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1HzxGZ-0003no-4R for emacs-devel@gnu.org; Sun, 17 Jun 2007 12:06:15 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1HzxGY-0003ne-Ta for emacs-devel@gnu.org; Sun, 17 Jun 2007 12:06:14 -0400 Original-Received: from main.gmane.org ([80.91.229.2] helo=ciao.gmane.org) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1HzxGY-0001tr-9L for emacs-devel@gnu.org; Sun, 17 Jun 2007 12:06:14 -0400 Original-Received: from list by ciao.gmane.org with local (Exim 4.43) id 1HzxFF-0002Xs-GK for emacs-devel@gnu.org; Sun, 17 Jun 2007 18:04:53 +0200 Original-Received: from ua-83-227-131-3.cust.bredbandsbolaget.se ([83.227.131.3]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 17 Jun 2007 18:04:53 +0200 Original-Received: from joakim by ua-83-227-131-3.cust.bredbandsbolaget.se with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 17 Jun 2007 18:04:53 +0200 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 100 Original-X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: ua-83-227-131-3.cust.bredbandsbolaget.se User-Agent: Gnus/5.110006 (No Gnus v0.6) Emacs/22.0.95 (gnu/linux) Cancel-Lock: sha1:UHPmb4dl94m12CH3327YCLYBAY8= X-detected-kernel: Linux 2.6, seldom 2.4 (older, 4) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:73153 Archived-At: Stefan Monnier writes: >> 0) ECB works fine as is with advice. >> 3) By observing what extension points ECB needed, what >> hooks/extension points can base Emacs provide? What can we >> learn? Which of the ECB extension points are ECB specific, >> and which aren't? > > That's exactly what is usually meant by "don't use advice in Emacs". > Basically any use of defadvice is either an indication that the programmer > didn't know about some other way to do the thing, or an indication that > there is a missing hook (or config/extension point). > > But it can be difficult for Emacs authors to study some external library to > try and understand what hook/extension would be desired. So it's a lot > better if the library's maintainer helps us coming up with the right > extension point. > > > Stefan I did a quick grep on defadvice on ECB below. Disclaimer: I'm not involved in ECB development, other than as a user. ./ecb-eshell.el:141:(defadvice eshell (around ecb) ./ecb-create-layout.el:237:(defadvice delete-frame (before ecb-create-layout) ./ecb-create-layout.el:246:(defadvice delete-frame (after ecb-create-layout) ./ecb-compatibility.el:63:(defadvice bs-show (before ecb) ./ecb-compatibility.el:77:(defadvice Electric-pop-up-window (around ecb) ./ecb-compatibility.el:95:(defadvice electric-command-history (before ecb) ./ecb-compatibility.el:102:(defadvice electric-buffer-list (before ecb) ./ecb-compatibility.el:109:(defadvice electric-buffer-list (after ecb) ./ecb.texi:10792:(defadvice vc-checkin (after ecb) ./ecb.texi:13885:(defadvice XXX (before ecb activate) ./ecb-winman-support.el:177:(defadvice escreen-save-current-screen-configuration (before ecb) ./ecb-winman-support.el:227:(defadvice winring-set-name (after ecb) ./ecb-winman-support.el:245:(defadvice winring-duplicate-configuration (before ecb) ./ecb-winman-support.el:250:(defadvice winring-restore-configuration (before ecb) ./ecb-winman-support.el:259:(defadvice winring-save-current-configuration (before ecb) ./ecb-winman-support.el:270:(defadvice winring-initialize (after ecb) ./ecb-winman-support.el:293:(defadvice winner-mode (before ecb) ./ecb-winman-support.el:298:(defadvice winner-redo (before ecb) ./ecb-winman-support.el:303:(defadvice winner-undo (before ecb) ./ecb-winman-support.el:309: (defadvice push-window-configuration (before ecb) ./ecb-winman-support.el:314: (defadvice pop-window-configuration (before ecb) ./ecb-winman-support.el:319: (defadvice unpop-window-configuration (before ecb) ./ecb.info-2:2659: (defadvice vc-checkin (after ecb) ./ecb.info-2:4743: (defadvice XXX (before ecb activate) ./ecb-speedbar.el:118:(defadvice speedbar-click (around ecb) ./ecb-speedbar.el:141:(defadvice speedbar-frame-mode (around ecb) ./ecb-speedbar.el:149:(defadvice speedbar-get-focus (around ecb) ./ecb-speedbar.el:163:(defadvice dframe-mouse-set-point (around ecb) ./ecb-speedbar.el:184:(defadvice dframe-select-attached-frame (after ecb) ./ecb-util.el:413:(defadvice custom-save-all (around ecb) ./ecb-layout.el:1356:(defadvice delete-frame (around ecb) ./ecb-layout.el:1381:(defadvice compilation-set-window-height (around ecb) ./ecb-layout.el:1432:(defadvice scroll-other-window (around ecb) ./ecb-layout.el:1469:(defadvice scroll-all-mode (after ecb) ./ecb-layout.el:1481:(defadvice count-windows (around ecb) ./ecb-layout.el:1497:(defadvice walk-windows (around ecb) ./ecb-layout.el:1522:(defadvice one-window-p (around ecb) ./ecb-layout.el:1538:;; (defadvice find-file (around ecb) ./ecb-layout.el:1553:;; (defadvice find-file-other-window (around ecb) ./ecb-layout.el:1617: (defadvice show-temp-buffer-in-current-frame (around ecb) ./ecb-layout.el:1657: (defadvice shrink-window-if-larger-than-buffer (around ecb) ./ecb-layout.el:1740: (defadvice pop-to-buffer (around ecb) ./ecb-layout.el:1754: (defadvice mouse-drag-vertical-line (around ecb) ./ecb-layout.el:1765: (defadvice mouse-drag-mode-line (around ecb) ./ecb-layout.el:1777: (defadvice enlarge-window (around ecb) ./ecb-layout.el:1788: (defadvice shrink-window (around ecb) ./ecb-layout.el:1794: ;; See comment of defadvice for mouse-drag-mode-line ./ecb-layout.el:1804: (defadvice tmm-prompt (around ecb) ./ecb-layout.el:1826: (defadvice shrink-window-if-larger-than-buffer (around ecb) ./ecb-layout.el:1867: (defadvice resize-temp-buffer-window (around ecb) ./ecb-layout.el:1909: (defadvice pop-to-buffer (around ecb) ./ecb-layout.el:2796:(defadvice display-buffer (around ecb) ./ecb-layout.el:3182:(defadvice other-window (around ecb) ./ecb-layout.el:3198:(defadvice delete-windows-on (around ecb) ./ecb-layout.el:3274:(defadvice delete-window (before ecb) ./ecb-layout.el:3303:(defadvice delete-window (around ecb) ./ecb-layout.el:3365:(defadvice delete-other-windows (before ecb) ./ecb-layout.el:3389:(defadvice delete-other-windows (around ecb) ./ecb-layout.el:3453:(defadvice split-window-horizontally (around ecb) ./ecb-layout.el:3474:(defadvice split-window-vertically (around ecb) ./ecb-layout.el:3493:(defadvice split-window (before ecb) ./ecb-layout.el:3520:(defadvice split-window (around ecb) ./ecb-layout.el:3557:(defadvice switch-to-buffer-other-window (around ecb) ./ecb-layout.el:3598:(defadvice switch-to-buffer (around ecb) ./ecb-layout.el:3653:(defadvice other-window-for-scrolling (around ecb) ./ecb-layout.el:3681:(defadvice balance-windows (around ecb) ./ecb-layout.el:4516:(defadvice current-window-configuration (after ecb) ./ecb-layout.el:4551:(defadvice set-window-configuration (after ecb) ./ecb-file-browser.el:2826:(defadvice clearcase-sync-from-disk (after ecb) ./ecb-file-browser.el:3111:(defadvice vc-checkin (after ecb) -- Joakim Verona