unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* Querying available mode hooks in a given mode
@ 2014-04-13  2:46 Grant Rettke
  2014-04-13  4:54 ` Eric Abrahamsen
  0 siblings, 1 reply; 7+ messages in thread
From: Grant Rettke @ 2014-04-13  2:46 UTC (permalink / raw)
  To: help-gnu-emacs

Hi,

My goal is to, after a mode has been entered, to check whether a
particular hook exists. If it does or
does not exist, then I will run some handler code.

In an attempt to find a may to check for what hooks exist, I read the
manual, specifically the hooks
section, and didn't see what are obvious places to look.

Any idea where I should start?

Regards,

Grant Rettke | AAAS, ACM, AMA, COG, FSF, IEEE, Sigma Xi
grettke@acm.org | http://www.wisdomandwonder.com/
“Wisdom begins in wonder.” --Socrates
((λ (x) (x x)) (λ (x) (x x)))
“Life has become immeasurably better since I have been forced to stop
taking it seriously.” --Thompson



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Querying available mode hooks in a given mode
  2014-04-13  2:46 Querying available mode hooks in a given mode Grant Rettke
@ 2014-04-13  4:54 ` Eric Abrahamsen
  2014-04-14  1:52   ` Stefan Monnier
  0 siblings, 1 reply; 7+ messages in thread
From: Eric Abrahamsen @ 2014-04-13  4:54 UTC (permalink / raw)
  To: help-gnu-emacs

Grant Rettke <gcr@wisdomandwonder.com> writes:

> Hi,
>
> My goal is to, after a mode has been entered, to check whether a
> particular hook exists. If it does or
> does not exist, then I will run some handler code.
>
> In an attempt to find a may to check for what hooks exist, I read the
> manual, specifically the hooks
> section, and didn't see what are obvious places to look.
>
> Any idea where I should start?
>
> Regards,
>
> Grant Rettke | AAAS, ACM, AMA, COG, FSF, IEEE, Sigma Xi
> grettke@acm.org | http://www.wisdomandwonder.com/
> “Wisdom begins in wonder.” --Socrates
> ((λ (x) (x x)) (λ (x) (x x)))
> “Life has become immeasurably better since I have been forced to stop
> taking it seriously.” --Thompson

Unless the mode author is straying pretty far from accepted practice,
you can usually see all the hooks by doing C-h v, then typing
modeprefix--hook, and hitting TAB. That should give you a *Completion*
buffer with all the matching variables.

Eric




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Querying available mode hooks in a given mode
  2014-04-13  4:54 ` Eric Abrahamsen
@ 2014-04-14  1:52   ` Stefan Monnier
  2014-04-14  8:44     ` Eric Abrahamsen
  2014-04-14 19:09     ` Grant Rettke
  0 siblings, 2 replies; 7+ messages in thread
From: Stefan Monnier @ 2014-04-14  1:52 UTC (permalink / raw)
  To: help-gnu-emacs

>> My goal is to, after a mode has been entered, to check whether
>> a particular hook exists.  If it does or does not exist, then I will
>> run some handler code.

Can you give a concrete example?

> Unless the mode author is straying pretty far from accepted practice,
> you can usually see all the hooks by doing C-h v, then typing
> modeprefix--hook, and hitting TAB. That should give you a *Completion*
> buffer with all the matching variables.

Actually, some hooks may exist without appearing there.


        Stefan




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Querying available mode hooks in a given mode
  2014-04-14  1:52   ` Stefan Monnier
@ 2014-04-14  8:44     ` Eric Abrahamsen
  2014-04-14 19:09     ` Grant Rettke
  1 sibling, 0 replies; 7+ messages in thread
From: Eric Abrahamsen @ 2014-04-14  8:44 UTC (permalink / raw)
  To: help-gnu-emacs

Stefan Monnier <monnier@iro.umontreal.ca> writes:

