Marque uma variável local como segura para qualquer valor

13

A variável safe-local-variable-valuespode armazenar pares nome / valor que são seguros como arquivo local ou diretório local. No entanto, às vezes, quero dizer que qualquer valor é válido para uma determinada variável. A página de manual à qual vinculei diz que qualquer valor inteiro é considerado seguro fill-column. Existe uma maneira de fazer isso para minhas próprias variáveis?

Brendan
fonte
Tente usar identitycomo teste.
Wasamasa 12/04
1
@wasamasa Eu acho que (lambda (_) t) é melhor, para o caso nulo.
lunaryorn

Respostas:

18

Defina a safe-local-variablepropriedade como uma função que valida o valor. Por exemplo, fill-columntem uma safe-local-variablepropriedade definida como integerp. Use (lambda (x) t)como função de validação se algum valor for válido.

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

ou

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

Ter qualquer valor válido é bem raro. É muito mais comum para restringir a um tipo específico, por exemplo integerp, stringp, etc.

Gilles 'SO- parar de ser mau'
fonte