From: "João Távora" <joaotavora@gmail.com>
To: Arthur Miller <arthur.miller@live.com>
Cc: tomas@tuxteam.de, emacs-devel <emacs-devel@gnu.org>
Subject: Re: A modern-mode?
Date: Wed, 16 Sep 2020 16:26:43 +0100 [thread overview]
Message-ID: <87y2l9hhe4.fsf@gmail.com> (raw)
In-Reply-To: <VI1PR06MB4526C6291A6E7AFB69CC9AC496210@VI1PR06MB4526.eurprd06.prod.outlook.com> (Arthur Miller's message of "Wed, 16 Sep 2020 16:10:37 +0200")
Arthur Miller <arthur.miller@live.com> writes:
> João Távora <joaotavora@gmail.com> writes:
> that this mechanism already is there. Question is why 3rd party packages
> don't use those placeholders? Is it lack of documentation? Or
> something else.
I think they do use them. When I load theme A it uses something for
say, the diff-added face. When I laod theme B it uses something else.
>>> I understand your sentiment, but then, you could say this for any
>>> feature, inclusive fido-mode or icomplete or even find-file.
>> I don't think you can. It's because of their simplicity that they
>> are much better integrated into Emacs's infrastructure. Compare
>> the number of lines and the number of configuration options
>> in fido-mode/icomplete-mode to the same number in those other
>> packages. These are leaner packages, they follow the existing
>> infrastructure as much as possible, rather than reinvent it.
> It is a little bit oranges to apples comparison.
Well you brought up fido-mode, not I.
> Helm offered quite
> different interaction model for completions then what was originally
> in Emacs. I don't know if fido/icomplete were in place then,
Pretty sure icomplete was.
> so it is natural that complexity is there. Also offered set of feature
> is not the same. Just being simpler in terms of complexity is not good
> enough measure of quality, although it might be a reason good enough
> to use something. Observer also that when Ivy & Co get to level of
> Helm functionality it will probably be as complex as Helm. Same for
> other completions etc.
I'm not convinced about that, simply because helm duplicates a lot of
stuff that is already in Emacs.
I'm not saying fido-mode offers the same features, just that you can add
features to it, say "acting on completions", in a way that integrates
cleanly with existing infrastructure, without having to make new
infrastructure. Helm took the route of making its own parallel
infrastructure. So when a user uses some option to customize the former
it doesn't affect the latter automatically, it has to be replicated.
This is a simple matter of modular architecture. Helm's base is used by
little more than Helm itself, in contrast to Emacs's own infrastructure.
>> But if the complexity comparison isn't satisfying to you, it's easy
>> to note that changes to the infrastructure, i.e. completion styles,
>> are "naturally" absorbed by icomplete-mode and fido-mode,
>> whereas a package such as Helm had to go through great
>> efforts to support them (reasonably recently).
> Indeed, but it is in the nature of the thing, since it historically had
> to invent what was later added to Emacs core? If I understnd the history
> correct (correct me if I am wrong).
You are mostly wrong. Icomplete already existed and so did Imenu. But
that's not the same as saying that infrastructure at the time was
sufficient for Helm's vision, or even that it is now. I'm just saying
that adding capabilities to existing infrastructure is a good thing, and
by contrast making a parallel infrastructure is less of a good thing.
Doing the former is hard because design decisions are carefully
considered since they have to serve multiple clients. Doing the latter
is easier and a good way to churn out features quickly. But alas, it
creates the problems I explained.
Sometimes things will get integrated into Emacs core, depending on how
generic they were. For example xref.el came as a rewrite of SLIME's
cross-referencing functionality. But it's a bit too ambitious to
integrate say, Helm's completion gathering code with Emacs's. Some of
Helm's interesting features can be copied, but that, again, takes work.
>> Don't understand this bit. I use ffap a lot and don't need to
>> "enable" anything, just M-x ffap. Is it a mode?
> Ok, I wasn't precise, it isn't a mode, but one can enable ffap bindings
> automatically so they replace ordinary ones by default.
Still confused. Ffap is "find file at point" right? What do you want to
replace with it?
João
next prev parent reply other threads:[~2020-09-16 15:26 UTC|newest]
Thread overview: 96+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-15 14:41 A modern-mode? Andrea Corallo via Emacs development discussions.
2020-09-15 14:51 ` Ergus
2020-09-16 0:16 ` Andrea Corallo via Emacs development discussions.
2020-09-15 15:08 ` Stefan Monnier
2020-09-15 15:26 ` Drew Adams
2020-09-15 16:34 ` Teemu Likonen
2020-09-15 18:36 ` Andrea Corallo via Emacs development discussions.
2020-09-15 21:08 ` Antoine Kalmbach
2020-09-16 4:15 ` Teemu Likonen
2020-09-16 7:52 ` Andrea Corallo via Emacs development discussions.
2020-09-15 15:13 ` Drew Adams
2020-09-15 16:31 ` Theodor Thornhill
2020-09-15 15:56 ` Göktuğ Kayaalp
2020-09-15 16:47 ` Gregory Heytings via Emacs development discussions.
[not found] ` <a4bc94ca-3130-463a-bd79-3dbffbbce492@default>
2020-09-15 17:11 ` Gregory Heytings via Emacs development discussions.
2020-09-15 17:32 ` Drew Adams
2020-09-15 17:35 ` Drew Adams
2020-09-15 18:47 ` Andrea Corallo via Emacs development discussions.
2020-09-15 20:48 ` Gregory Heytings via Emacs development discussions.
2020-09-16 0:07 ` Andrea Corallo via Emacs development discussions.
2020-09-16 8:58 ` Gregory Heytings via Emacs development discussions.
2020-09-16 9:03 ` Dmitry Gutov
2020-09-16 10:39 ` Göktuğ Kayaalp
2020-09-16 10:47 ` João Távora
2020-09-16 12:20 ` Arthur Miller
2020-09-16 5:14 ` Alfred M. Szmidt
2020-09-16 7:27 ` Andrea Corallo via Emacs development discussions.
2020-09-16 7:36 ` Alfred M. Szmidt
2020-09-16 8:36 ` Alan Third
2020-09-16 14:37 ` Drew Adams
2020-09-16 15:00 ` Arthur Miller
2020-09-16 15:22 ` Thibaut Verron
2020-09-17 3:54 ` Richard Stallman
2020-09-16 10:30 ` Göktuğ Kayaalp
2020-09-16 11:17 ` Alfred M. Szmidt
2020-09-16 14:32 ` Eli Zaretskii
2020-09-16 14:46 ` Andrea Corallo via Emacs development discussions.
2020-09-16 21:53 ` Dmitry Gutov
2020-09-16 15:18 ` Lars Ingebrigtsen
2020-09-16 15:33 ` Andrea Corallo via Emacs development discussions.
2020-09-16 15:46 ` Eli Zaretskii
2020-09-16 15:54 ` Andrea Corallo via Emacs development discussions.
2020-09-16 16:08 ` Eli Zaretskii
2020-09-16 16:17 ` Andrea Corallo via Emacs development discussions.
2020-09-16 16:28 ` Eli Zaretskii
2020-09-16 16:32 ` Noam Postavsky
2020-09-16 16:45 ` Alfred M. Szmidt
2020-09-16 16:30 ` Alan Third
2020-09-16 16:45 ` Alfred M. Szmidt
2020-09-16 22:11 ` arthur miller
2020-09-16 21:54 ` Dmitry Gutov
2020-09-16 15:18 ` Alfred M. Szmidt
2020-09-16 15:27 ` Andrea Corallo via Emacs development discussions.
2020-09-16 16:45 ` Alfred M. Szmidt
2020-09-17 3:58 ` Richard Stallman
2020-09-17 4:45 ` Alfred M. Szmidt
2020-09-17 9:54 ` Lars Brinkhoff
2020-09-18 4:09 ` Richard Stallman
2020-09-16 16:45 ` tomas
2020-09-16 21:47 ` arthur miller
2020-09-16 18:19 ` Daniel Martín
2020-09-16 18:45 ` Thibaut Verron
2020-09-16 18:53 ` Eli Zaretskii
2020-09-16 20:02 ` Thibaut Verron
2020-09-16 21:36 ` Alan Third
2020-09-17 0:11 ` arthur miller
2020-09-17 19:17 ` Alan Third
2020-09-17 19:43 ` Stefan Monnier
2020-09-17 19:54 ` arthur miller
2020-09-18 4:50 ` Arthur Miller
2020-09-17 3:18 ` Thibaut Verron
2020-09-16 21:48 ` Lars Ingebrigtsen
2020-09-17 3:53 ` Richard Stallman
2020-09-16 8:15 ` Ergus
2020-09-16 7:33 ` Robert Pluim
2020-09-16 8:55 ` tomas
2020-09-16 9:36 ` João Távora
2020-09-16 9:48 ` tomas
2020-09-16 9:54 ` João Távora
2020-09-16 10:20 ` tomas
2020-09-16 10:30 ` João Távora
2020-09-16 10:53 ` tomas
2020-09-16 11:09 ` João Távora
2020-09-16 12:40 ` Arthur Miller
2020-09-16 13:04 ` João Távora
2020-09-16 14:10 ` Arthur Miller
2020-09-16 15:26 ` João Távora [this message]
2020-09-16 15:43 ` Thibaut Verron
2020-09-16 15:45 ` João Távora
2020-09-16 14:20 ` Arthur Miller
2020-09-16 16:42 ` tomas
2020-09-16 21:46 ` arthur miller
2020-09-17 19:28 ` Alan Third
2020-09-17 19:47 ` arthur miller
2020-09-16 12:32 ` Arthur Miller
[not found] <<xjfmu1rrtks.fsf@sdf.org>
[not found] ` <<E1kIPmO-0001u5-0m@fencepost.gnu.org>
2020-09-16 14:37 ` Drew Adams
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=87y2l9hhe4.fsf@gmail.com \
--to=joaotavora@gmail.com \
--cc=arthur.miller@live.com \
--cc=emacs-devel@gnu.org \
--cc=tomas@tuxteam.de \
/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.