all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* more issues with setq-local
@ 2021-04-20 15:10 Emanuel Berg via Users list for the GNU Emacs text editor
  2021-04-20 15:48 ` Thibaut Verron
  0 siblings, 1 reply; 2+ messages in thread
From: Emanuel Berg via Users list for the GNU Emacs text editor @ 2021-04-20 15:10 UTC (permalink / raw
  To: help-gnu-emacs

So, how do you do set `fill-column' to 62 everywhere in Emacs?

`setq' sets it buffer-locally.

And `setq-default' sets it where it isn't set!

But do I set it where it is set? I am to hunt down these
buffers manually?

Observe the below [last] Elisp. We see/understand that
fill-column isn't of the "buffer instance metadata" use case.
It is just normal data. If one wants that different in
different parts of Emacs, why don't you do as `message-mode'
and get your own variable?

So yeah, what do you do if you just want to set it to
something, everywhere?

(require 'message)
(let ((fill-col 62))
  (setq         fill-column fill-col) ; only sets it in this buffer since "Automatically becomes buffer-local when set."
  (setq-default fill-column fill-col) ; sets it where it isn't set
  (setq message-fill-column fill-col) ; no problem since not auto buffer-local
  )

-- 
underground experts united
https://dataswamp.org/~incal




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

* Re: more issues with setq-local
  2021-04-20 15:10 more issues with setq-local Emanuel Berg via Users list for the GNU Emacs text editor
@ 2021-04-20 15:48 ` Thibaut Verron
  0 siblings, 0 replies; 2+ messages in thread
From: Thibaut Verron @ 2021-04-20 15:48 UTC (permalink / raw
  To: help-gnu-emacs

On 2021-04-20 5:10 p.m., Emanuel Berg via Users list for the GNU Emacs 
text editor wrote:
> So, how do you do set `fill-column' to 62 everywhere in Emacs?
>
> `setq' sets it buffer-locally.
>
> And `setq-default' sets it where it isn't set!
>
> But do I set it where it is set? I am to hunt down these
> buffers manually?

You could write a loop going over all buffers and doing setq in each of 
them, if that's really what you want.

But if all you want is to use the default value everywhere, isn't it 
easier not to set it locally in the first place?


> Observe the below [last] Elisp. We see/understand that
> fill-column isn't of the "buffer instance metadata" use case.
> It is just normal data.

Which might need to be different in different buffers.

The alternative, as you say, is a global variable which users would make 
local when necessary. I think that the current setting is less 
destructively dangerous. Imagine for instance someone with a 
before-save-hook function using fill-column, and accidentally changing 
the global value...


> If one wants that different in
> different parts of Emacs, why don't you do as `message-mode'
> and get your own variable?

What do you mean? I strongly suspect that what message-mode does is 
(setq fill-column message-fill-column) at mode initialization.

The variable message-fill-column is given for convenience, ie, so that 
you can set the fill column for *Messages* by just setting that variable 
(instead of using, say, a hook). But internally, a buffer-local version 
of fill-column is created for the *Messages* buffer.

If that's what you mean by "it is set", that some mode is setting the 
variable, then yes, I suspect that you have no choice but to investigate 
how to bypass that setting for each mode which gets an incorrect value 
(or override it manually with a hook).







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

end of thread, other threads:[~2021-04-20 15:48 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-04-20 15:10 more issues with setq-local Emanuel Berg via Users list for the GNU Emacs text editor
2021-04-20 15:48 ` Thibaut Verron

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.