all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Re: Terminology change/nameing conventions?
       [not found] <87pr0fledo.fsf@rapttech.com.au>
@ 2010-05-29  3:10 ` Barry Margolin
  2010-05-29  6:21 ` Helmut Eller
  1 sibling, 0 replies; 2+ messages in thread
From: Barry Margolin @ 2010-05-29  3:10 UTC (permalink / raw)
  To: help-gnu-emacs

In article <87pr0fledo.fsf@rapttech.com.au>,
 Tim X <timx@nospam.dev.null> wrote:

> I was recently doing some work with elisp and noticed what appears to be
> differences in conventions regarding nameing. 
> 
> In general, I've always thought of the term 'hook' as indicating a
> special variable that you could add function names to and that all those
> functions would be executed when the hook runs. However, I've noticed
> that some modes, e.g. comint mode, uses the term -functions i.e.
> comint-output-functions. You use add-hook to add new functions to this
> variable. 
> 
> So, my question is why isn't this just comint-output-hook? 

A hook is just for users to add customizations that are done in addition 
to the normal behavior.  E.g. XXX-mode-hook is a place for users to add 
extra functions to run after XXX-mode.  By default, the hook will be 
empty.

comint-output-functions is used as part of the normal behavior of 
comint.  Comint initializes it with some default functions, which users 
can add to or remove.  Subsidiary modes use this to refine the behavior.

> 
> I find this a bit inconsistent and frustrating. Often, when dealing with
> a new mode, I will do a regexp of the mode variables to find all the
> hooks I can use to customize it. However, now it seems I need to look
> for -functions as well.
> 
> While on the topic of nameing, another one which seems a bit silly is
> the new functions that have been added with the name -command i.e.
> scroll-up-command. Is the additonal -command really necessary? I realise
> we have scroll-up (which ironically, is also a command!) and adding
> -command may have just been an easy suffix to distinguish it from the
> existing scroll-up command, but I still find it a bad choice. In fact,
> why do we have scroll-up and scroll-up-command? My view was that any
> function defined with (interactive) was a command. I find the addition
> of -command a bit pointless and the fact we have scroll-up and
> scroll-up-command potentially confusing - which one should I use? What
> next - adding -function suffixes!

I don't know if this is why the above functions are named like this, but
I think that XXX-command should be used for functions that are generally 
intended ONLY for interactive use, not for use within other functions.  
For instance, the end-of-buffer function would be better called 
end-of-buffer-command, because it has the side effect of setting the 
mark to the old location, which is specifically done for the benefit of 
interactive users.

-- 
Barry Margolin, barmar@alum.mit.edu
Arlington, MA
*** PLEASE post questions in newsgroups, not directly to me ***
*** PLEASE don't copy me on replies, I'll read them in the group ***


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

* Re: Terminology change/nameing conventions?
       [not found] <87pr0fledo.fsf@rapttech.com.au>
  2010-05-29  3:10 ` Terminology change/nameing conventions? Barry Margolin
@ 2010-05-29  6:21 ` Helmut Eller
  1 sibling, 0 replies; 2+ messages in thread
From: Helmut Eller @ 2010-05-29  6:21 UTC (permalink / raw)
  To: help-gnu-emacs

* Tim X [2010-05-29 02:50+0200] writes:

> I was recently doing some work with elisp and noticed what appears to be
> differences in conventions regarding nameing. 
>
> In general, I've always thought of the term 'hook' as indicating a
> special variable that you could add function names to and that all those
> functions would be executed when the hook runs. However, I've noticed
> that some modes, e.g. comint mode, uses the term -functions i.e.
> comint-output-functions. You use add-hook to add new functions to this
> variable. 
>
> So, my question is why isn't this just comint-output-hook? 

This is described in the Elisp manual:
http://www.gnu.org/software/emacs/manual/html_node/emacs/Hooks.html

There are "normal hooks" by convention ending with -hook and "non-normal
hooks" often ending with -hooks or -functions.  "Normal hooks" don't
take arguments and the result is not used.

Helmut


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

end of thread, other threads:[~2010-05-29  6:21 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <87pr0fledo.fsf@rapttech.com.au>
2010-05-29  3:10 ` Terminology change/nameing conventions? Barry Margolin
2010-05-29  6:21 ` Helmut Eller

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.