15

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?

Brendan
  • 303
  • 1
  • 5

1 Answers1

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.