* Syntax sugar question
[not found] <20210411030711.cpbbesqkuipt3lzc.ref@Ergus>
@ 2021-04-11 3:07 ` Ergus
2021-04-11 12:59 ` Stefan Monnier
2021-04-11 19:42 ` Nikolay Kudryavtsev
0 siblings, 2 replies; 3+ messages in thread
From: Ergus @ 2021-04-11 3:07 UTC (permalink / raw)
To: emacs-devel
Hi:
Following something mentioned before I would like to repeat a question
that IMO is so simple that there may be a reason why it is not
implemented in this way.
Why the minor modes variables are only t or nil?
At the moment when we want to configure certain behavior we need to set
an extra custom or create a secondary mode like:
(setq myvar 'something)
(mymode-name 1)
or
(mymode-name 1)
(mymode-name-auxiliar 1)
and of course in the code we need to check both and add the extra config
in the init file for the user.
Some modes need that myvar will be set before because in the minor-mode
function there is code like:
```
(if mymode-name
(if (eq myvar 'something)
bla
foo)
elsething)
```
So finally the question is:
Does it makes sense to add the possibility in define-minor-mode and
related functions in order to do:
(mymode-name 'something)
So mymode-name will be 'something, myvar will disappear and the above
code could become simpler either using cond and or pcase and a single
nesting level condition?
In principle this won't break backward compatibility and may improve
readability and simplify several conditions.
Does it makes sense?
Best,
Ergus
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Syntax sugar question
2021-04-11 3:07 ` Syntax sugar question Ergus
@ 2021-04-11 12:59 ` Stefan Monnier
2021-04-11 19:42 ` Nikolay Kudryavtsev
1 sibling, 0 replies; 3+ messages in thread
From: Stefan Monnier @ 2021-04-11 12:59 UTC (permalink / raw)
To: Ergus; +Cc: emacs-devel
> Why the minor modes variables are only t or nil?
Because that's how they've been defined. There's nothing magical about
minor modes, so you can definitely define something that looks and acts
very much like a minor mode but doesn't limit itself to boolean values.
Whether the `define-minor-mode` macro should offer a way to do that is
hence a UI design question. I can see the benefit of what you propose,
but I also see the benefit of sticking to this simple model.
[ I don't understand the choice of "Subject:" here, I must say.
What do minor modes have to do with syntactic sugar? ]
Stefan
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Syntax sugar question
2021-04-11 3:07 ` Syntax sugar question Ergus
2021-04-11 12:59 ` Stefan Monnier
@ 2021-04-11 19:42 ` Nikolay Kudryavtsev
1 sibling, 0 replies; 3+ messages in thread
From: Nikolay Kudryavtsev @ 2021-04-11 19:42 UTC (permalink / raw)
To: Ergus, emacs-devel
Be aware that you can do (foo-mode -1) to disable foo-mode, so the
current behavior already has some complexity.
Syntactically if we start allowing parameter passage during the mode
command, why stop at 1? Why not allow arbitrary number of params? I
think the current design is fine as it is forcing every mode to work out
of box. If people would start passing params, there would eventually be
modes that would only work if you have a legit parameter declaration.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2021-04-11 19:42 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20210411030711.cpbbesqkuipt3lzc.ref@Ergus>
2021-04-11 3:07 ` Syntax sugar question Ergus
2021-04-11 12:59 ` Stefan Monnier
2021-04-11 19:42 ` Nikolay Kudryavtsev
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).