Marquer une variable locale sûre pour toute valeur


13

La variable safe-local-variable-valuespeut stocker des paires nom / valeur qui sont sûres en tant que fichier local ou répertoire local. Cependant, je veux parfois dire que toute valeur est valide pour une variable donnée. La page de manuel à laquelle j'ai lié dit que toute valeur entière est considérée comme sûre fill-column. Existe-t-il un moyen de le faire pour mes propres variables?


Essayez d'utiliser identitycomme test.
wasamasa

1
@wasamasa Je pense que (lambda (_) t) est mieux, pour le cas nul.
lunaryorn

Réponses:


18

Définissez la safe-local-variablepropriété sur une fonction qui valide la valeur. Par exemple, fill-columna une safe-local-variablepropriété définie sur integerp. Utiliser (lambda (x) t)comme fonction de validation si une valeur est valide.

(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))

Avoir une valeur valide est assez rare. Il est beaucoup plus fréquent de limiter à un type spécifique, par exemple integerp, stringpetc.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.