all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Stefan Monnier" <monnier+gnu/emacs@rum.cs.yale.edu>
Cc: monnier+gnu/emacs@rum.cs.yale.edu, emacs-devel@gnu.org
Subject: Re: Recent attempts at standardizing major mode definitions.
Date: Wed, 04 Sep 2002 11:40:10 -0400	[thread overview]
Message-ID: <200209041540.g84FeAf19413@rum.cs.yale.edu> (raw)
In-Reply-To: 200209040206.VAA28356@eel.dms.auburn.edu

> What is the benefit of the current situation?  It uses a macro for a
> purpose that is way more general than its original intended purpose
> and artificially forces two functionalities into one.  It all seems
> very unnatural to me.

I don't just want a standard macro.  I want this macro to strongly
encourage a "standard" behavior so that users can expect things to
work consistently, so that macro has to (by default) do more than
the strict necessary, although it (of course) needs to be flexible
enough to allow those defaults to be overridden (which the current
`define-derived-mode' does allow although not always in the most
natural/convenient way).

Many authors forget to setup an abbrev-table.
Many authors forget to run hooks.
Other authors forget to run kill-all-local-variables.
Others don't use a `foo-mode-map' variable.
Yet others don't use a `foo-mode-syntax-table' variable.
Some authors don't notice that their mode should derive from text-mode.
Others do notice but derive the mode in incorrect ways (or at
least in inconsistent ways).
Most authors don't seem to realize that just like there is a text-mode
from which most text-like editing modes derive, there should be a prog-mode
from which most programming modes derive.
...

> Defining a separate define-major-mode in the way you suggest would be
> an improvement over the current situation.  However, it still seems
> unnatural to define a very general function essentially as a special
> case of an extremely specialized function.  It would be far more
> logical to do the opposite.

Sure.  Except that define-derived-mode would pretty much do the same
things as define-derived-mode and since define-derived-mode exists,
it seems a good idea to use it.  Especially since I truly think that
modes should derive much less often from nil than they currently do.
Take a look at the expansion of define-derived-mode when the
PARENT is nil.


	Stefan

  reply	other threads:[~2002-09-04 15:40 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-09-02  2:40 Recent attempts at standardizing major mode definitions Luc Teirlinck
2002-09-02 16:51 ` Stefan Monnier
2002-09-02 17:49   ` Kai Großjohann
2002-09-02 20:39   ` Luc Teirlinck
2002-09-02 23:14     ` Stefan Monnier
2002-09-04  0:59       ` Luc Teirlinck
2002-09-04 15:27         ` Stefan Monnier
2002-09-04  1:24   ` Luc Teirlinck
2002-09-04 15:25     ` Stefan Monnier
2002-09-05  2:46     ` Richard Stallman
2002-09-04  1:35   ` Luc Teirlinck
2002-09-04 15:24     ` Stefan Monnier
2002-09-04 21:52       ` Luc Teirlinck
2002-09-05 15:54         ` Stefan Monnier
2002-09-05 16:52           ` Luc Teirlinck
2002-09-05 17:15             ` Luc Teirlinck
2002-09-04  2:06   ` Luc Teirlinck
2002-09-04 15:40     ` Stefan Monnier [this message]
2002-09-04 22:36       ` Luc Teirlinck
2002-09-06 18:03         ` Stefan Monnier
2002-09-06 18:48           ` David Masterson
2002-09-06 22:53           ` Luc Teirlinck
2002-09-07  0:05             ` Luc Teirlinck
2002-09-07  2:47             ` Luc Teirlinck
2002-09-07  3:06               ` Luc Teirlinck
2002-09-03 13:26 ` Richard Stallman
2002-09-03 13:56   ` Mario Lang
2002-09-05  2:45     ` Richard Stallman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200209041540.g84FeAf19413@rum.cs.yale.edu \
    --to=monnier+gnu/emacs@rum.cs.yale.edu \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.