The variable safe-local-variable-values
can store name/value pairs that are safe as file-local or directory-local. However sometimes I want to say any value is valid for a given variable. The manual page I linked to says that any integer value is considered safe for fill-column
. Is there a way to do this for my own variables?
Asked
Active
Viewed 2,028 times
15

Brendan
- 303
- 1
- 5
-
Try using `identity` as test. – wasamasa Apr 12 '16 at 06:23
-
1@wasamasa I think (lambda (_) t) is better, for the nil case. – Apr 12 '16 at 06:57
-
`(lambda (_) t)` is also predefined as `always` – scry Apr 24 '23 at 06:32
1 Answers
22
Set the safe-local-variable
property to a function that validates the value. For example, fill-column
has a safe-local-variable
property set to integerp
. Use (lambda (x) t)
as the validation function if any value is valid.
(defvar my-variable-with-any-safe-value …)
(put 'my-variable-with-any-safe-value 'safe-local-variable
(lambda (x) t))
or
(defcustom my-variable-with-any-safe-value …
:safe (lambda (x) t))
Having any valid value is pretty rare. It's far more common to restrict to a specific type, e.g. integerp
, stringp
, etc.

Gilles 'SO- stop being evil'
- 21,702
- 4
- 53
- 89