unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* How can i enable webmode?
@ 2020-05-10 10:02 aprekates
  2020-05-10 11:05 ` Jakub Jankiewicz
       [not found] ` <CAMDYoXZKD6krOQXpX_4js16bn+MtS_imPBHHmLJ2qNEh0Z_toQ@mail.gmail.com>
  0 siblings, 2 replies; 17+ messages in thread
From: aprekates @ 2020-05-10 10:02 UTC (permalink / raw)
  To: Help Gnu Emacs mailing list

GNU Emacs 26.1 (build 2, x86_64-pc-linux-gn

I installed with M-x package-list  webmode but

html files still open in html+ mode.

Alexandros




^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: How can i enable webmode?
  2020-05-10 10:02 How can i enable webmode? aprekates
@ 2020-05-10 11:05 ` Jakub Jankiewicz
  2020-05-10 14:40   ` aprekates
       [not found] ` <CAMDYoXZKD6krOQXpX_4js16bn+MtS_imPBHHmLJ2qNEh0Z_toQ@mail.gmail.com>
  1 sibling, 1 reply; 17+ messages in thread
From: Jakub Jankiewicz @ 2020-05-10 11:05 UTC (permalink / raw)
  To: aprekates; +Cc: Help Gnu Emacs mailing list



On Sun, 10 May 2020 13:02:14 +0300
aprekates <aprekates@posteo.net> wrote:

> GNU Emacs 26.1 (build 2, x86_64-pc-linux-gn
> 
> I installed with M-x package-list  webmode but
> 
> html files still open in html+ mode.

You need to actually tell emacs to use web-mode for html files.

I have this in my emacs file:

(require 'web-mode)

(add-to-list 'auto-mode-alist
("\\.\\(php\\|php\\.in\\|xml\\|twig\\|rss\\|xsl\\|svg\\|glade\\|rng\\|kml\\|html\\|xhtml\\)\\'"
. web-mode))

--
Jakub Jankiewicz, Web Developer
https://jcubic.pl/me



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: How can i enable webmode?
  2020-05-10 11:05 ` Jakub Jankiewicz
@ 2020-05-10 14:40   ` aprekates
  2020-05-10 15:35     ` 조성빈
  0 siblings, 1 reply; 17+ messages in thread
From: aprekates @ 2020-05-10 14:40 UTC (permalink / raw)
  To: Jakub Jankiewicz; +Cc: Help Gnu Emacs mailing list

Thanks , i had the impression that package manager would handle that.

I wonder , is that step a webmode exception or
a necessary step after an 'installation' of every package?

On 10/5/20 2:05 μ.μ., Jakub Jankiewicz wrote:
>
> On Sun, 10 May 2020 13:02:14 +0300
> aprekates <aprekates@posteo.net> wrote:
>
>> GNU Emacs 26.1 (build 2, x86_64-pc-linux-gn
>>
>> I installed with M-x package-list  webmode but
>>
>> html files still open in html+ mode.
> You need to actually tell emacs to use web-mode for html files.
>
> I have this in my emacs file:
>
> (require 'web-mode)
>
> (add-to-list 'auto-mode-alist
> ("\\.\\(php\\|php\\.in\\|xml\\|twig\\|rss\\|xsl\\|svg\\|glade\\|rng\\|kml\\|html\\|xhtml\\)\\'"
> . web-mode))
>
> --
> Jakub Jankiewicz, Web Developer
> https://jcubic.pl/me
>



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: How can i enable webmode?
  2020-05-10 14:40   ` aprekates
@ 2020-05-10 15:35     ` 조성빈
  0 siblings, 0 replies; 17+ messages in thread
From: 조성빈 @ 2020-05-10 15:35 UTC (permalink / raw)
  To: aprekates; +Cc: Jakub Jankiewicz, Help Gnu Emacs mailing list

aprekates <aprekates@posteo.net> 작성:

> Thanks , i had the impression that package manager would handle that.

The package manager only ‘installs’ the elisp files.

> I wonder , is that step a webmode exception or
> a necessary step after an 'installation' of every package?

Usually (almost always), you have to add some code to your init file to
trigger it. For major modes, it’s usually adding it to auto-mode-alist. For
minor modes, you would have to activate the minor modes if you would want  
them
to be turned on from startup, and for ones that you would only like to be
turned on for some major modes, you add a major mode hook to turn the minor
mode on.

> On 10/5/20 2:05 μ.μ., Jakub Jankiewicz wrote:
>> On Sun, 10 May 2020 13:02:14 +0300
>> aprekates <aprekates@posteo.net> wrote:
>>
>>> GNU Emacs 26.1 (build 2, x86_64-pc-linux-gn
>>>
>>> I installed with M-x package-list  webmode but
>>>
>>> html files still open in html+ mode.
>> You need to actually tell emacs to use web-mode for html files.
>>
>> I have this in my emacs file:
>>
>> (require 'web-mode)
>>
>> (add-to-list 'auto-mode-alist
>> ("\\.\\(php\\|php\\.in\\|xml\\|twig\\|rss\\|xsl\\|svg\\|glade\\|rng\\|kml\\|html\\|xhtml\\)\\'"
>> . web-mode))
>>
>> --
>> Jakub Jankiewicz, Web Developer
>> https://jcubic.pl/me





^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: How can i enable webmode?
       [not found]   ` <008d9cd4-8d24-f19b-82ad-d5c1bf7a435f@posteo.net>
@ 2020-05-10 15:43     ` Alexis Roda
  2020-05-10 16:13       ` H. Dieter Wilhelm
  0 siblings, 1 reply; 17+ messages in thread
From: Alexis Roda @ 2020-05-10 15:43 UTC (permalink / raw)
  To: aprekates; +Cc: help-gnu-emacs

No, the package manager doesn't mess with your configuration.

A package is just a bunch of files sitting on you disk "passively". In
order for a package to become "active" you must "enable" it from your
configuration. This can be done in many ways depending on the use case:

- adding a major mode to auto-mode-alist
- calling a function from a hook
- requiring the package
- by using a function that has an autoload
- ...


HTH


Missatge de aprekates <aprekates@posteo.net> del dia dg., 10 de maig 2020 a
les 16:40:

> Thanks , i had the impression that package manager would handle that.
>
>
>
> On 10/5/20 1:31 μ.μ., Alexis Roda wrote:
>
> Hi Alexandros,
>
> Can't find webmode in my packages list. Assuming you meant web-mode.
>
> According to web-mode's web page (http://web-mode.org), add in your
> .emacs:
>
>     (add-to-list 'auto-mode-alist '("\\.html?\\'" . web-mode))
>
> The change will take effect the next time you open emacs.
>
>
> HTH
>
> Missatge de aprekates <aprekates@posteo.net> del dia dg., 10 de maig 2020
> a les 12:02:
>
>> GNU Emacs 26.1 (build 2, x86_64-pc-linux-gn
>>
>> I installed with M-x package-list  webmode but
>>
>> html files still open in html+ mode.
>>
>> Alexandros
>>
>>
>>


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: How can i enable webmode?
  2020-05-10 15:43     ` Alexis Roda
@ 2020-05-10 16:13       ` H. Dieter Wilhelm
  2020-05-10 16:42         ` Drew Adams
  2020-05-10 16:55         ` Dan Sommers
  0 siblings, 2 replies; 17+ messages in thread
From: H. Dieter Wilhelm @ 2020-05-10 16:13 UTC (permalink / raw)
  To: Alexis Roda; +Cc: aprekates, help-gnu-emacs

Alexis Roda <alexis.roda.villalonga@gmail.com> writes:

> No, the package manager doesn't mess with your configuration.
>
> A package is just a bunch of files sitting on you disk "passively". In
> order for a package to become "active" you must "enable" it from your
> configuration. This can be done in many ways depending on the use case:
>
> - adding a major mode to auto-mode-alist
> - calling a function from a hook
> - requiring the package
> - by using a function that has an autoload
> - ...

That is what I've experienced from the package manager so far.  :-) But
my feeling is that for small packages which do not require a lot of
customisation and are unobtrusive it makes sense to trigger their
functionality without additional user action.

For example the Melpa package `inform' is activating itsel during
installation (and maybe by restarting Emacs in some situations).  The
motivation is: If you are interested you'll have it without much ado and
if you don't like it any more just uninstall the small package.

Does it make sense or do you regard this behaviour as impolite?

     Dieter

>
> HTH
>
>
> Missatge de aprekates <aprekates@posteo.net> del dia dg., 10 de maig 2020 a
> les 16:40:
>
>> Thanks , i had the impression that package manager would handle that.
>>
>>
>>
>> On 10/5/20 1:31 μ.μ., Alexis Roda wrote:
>>
>> Hi Alexandros,
>>
>> Can't find webmode in my packages list. Assuming you meant web-mode.
>>
>> According to web-mode's web page (http://web-mode.org), add in your
>> .emacs:
>>
>>     (add-to-list 'auto-mode-alist '("\\.html?\\'" . web-mode))
>>
>> The change will take effect the next time you open emacs.
>>
>>
>> HTH
>>
>> Missatge de aprekates <aprekates@posteo.net> del dia dg., 10 de maig 2020
>> a les 12:02:
>>
>>> GNU Emacs 26.1 (build 2, x86_64-pc-linux-gn
>>>
>>> I installed with M-x package-list  webmode but
>>>
>>> html files still open in html+ mode.
>>>
>>> Alexandros
>>>
>>>
>>>
>

-- 
Best wishes
H. Dieter Wilhelm
Zwingenberg, Germany



^ permalink raw reply	[flat|nested] 17+ messages in thread

* RE: How can i enable webmode?
  2020-05-10 16:13       ` H. Dieter Wilhelm
@ 2020-05-10 16:42         ` Drew Adams
  2020-05-11 11:55           ` H. Dieter Wilhelm
  2020-05-10 16:55         ` Dan Sommers
  1 sibling, 1 reply; 17+ messages in thread
From: Drew Adams @ 2020-05-10 16:42 UTC (permalink / raw)
  To: dieter, Alexis Roda; +Cc: aprekates, help-gnu-emacs

> For example the Melpa package `inform' is activating itsel during
> installation (and maybe by restarting Emacs in some situations).  The
> motivation is: If you are interested you'll have it without much ado
> and
> if you don't like it any more just uninstall the small package.
> 
> Does it make sense or do you regard this behaviour as impolite?

It's generally considered impolite, and is
contrary to convention.

Loading a library should in general not change
most user-observable behavior.  It shouldn't
change faces, key bindings, actions of existing
commands, etc.

"Installing a package" does a little bit more
than loading a typical library (Lisp file).
The main thing package-installing does, which
might or might not be done by just loading a
library (e.g. `require'), is to establish
autoloading for some commands etc.
___

This is, in fact, the very first rule of the
Emacs Lisp Coding Conventions:

  D.1 Emacs Lisp Coding Conventions
  =================================

  Here are conventions that you should follow when
  writing Emacs Lisp code intended for widespread use:

   • Simply loading a package should not change Emacs’s
     editing behavior.  Include a command or commands
     to enable and disable the feature, or to invoke it.

     This convention is mandatory for any file that
     includes custom definitions.  If fixing such a file
     to follow this convention requires an incompatible
     change, go ahead and make the incompatible change;
     don’t postpone it.

https://www.gnu.org/software/emacs/manual/html_node/elisp/Coding-Conventions.html

These conventions apply pretty strictly to code
to be included in Emacs.  And they are offered
as guidance for 3rd-party (i.e., user) code.



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: How can i enable webmode?
  2020-05-10 16:13       ` H. Dieter Wilhelm
  2020-05-10 16:42         ` Drew Adams
@ 2020-05-10 16:55         ` Dan Sommers
  2020-05-11 12:03           ` H. Dieter Wilhelm
  1 sibling, 1 reply; 17+ messages in thread
From: Dan Sommers @ 2020-05-10 16:55 UTC (permalink / raw)
  To: H. Dieter Wilhelm; +Cc: aprekates, help-gnu-emacs

On Sun, 10 May 2020 18:13:35 +0200
dieter@duenenhof-wilhelm.de (H. Dieter Wilhelm) wrote:

> For example the Melpa package `inform' is activating itsel during
> installation (and maybe by restarting Emacs in some situations).  The
> motivation is: If you are interested you'll have it without much ado
> and if you don't like it any more just uninstall the small package.

> Does it make sense or do you regard this behaviour as impolite?

In a word, impolite.  IMO.  YMMV.  I don't know what `inform' does or
which underlying mechanism `inform' uses to activate itself, but does it
clean up after itself (cleanly and completely) when you uninstall it, or
does it leave "harmless" code somewhere where it might be dangerous
later?  Does it have better-than-reasonable default behavior, and whose
opinion?

This came up, oh, I don't know, years ago in terms of new Emacs
features.  Should they be enabled by default, so that new users don't
have to start with a 15 (or 30) year old system and add the modern
conveniences they expected out of the box?  Or should they be disabled,
so that experienced users aren't annoyed by someone else's shiny
objects?



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: How can i enable webmode?
  2020-05-10 16:42         ` Drew Adams
@ 2020-05-11 11:55           ` H. Dieter Wilhelm
  2020-05-11 12:03             ` tomas
                               ` (2 more replies)
  0 siblings, 3 replies; 17+ messages in thread
From: H. Dieter Wilhelm @ 2020-05-11 11:55 UTC (permalink / raw)
  To: Drew Adams; +Cc: aprekates, help-gnu-emacs

Drew Adams <drew.adams@oracle.com> writes:

>> For example the Melpa package `inform' is activating itsel during
>> installation (and maybe by restarting Emacs in some situations).  The
>> motivation is: If you are interested you'll have it without much ado
>> and
>> if you don't like it any more just uninstall the small package.
>> 
>> Does it make sense or do you regard this behaviour as impolite?
>
> It's generally considered impolite, and is
> contrary to convention.

Thank you for showing the Lisp coding convention.

And I accept these reasonable rules.  But I think there are also
borderline cases where (small?) packages don't change editing behaviour
and do not change existing code in any way.  And the its feature(s) can
be completely removed by uninstalling the package.

Why would I download a package if I do not want to activate an
advertised feature?  So this uncommon way can save unnecessary hassle, I
hope.

        Dieter


> Loading a library should in general not change
> most user-observable behavior.  It shouldn't
> change faces, key bindings, actions of existing
> commands, etc.
>
> "Installing a package" does a little bit more
> than loading a typical library (Lisp file).
> The main thing package-installing does, which
> might or might not be done by just loading a
> library (e.g. `require'), is to establish
> autoloading for some commands etc.
> ___
>
> This is, in fact, the very first rule of the
> Emacs Lisp Coding Conventions:
>
>   D.1 Emacs Lisp Coding Conventions
>   =================================
>
>   Here are conventions that you should follow when
>   writing Emacs Lisp code intended for widespread use:
>
>    • Simply loading a package should not change Emacs’s
>      editing behavior.  Include a command or commands
>      to enable and disable the feature, or to invoke it.
>
>      This convention is mandatory for any file that
>      includes custom definitions.  If fixing such a file
>      to follow this convention requires an incompatible
>      change, go ahead and make the incompatible change;
>      don’t postpone it.
>
> https://www.gnu.org/software/emacs/manual/html_node/elisp/Coding-Conventions.html
>
> These conventions apply pretty strictly to code
> to be included in Emacs.  And they are offered
> as guidance for 3rd-party (i.e., user) code.
>
>

-- 
Best wishes
H. Dieter Wilhelm
Zwingenberg, Germany



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: How can i enable webmode?
  2020-05-11 11:55           ` H. Dieter Wilhelm
@ 2020-05-11 12:03             ` tomas
  2020-05-11 12:47               ` H. Dieter Wilhelm
  2020-05-11 15:02             ` Drew Adams
  2020-05-11 16:05             ` Stefan Monnier
  2 siblings, 1 reply; 17+ messages in thread
From: tomas @ 2020-05-11 12:03 UTC (permalink / raw)
  To: help-gnu-emacs

[-- Attachment #1: Type: text/plain, Size: 803 bytes --]

On Mon, May 11, 2020 at 01:55:22PM +0200, H. Dieter Wilhelm wrote:

[...]

> Why would I download a package if I do not want to activate an
> advertised feature?  So this uncommon way can save unnecessary hassle, I
> hope.

Sometimes (actually, webmode is a nice example) you as a user
want to decide on a case-by-case basis which is the one you
want to activate on a HTML file. Perhaps via a file variable?
Perhaps manually? The installer just doesn't know.

Perhaps you don't want Emacs to decide at all based on the
file name, but on contents (I, for one, have this tendency).
Then you'd be miffed that Emacs, all of a sudden, uses some
mode on files named *.html.

Mode decisions are far too "interesting" for a simple installer
to take decisions for you :)

Cheers
-- tomás

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: How can i enable webmode?
  2020-05-10 16:55         ` Dan Sommers
@ 2020-05-11 12:03           ` H. Dieter Wilhelm
  2020-05-11 14:01             ` Dan Sommers
  2020-05-11 16:09             ` Stefan Monnier
  0 siblings, 2 replies; 17+ messages in thread
From: H. Dieter Wilhelm @ 2020-05-11 12:03 UTC (permalink / raw)
  To: Dan Sommers; +Cc: aprekates, help-gnu-emacs

Hello Dan

Thank you for your reply.

Dan Sommers <2QdxY4RzWzUUiLuE@potatochowder.com> writes:

> On Sun, 10 May 2020 18:13:35 +0200
> dieter@duenenhof-wilhelm.de (H. Dieter Wilhelm) wrote:
>
>> For example the Melpa package `inform' is activating itsel during
>> installation (and maybe by restarting Emacs in some situations).  The
>> motivation is: If you are interested you'll have it without much ado
>> and if you don't like it any more just uninstall the small package.
>
>> Does it make sense or do you regard this behaviour as impolite?
>
> In a word, impolite.  IMO.  YMMV.  I don't know what `inform' does or
> which underlying mechanism `inform' uses to activate itself, but does it
> clean up after itself (cleanly and completely) when you uninstall it, or
> does it leave "harmless" code somewhere where it might be dangerous
> later?  Does it have better-than-reasonable default behavior, and whose
> opinion?

Inform is creating links (clickable buttons) from functions and variable
names in *info* buffers to their inbuilt *Help* documentation.  (The
small code base is loaded with a ;;;###autoload instruction.)

After uninstalling (and restarting Emacs) the code is completely
removed.

Thinking about it, do you know if it is possible for a running GNU-Emacs
to erase its memory or part of it or same everything with a name prefix?

> This came up, oh, I don't know, years ago in terms of new Emacs
> features.  Should they be enabled by default, so that new users don't
> have to start with a 15 (or 30) year old system and add the modern
> conveniences they expected out of the box?  Or should they be disabled,
> so that experienced users aren't annoyed by someone else's shiny
> objects?

I don't know, for Melpa or Elpa packages I wilfully want to have this
functionality, so why not expecting immediate gratification? ;-)

When I'm installing most browser add-ons they are immediately active.
The same goes for OS package managers when I'm doing

   $ sudo aptitude install sshd

the server is immediately started and this is how it should work.

               Dieter
-- 
Best wishes
H. Dieter Wilhelm
Zwingenberg, Germany



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: How can i enable webmode?
  2020-05-11 12:03             ` tomas
@ 2020-05-11 12:47               ` H. Dieter Wilhelm
  0 siblings, 0 replies; 17+ messages in thread
From: H. Dieter Wilhelm @ 2020-05-11 12:47 UTC (permalink / raw)
  To: tomas; +Cc: help-gnu-emacs

<tomas@tuxteam.de> writes:

> On Mon, May 11, 2020 at 01:55:22PM +0200, H. Dieter Wilhelm wrote:
>
> [...]
>
>> Why would I download a package if I do not want to activate an
>> advertised feature?  So this uncommon way can save unnecessary hassle, I
>> hope.
>
> Sometimes (actually, webmode is a nice example) you as a user
> want to decide on a case-by-case basis which is the one you
> want to activate on a HTML file. Perhaps via a file variable?
> Perhaps manually? The installer just doesn't know.
>
> Perhaps you don't want Emacs to decide at all based on the
> file name, but on contents (I, for one, have this tendency).
> Then you'd be miffed that Emacs, all of a sudden, uses some
> mode on files named *.html.
>
> Mode decisions are far too "interesting" for a simple installer
> to take decisions for you :)

You are right, there must be customisation variables and the more
features the more options. :-)

-- 
Best wishes
H. Dieter Wilhelm
Zwingenberg, Germany



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: How can i enable webmode?
  2020-05-11 12:03           ` H. Dieter Wilhelm
@ 2020-05-11 14:01             ` Dan Sommers
  2020-05-11 16:09             ` Stefan Monnier
  1 sibling, 0 replies; 17+ messages in thread
From: Dan Sommers @ 2020-05-11 14:01 UTC (permalink / raw)
  To: help-gnu-emacs

On Mon, 11 May 2020 14:03:44 +0200
dieter@duenenhof-wilhelm.de (H. Dieter Wilhelm) wrote:

> Inform is creating links (clickable buttons) from functions and
> variable names in *info* buffers to their inbuilt *Help*
> documentation.  (The small code base is loaded with a ;;;###autoload
> instruction.)
> 
> After uninstalling (and restarting Emacs) the code is completely
> removed.

Then Inform is one of the good ones.  :-)

It's not so bad with Emacs packages (likely due to the guidelines Drew
Adams quoted), but too much software leaves little reminders of itself
behind, like random files under $HOME (or worse, random changes to files
under $HOME).

> Thinking about it, do you know if it is possible for a running
> GNU-Emacs to erase its memory or part of it or same everything with a
> name prefix?

I don't know.  I suppose it would be possible to call makunbound and
fmakunbound on some set of symbols and then to run a complete garbage
collection, but that doesn't necessarily erase or overwrite any
particular memory, and it may leave other things in a weird state.  For
me, it's much easier to restart.

> When I'm installing most browser add-ons they are immediately active
> ...

This is true.  OTOH, browsing the web is more passive than editing
files.

> ... The same goes for OS package managers when I'm doing
> 
>    $ sudo aptitude install sshd
> 
> the server is immediately started and this is how it should work.

That's potentially dangerous, especially for sshd, depending on the
default configuration and what's on the machine.  Just sayin.  Not all
software is created equal.  Not all users are created equal, either.



^ permalink raw reply	[flat|nested] 17+ messages in thread

* RE: How can i enable webmode?
  2020-05-11 11:55           ` H. Dieter Wilhelm
  2020-05-11 12:03             ` tomas
@ 2020-05-11 15:02             ` Drew Adams
  2020-05-11 16:05             ` Stefan Monnier
  2 siblings, 0 replies; 17+ messages in thread
From: Drew Adams @ 2020-05-11 15:02 UTC (permalink / raw)
  To: dieter; +Cc: aprekates, help-gnu-emacs

> >> For example the Melpa package `inform' is activating itsel during
> >> installation (and maybe by restarting Emacs in some situations).
> The
> >> motivation is: If you are interested you'll have it without much ado
> >> and
> >> if you don't like it any more just uninstall the small package.
> >>
> >> Does it make sense or do you regard this behaviour as impolite?
> >
> > It's generally considered impolite, and is
> > contrary to convention.
> 
> Thank you for showing the Lisp coding convention.
> 
> And I accept these reasonable rules.  But I think there are also
> borderline cases where (small?) packages don't change editing behaviour
> and do not change existing code in any way.  And the its feature(s) can
> be completely removed by uninstalling the package.
> 
> Why would I download a package if I do not want to activate an
> advertised feature?  So this uncommon way can save unnecessary hassle,
> I hope.

First, a user may well want to download something
just to try it out, without wanting, say, changes
made to a local setup.  Or even just want to take
a look at the source code.  There's good logic,
and consideration of users, behind such guidelines.

But second, I personally agree that they should be
only guidelines (for 3rd-party coders), and such
guidelines have exceptions.

I think that what's really important/helpful is for
the Commentary in a library (source file), or some
other associated doc, to make clear what happens,
what the behavior is.

If a user uses a command, or loads a file, or turns
something on, s?he should know just what will happen.
If s?he then does that, knowing what will happen,
that's a user choice.

An example:

GNU Emacs policy/recommendation is that code should
not bind or set a user-option value. The idea behind
that (good, reasonable) guideline is that it's a
_user_ setting, and a user preference should be respected.

But what about a command or other user-choosable
construct whose very purpose is to change an option
value?  Does it make sense to outlaw providing such
things to users?  No, IMO.

For example, there are Isearch options, and there
are Isearch keys that temporarily have the effect
of toggling the behavior controlled by some such
options.  They actually toggle an internal variable,
without affecting the option value.  But what if
the point of a particular key/command is precisely
to change (e.g. toggle) an option, so that the
change affects not only the current Isearch but
also subsequent ones?

In such cases my own opinion differs from GNU Emacs
policy.  I don't feel constrained, in providing
3rd-party code, to never bind or even set option
values.  I do feel compelled to document behavior.
It's then up to users to choose whether to take
advantage of it.

Same thing applies to commands that might change
colors or whatever interactively.  IMO, there's
no reason that Customize should be the only way
for users to alter such state.  It's good, not
bad, to provide ways for users to incrementally
change appearance or behavior interactively.

But it's important that users be in control, that
they choose whether to do this or that, knowing
what behavior will result.

Just one opinion.

Understand that those guidelines came about
because there were too many Lisp files that did
change too many things just by loading them.
It was hard for users to work around that, undo
it, or sometimes even be aware that it was
happening.

It's understandable that this happens, because
the typical road to the creation of a 3rd-party
library often starts with someone's personal
customizations (with Lisp code).  Such a file
of code that changes behavior can evolve into
a library that others pick up.  And it's all too
easy for that evolution to skip steps of making
sure every behavior change becomes something
optional and undoable.

There are degrees.  And it's not always easy to
make everything optional and undoable.  A minor
mode is a good way to provide for optional
behavior, in general: key bindings, whatever.
But some changes of Emacs state are not so easily
reversed.  The most important thing, IMO, is to
be clear (document) what happens.



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: How can i enable webmode?
  2020-05-11 11:55           ` H. Dieter Wilhelm
  2020-05-11 12:03             ` tomas
  2020-05-11 15:02             ` Drew Adams
@ 2020-05-11 16:05             ` Stefan Monnier
  2020-05-11 17:22               ` H. Dieter Wilhelm
  2 siblings, 1 reply; 17+ messages in thread
From: Stefan Monnier @ 2020-05-11 16:05 UTC (permalink / raw)
  To: help-gnu-emacs

> Why would I download a package if I do not want to activate an
> advertised feature?

Maybe because you're a sysadmin and want to install it for all users,
but let each user decide whether they want the feature or not?


        Stefan




^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: How can i enable webmode?
  2020-05-11 12:03           ` H. Dieter Wilhelm
  2020-05-11 14:01             ` Dan Sommers
@ 2020-05-11 16:09             ` Stefan Monnier
  1 sibling, 0 replies; 17+ messages in thread
From: Stefan Monnier @ 2020-05-11 16:09 UTC (permalink / raw)
  To: help-gnu-emacs

> When I'm installing most browser add-ons they are immediately active.
> The same goes for OS package managers when I'm doing
>
>    $ sudo aptitude install sshd
>
> the server is immediately started and this is how it should work.

Yes, I consider this a misfeature of Debian packaging.

The problem is not so much that `aptitude install sshd` activates the
package additionally to installing it, but rather that the packaging
system does not offer any way to separate the two tasks.


        Stefan




^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: How can i enable webmode?
  2020-05-11 16:05             ` Stefan Monnier
@ 2020-05-11 17:22               ` H. Dieter Wilhelm
  0 siblings, 0 replies; 17+ messages in thread
From: H. Dieter Wilhelm @ 2020-05-11 17:22 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: help-gnu-emacs

Stefan Monnier <monnier@iro.umontreal.ca> writes:

>> Why would I download a package if I do not want to activate an
>> advertised feature?
>
> Maybe because you're a sysadmin and want to install it for all users,
> but let each user decide whether they want the feature or not?

I didn't include such a scenario but it is not a show stopper.  If there
exists a customisation option in the package to inhibit the feature!

    Dieter
-- 
Best wishes
H. Dieter Wilhelm
Zwingenberg, Germany



^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2020-05-11 17:22 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-05-10 10:02 How can i enable webmode? aprekates
2020-05-10 11:05 ` Jakub Jankiewicz
2020-05-10 14:40   ` aprekates
2020-05-10 15:35     ` 조성빈
     [not found] ` <CAMDYoXZKD6krOQXpX_4js16bn+MtS_imPBHHmLJ2qNEh0Z_toQ@mail.gmail.com>
     [not found]   ` <008d9cd4-8d24-f19b-82ad-d5c1bf7a435f@posteo.net>
2020-05-10 15:43     ` Alexis Roda
2020-05-10 16:13       ` H. Dieter Wilhelm
2020-05-10 16:42         ` Drew Adams
2020-05-11 11:55           ` H. Dieter Wilhelm
2020-05-11 12:03             ` tomas
2020-05-11 12:47               ` H. Dieter Wilhelm
2020-05-11 15:02             ` Drew Adams
2020-05-11 16:05             ` Stefan Monnier
2020-05-11 17:22               ` H. Dieter Wilhelm
2020-05-10 16:55         ` Dan Sommers
2020-05-11 12:03           ` H. Dieter Wilhelm
2020-05-11 14:01             ` Dan Sommers
2020-05-11 16:09             ` Stefan Monnier

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