unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Alan Mackenzie <acm@muc.de>
To: Stefan Monnier <monnier@IRO.UMontreal.CA>
Cc: emacs-devel@gnu.org
Subject: Re: [Emacs-diffs] trunk r116461: Connect electric-indent-mode up with CC Mode. Bug #15478.
Date: Sun, 30 Mar 2014 11:37:50 +0000	[thread overview]
Message-ID: <20140330113750.GA3338@acm.acm> (raw)
In-Reply-To: <jwvbnwrzop1.fsf-monnier+emacsdiffs@gnu.org>

Hello, Stefan.

On Thu, Mar 27, 2014 at 10:49:06AM -0400, Stefan Monnier wrote:
> >> I want to keep electric-indent-mode as a global mode that determines
> >> whether certain self-inserting keys (such as RET and others) auto-indent.
> > How is this not satisfied by e-i-m being a define-globalized-minor-mode?

> AFAICT your suggestion would not swap RET/C-j depending on e-i-m.

It would most emphatically not do so.  That is something which was never
discussed on emacs-devel before it was implemented, and it is wrong.
Unrelated things should not be bound together into a single action.

> > With the current setup, we have a rather contorted relationship between
> > e-i-m and e-i-local-m, with buffer local copies of electric-indent-mode
> > popping into and out of existence.

> For a setting which is mostly global by nature (it reflects on the
> user's general preference), I'm not worried and generally prefer this
> over using define-globalized-minor-mode which is a fine hack, but
> a hack nevertheless.

Eh?  How does global-font-lock-mode, for example, not work 100%?  It is
also "mostly global by nature".  What might not work properly if e-i-m
was made into a globalized minor mode?

With a globalized-minor-mode, it is predictable which buffers are
affected when the global command is given, namely all of them.  With
e-i-m, only some buffers are affected, and there is currently no
rationale behind which ones are, which ones aren't.  You need to read the
source code to work this out, and that is bad.

> > What about the rest of my suggestion?

> I'm worried about the possible consequences: e-i-m has been around for
> a little while now and we're somewhat familiar with its problems.

The changes I'm proposing, with the exception already noted, are not
changes in functionality.  e-i-m is essentially still fresh code - one or
two enthusiasts used it in 24.3, but it hasn't really hit big time yet.
Now is the right time to sort out its problems.  Besides, we're hackers,
and we're competent.  :-)

> Your approach might solve some problems (tho I haven't seen a clear
> statement of what those problems are, in terms of *behavior*), ...

e-i-m also toggling RET/C-j is a behaviour problem, as noted above.

But the other problems are those of bad design and bad coding, not bad
behaviour.  They are all the the consequence of a single design mistake,
namely that e-i-post-self-insert-function tries to handle the indentation
of a new line.  This has led to difficult to understand overcomplicated
coding, functional duplication, disassociation of functionality from
defuns, damaged backward compatibility, ....

These problems should be _fixed_.  To fix them is not difficult.  I'm
willing to do this.

> .... but will inevitably come with its own set of consequences.

Inevitably?  How so?

>         Stefan

-- 
Alan Mackenzie (Nuremberg, Germany).



  reply	other threads:[~2014-03-30 11:37 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <E1WFSpO-0001e7-Gm@vcs.savannah.gnu.org>
2014-02-18  0:11 ` [Emacs-diffs] trunk r116461: Connect electric-indent-mode up with CC Mode. Bug #15478 Stefan Monnier
2014-02-22 18:27   ` Alan Mackenzie
2014-02-25  3:24     ` Stefan Monnier
2014-02-28 19:50       ` Alan Mackenzie
2014-03-01 15:57         ` Stefan Monnier
2014-03-02 11:51           ` Alan Mackenzie
2014-03-04  3:48             ` Stefan Monnier
2014-03-08 22:58               ` Alan Mackenzie
2014-03-09  1:57                 ` Stefan Monnier
2014-03-09 12:37                   ` Alan Mackenzie
2014-03-10  3:37                     ` Stefan Monnier
2014-03-10  6:59                       ` Glenn Morris
2014-03-10 12:24                       ` João Távora
2014-03-10 18:30                         ` Stefan Monnier
2014-03-16 22:35                       ` Alan Mackenzie
2014-03-17 15:48                         ` Stefan
2014-03-19 22:42                           ` Alan Mackenzie
2014-03-20  1:46                             ` Stefan
2014-03-20  8:35                               ` Thien-Thi Nguyen
2014-03-21  8:24                                 ` João Távora
2014-03-22 13:13                               ` Alan Mackenzie
2014-03-22 16:14                                 ` Stefan
2014-03-22 20:19                                   ` David Caldwell
2014-03-22 22:05                                     ` David Kastrup
2014-03-22 22:32                                       ` David Caldwell
2014-03-24  1:13                                     ` Stefan
2014-03-22 22:34                                   ` Alan Mackenzie
2014-03-24  1:37                                     ` Stefan
2014-03-24 22:40                                       ` Alan Mackenzie
2014-03-25  1:37                                         ` Dmitry Gutov
2014-03-26 20:53                                           ` Alan Mackenzie
2014-03-27  8:02                                             ` Dmitry Gutov
2014-03-30 14:57                                               ` Alan Mackenzie
2014-03-31 17:11                                                 ` Dmitry Gutov
2014-04-03 21:53                                                   ` Alan Mackenzie
2014-03-25  1:54                                         ` Stefan
2014-03-26 21:21                                           ` Alan Mackenzie
2014-03-27 14:49                                             ` Stefan Monnier
2014-03-30 11:37                                               ` Alan Mackenzie [this message]
2014-03-30 16:46                                                 ` Stefan Monnier
2014-03-22 23:10                                   ` Alan Mackenzie
2014-03-24  1:39                                     ` Stefan
2014-03-24  6:59                                       ` Stephen J. Turnbull
2014-03-24  9:08                                         ` Dmitry Gutov
2014-03-24 17:19                                           ` Eli Zaretskii
2014-03-24 17:29                                             ` David Kastrup
2014-03-24 17:39                                               ` David Kastrup
2014-03-24 17:38                                             ` Dmitry Gutov
2014-03-24 17:52                                               ` Eli Zaretskii
2014-03-25  1:53                                                 ` Dmitry Gutov
2014-03-25  3:49                                                   ` Eli Zaretskii
2014-03-24 18:32                                           ` Stefan
2014-03-25  1:49                                             ` Dmitry Gutov
2014-03-25  7:44                                             ` Stephen J. Turnbull
2014-03-25  8:08                                               ` Steinar Bang
2014-03-25 16:49                                                 ` Stephen J. Turnbull
2014-03-25 17:08                                                   ` Steinar Bang
2014-03-25 17:31                                                     ` Dmitry Gutov
2014-03-25 19:28                                                       ` Steinar Bang
2014-03-25 19:49                                                         ` David Kastrup
2014-03-25 19:54                                                           ` Dmitry Gutov
2014-03-25 13:26                                               ` Stefan Monnier
2014-03-27  7:51                                                 ` Stephen J. Turnbull
2014-03-24 21:12                                         ` Alan Mackenzie

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

  List information: https://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to=20140330113750.GA3338@acm.acm \
    --to=acm@muc.de \
    --cc=emacs-devel@gnu.org \
    --cc=monnier@IRO.UMontreal.CA \
    /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 public inbox

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

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).