Subject: Re: bug#36837: 26.2; whitespace-mode: whitespace-line-column is not set to local fill-column

From: Štěpán Němec <[email-masked]>
Date: Fri, 02 Aug 2019 21:45:36 +0200

On Fri, 02 Aug 2019 15:28:01 -0400
Noam Postavsky wrote:

> It sounds like you are confusing defcustom settings with file-local
> variable settings.  Those are two very different things.  At any rate,
> there is no "library being loaded" here.
>
> See also (info "(emacs) File Variables")

I'm not sure what you mean.

For me there are two issues here: the particular case described in this
bug report, and the (related) general issue of ordering modes and
file-local variable settings inside `run-mode-hooks'.

You seem to be responding to the latter part of what I wrote. Whether a
library will need to be loaded or not depends on whether the feature
required by a particular hook or variable value (e.g. in case of "eval"
file-local variables) is already provided or not.

In this particular case, if you follow OP's recipe (emacs -Q),
`whitespace-mode' is autoloaded, so the whitespace library will be
loaded only at the point the hook is run.

Really, isn't this how we all customize all kinds of variables? In your
init file you have (setq some-var some-value) (or the equivalent
customize forms if you're into that) even before the relevant feature is
provided (by loading the library), and the defvar form in the pertinent
library will of course not clobber the user-specified value. Unless I'm
missing something, it works the same way if you `hack-local-variables'
before loading the whitespace.el library in this particular case.

-- 
Štěpán