From: Dmitry Gutov <dgutov@yandex.ru>
To: Stefan Monnier <monnier@iro.umontreal.ca>, emacs-devel@gnu.org
Subject: Re: Removing prog-indentation-context
Date: Fri, 25 Mar 2016 02:53:31 +0200 [thread overview]
Message-ID: <ad6222e0-fcd0-73d6-5bce-913190d789b1@yandex.ru> (raw)
In-Reply-To: <jwvegazhg0b.fsf-monnier+gmane.emacs.devel@gnu.org>
On 03/24/2016 08:55 PM, Stefan Monnier wrote:
> FWIW, I think it's a mistake to remove it. We need to move forward on
> multi-mode support, and even if prog-indentation-context is not "the
> right way" (I doubt there is such a thing anyway),
Are you against removing it in Emacs 25.1 in particular (but retaining
it, for now, on master)? We don't include support for it even in the
built-in major modes, save one. And python-mode doesn't support the more
controversial third element. The built-in antlr-mode doesn't use it
either, even though it was supposed to be the main beneficiary.
It's silly to expect third-party authors to adopt it when we haven't
done so ourselves.
By that measure, prog-indentation-context has failed, at least for
inclusion in the upcoming release.
> adapting some major
> modes to it will most likely not be wasted time, because it will most
> likely make it easier to adapt those modes to whichever other approach
> we may switch to in some future.
Respectfully, I more disagree than agree. If we put aside the
PREVIOUS-CHUNKS element, we have two elements left:
- (START . END). Yes, making modes use `prog-widen' instead of `widen'
is a good change, but it's a trivial search-replace. There's not much
benefit in doing it in advance, or waiting for third-party code to catch
up, etc. The proposed alternative: hard widen limits. If it's adopted,
it'll make using prog-widen simply unnecessary.
- FIRST-COLUMN. The proposed alternative: prog-indentation-function that
returns a column number. If we choose this one, it's likely to result in
a rather natural code transformation in modes adopting it. It's also a
different one that what we'd make to use FIRST-COLUMN, at least if we
take smie and js as examples.
> More importantly, I don't think we'll ever agree on what should be done
> in this respect because we'll only know what works and what doesn't
> *after* we install it and make it "the official way".
Why? The advancement prog-indentation-context offers is rather minimal
for new multi-mode packages to crop up overnight. And even if they
would, they could just as well test their changes using the master
branch (we do have a certain fraction of users continually building from
it, even if they don't participate in the development).
On the other hand, you have maintainers of the two active multi-mode
packages (polymode more than mmm-mode) right here, in this discussion.
And we're both capable of building Emacs from master, as well as
implementing features that depend on it. That must be true for
Christopher as well.
> The "run with it" part will hopefully help align the
> various major modes, thus making it easier for a second candidate to
> make further progress, and so on and so forth.
Yes, well, it didn't, so far.
And there are better ways to evaluate an API proposal, such as asking
for patches that add support for all of its parts, in advance.
If the demand for multi-mode support is less than we'd hope (resulting
in fewer or slower patches), it can well incubate on a feature branch.
In the meantime, the basic needs of the web development crowd are being
served by web-mode (which is not an actual multi-mode, and would likely
not benefit from features discussed here). So it's not like a lot of
people's is at a standstill because of our indecision.
> At least, that was the reason why I decided to go with
> prog-indentation-context. It was not because I thought it was The Right
> Way, the final word on the matter.
Emacs's development cycles are long, and backward compatibility promise
is significant. I don't want to get into situation with multiple blessed
solutions, all inferior in some way, all with spotty support in existing
code.
next prev parent reply other threads:[~2016-03-25 0:53 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20160322022539.16038.77264@vcs.savannah.gnu.org>
[not found] ` <E1aiC0q-0004DL-40@vcs.savannah.gnu.org>
2016-03-22 12:08 ` [Emacs-diffs] widen-limits c331b66: Implement buffer-widen-limits functionality Stefan Monnier
2016-03-22 19:44 ` Vitalie Spinu
2016-03-22 19:56 ` Drew Adams
2016-03-22 22:42 ` Vitalie Spinu
2016-03-23 0:44 ` Drew Adams
2016-03-23 7:16 ` Andreas Röhler
2016-03-23 11:58 ` Vitalie Spinu
2016-03-23 13:02 ` Andreas Röhler
2016-03-23 14:17 ` Vitalie Spinu
2016-03-23 15:34 ` Eli Zaretskii
2016-03-23 17:24 ` Andreas Röhler
2016-03-23 17:55 ` Eli Zaretskii
2016-03-23 18:53 ` Andreas Röhler
2016-03-23 21:57 ` Drew Adams
2016-03-23 22:13 ` Vitalie Spinu
2016-03-23 23:03 ` Drew Adams
2016-03-24 3:38 ` Eli Zaretskii
2016-03-24 12:24 ` Dmitry Gutov
2016-03-24 15:56 ` Eli Zaretskii
2016-03-24 18:55 ` Removing prog-indentation-context (was: [Emacs-diffs] widen-limits c331b66: Implement buffer-widen-limits functionality) Stefan Monnier
2016-03-25 0:53 ` Dmitry Gutov [this message]
2016-03-25 1:29 ` Removing prog-indentation-context Dmitry Gutov
2016-03-25 2:09 ` Stefan Monnier
2016-03-25 11:38 ` Dmitry Gutov
2016-03-26 22:29 ` John Wiegley
2016-03-28 1:03 ` Dmitry Gutov
2016-03-25 15:45 ` Vitalie Spinu
2016-03-28 21:37 ` Dmitry Gutov
2016-03-28 22:08 ` Stefan Monnier
2016-03-28 22:55 ` Dmitry Gutov
2016-03-28 23:24 ` Stefan Monnier
2016-03-28 1:03 ` [Emacs-diffs] widen-limits c331b66: Implement buffer-widen-limits functionality Dmitry Gutov
2016-03-24 3:37 ` Eli Zaretskii
2016-03-23 17:14 ` Andreas Röhler
2016-03-24 0:03 ` Vitalie Spinu
2016-03-24 0:37 ` Drew Adams
2016-03-24 2:36 ` Vitalie Spinu
2016-03-24 13:53 ` Drew Adams
2016-03-24 13:57 ` Dmitry Gutov
2016-03-24 14:31 ` Drew Adams
2016-03-24 14:56 ` Stefan Monnier
2016-03-24 15:13 ` Drew Adams
2016-03-24 15:20 ` Stefan Monnier
2016-03-24 7:00 ` Andreas Röhler
2016-03-23 14:29 ` Drew Adams
2016-03-23 21:16 ` A vision for multiple major modes [was: Re: [Emacs-diffs] widen-limits c331b66:] Alan Mackenzie
2016-03-23 21:58 ` Vitalie Spinu
2016-03-24 17:44 ` Alan Mackenzie
2016-03-24 20:43 ` Vitalie Spinu
2016-03-23 22:34 ` Dmitry Gutov
2016-03-24 18:38 ` Alan Mackenzie
2016-03-24 20:22 ` Vitalie Spinu
2016-03-25 0:11 ` Dmitry Gutov
2016-03-27 12:09 ` Alan Mackenzie
2016-03-27 22:59 ` Dmitry Gutov
2016-03-29 0:07 ` Alan Mackenzie
2016-04-01 1:15 ` Dmitry Gutov
2016-04-05 16:29 ` Alan Mackenzie
2016-04-05 22:52 ` Dmitry Gutov
2016-04-18 21:32 ` Alan Mackenzie
2016-03-28 13:00 ` Filipp Gunbin
2016-03-25 18:20 ` Phillip Lord
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=ad6222e0-fcd0-73d6-5bce-913190d789b1@yandex.ru \
--to=dgutov@yandex.ru \
--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 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.