>>> My goal is to, after a mode has been entered, to check whether
>>> a particular hook exists.  If it does or does not exist, then I will
>>> run some handler code.
>
> Can you give a concrete example?
>
>> Unless the mode author is straying pretty far from accepted practice,
>> you can usually see all the hooks by doing C-h v, then typing
>> modeprefix--hook, and hitting TAB. That should give you a *Completion*
>> buffer with all the matching variables.
>
> Actually, some hooks may exist without appearing there.

Hey, there were a lot of weasel words in my answer! It was definitely
meant as a "reasonable place to start".




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Querying available mode hooks in a given mode
  2014-04-14  1:52   ` Stefan Monnier
  2014-04-14  8:44     ` Eric Abrahamsen
@ 2014-04-14 19:09     ` Grant Rettke
  2014-04-14 19:27       ` Stefan Monnier
  1 sibling, 1 reply; 7+ messages in thread
From: Grant Rettke @ 2014-04-14 19:09 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: help-gnu-emacs

Hi Stefan et al,

On Sun, Apr 13, 2014 at 8:52 PM, Stefan Monnier
<monnier@iro.umontreal.ca> wrote:
>>> My goal is to, after a mode has been entered, to check whether
>>> a particular hook exists.  If it does or does not exist, then I will
>>> run some handler code.
>
> Can you give a concrete example?

Yes, it follows.

When I use Emacs Speaks Statistics [http://ess.r-project.org/], I like
all of my file buffers to be saved before evaluating any code in them,
so I wrote advice for 9 functions that provides this behavior. After
sharing that with the ESS list, one of the maintainers communicated to
me that in the development version of ESS there is a new hook that
will run when any of those 9 functions is called.

Since I'm on the MELPA version which behind that mainline dev version,
I wanted to write myself some code in my Emacs init file that upon
entering ESS mode would check if that hook exists, and it it does,
display a reminder to myself that I may migrate my code over to this
simpler approach.

Forgive my failures as a story teller; that is why I wanted to write that code.



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Querying available mode hooks in a given mode
  2014-04-14 19:09     ` Grant Rettke
@ 2014-04-14 19:27       ` Stefan Monnier
  2014-04-14 19:29         ` Grant Rettke
  0 siblings, 1 reply; 7+ messages in thread
From: Stefan Monnier @ 2014-04-14 19:27 UTC (permalink / raw)
  To: help-gnu-emacs

> When I use Emacs Speaks Statistics [http://ess.r-project.org/], I like
> all of my file buffers to be saved before evaluating any code in them,
> so I wrote advice for 9 functions that provides this behavior. After
> sharing that with the ESS list, one of the maintainers communicated to
> me that in the development version of ESS there is a new hook that
> will run when any of those 9 functions is called.

You can probably use (boundp 'ess-foo-bar-hook) to test if the hook
is available.  But that will only give the right answer after loading
the file which does (defvar ess-foo-bar-hook ...) or equivalent.


        Stefan




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Querying available mode hooks in a given mode
  2014-04-14 19:27       ` Stefan Monnier
@ 2014-04-14 19:29         ` Grant Rettke
  0 siblings, 0 replies; 7+ messages in thread
From: Grant Rettke @ 2014-04-14 19:29 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: help-gnu-emacs

On Mon, Apr 14, 2014 at 2:27 PM, Stefan Monnier
<monnier@iro.umontreal.ca> wrote:
> You can probably use (boundp 'ess-foo-bar-hook) to test if the hook
> is available.  But that will only give the right answer after loading
> the file which does (defvar ess-foo-bar-hook ...) or equivalent.

Understood and thanks.



^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2014-04-14 19:29 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-04-13  2:46 Querying available mode hooks in a given mode Grant Rettke
2014-04-13  4:54 ` Eric Abrahamsen
2014-04-14  1:52   ` Stefan Monnier
2014-04-14  8:44     ` Eric Abrahamsen
2014-04-14 19:09     ` Grant Rettke
2014-04-14 19:27       ` Stefan Monnier
2014-04-14 19:29         ` Grant Rettke

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).