GNU bug report logs - #8304
23.2; ad-read-advised-function default to func at point

Previous Next

Package: emacs;

Reported by: Kevin Ryde <user42 <at> zip.com.au>

Date: Sun, 20 Mar 2011 23:53:01 UTC

Severity: wishlist

Tags: patch

Found in version 23.2

Done: Stefan Monnier <monnier <at> iro.umontreal.ca>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Kevin Ryde <user42 <at> zip.com.au>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: 8304 <at> debbugs.gnu.org
Subject: bug#8304: 23.2; ad-read-advised-function default to func at point
Date: Sun, 22 May 2011 10:29:07 +1000
[Message part 1 (text/plain, inline)]
Stefan Monnier <monnier <at> iro.umontreal.ca> writes:
>
> Actually, I don't think the docstring should document what `default' will
> default to.

Oh, well, it has done, and if you're using it programmatically then you
will likely want to know.  I shortened it per below.

> Actually, AFAICT the `default' argument is never used.

No doubt it's in emulation of completing-read, so you can offer a
particular default in context.  Seems like a good thing on the whole.

> Comments should start with a capital and end with a "." or some other
> appropriate punctuation.

You must have more trouble getting any comments, then getting sensible
comments, then getting more or less grammatical comments, without
worrying about full stops!



2011-05-22  Kevin Ryde  <user42 <at> zip.com.au>

	* emacs-lisp/advice.el (ad-read-advised-function): Use
	`function-called-at-point' as the default default, if it has
	advice and passes PREDICATE.

[advice.el.read-default-2.diff (text/x-diff, inline)]
--- advice.el.~1.68.~	2009-10-08 11:00:28.000000000 +1100
+++ advice.el	2011-05-22 10:19:27.000000000 +1000
@@ -2200,16 +2200,27 @@
 ;; @@ Interactive input functions:
 ;; ===============================
 
+(declare-function 'function-called-at-point "help")
+
 (defun ad-read-advised-function (&optional prompt predicate default)
   "Read name of advised function with completion from the minibuffer.
 An optional PROMPT will be used to prompt for the function.  PREDICATE
 plays the same role as for `try-completion' (which see).  DEFAULT will
-be returned on empty input (defaults to the first advised function for
-which PREDICATE returns non-nil)."
+be returned on empty input (defaults to the first advised function or
+function at point for which PREDICATE returns non-nil)."
   (if (null ad-advised-functions)
       (error "ad-read-advised-function: There are no advised functions"))
   (setq default
 	(or default
+	    ;; Prefer func name at point, if it's in ad-advised-functions etc.
+	    (let ((function (progn
+			      (require 'help)
+			      (function-called-at-point))))
+	      (and function
+		   (assoc (symbol-name function) ad-advised-functions)
+		   (or (null predicate)
+		       (funcall predicate function))
+		   function))
 	    (ad-do-advised-functions (function)
 	      (if (or (null predicate)
 		      (funcall predicate function))
[Message part 3 (text/plain, inline)]

-- 
Restaurant jargon elucidated for the layman:
"Special" -- almost gone bad and has to be sold today.

This bug report was last modified 14 years and 3 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.