Marque una variable local segura para cualquier valor

13

La variable safe-local-variable-valuespuede almacenar pares de nombre / valor que son seguros como local de archivo o local de directorio. Sin embargo, a veces quiero decir que cualquier valor es válido para una variable dada. La página del manual que he vinculado dice que cualquier valor entero se considera seguro fill-column. ¿Hay alguna manera de hacer esto para mis propias variables?

Brendan
fuente
Intenta usarlo identitycomo prueba.
wasamasa
1
@wasamasa creo que (lambda (_) t) es mejor, para el caso nulo.
lunaryorn

Respuestas:

18

Establezca la safe-local-variablepropiedad en una función que valide el valor. Por ejemplo, fill-columntiene una safe-local-variablepropiedad establecida en integerp. Úselo (lambda (x) t)como la función de validación si algún valor es válido.

(defvar my-variable-with-any-safe-value …)
(put 'my-variable-with-any-safe-value 'safe-local-variable
     (lambda (x) t))

o

(defcustom my-variable-with-any-safe-value …
  :safe (lambda (x) t))

Tener un valor válido es bastante raro. Es mucho más común para restringir a un tipo específico, por ejemplo integerp, stringp, etc.

Gilles 'SO- deja de ser malvado'
fuente