Отметьте локальную переменную безопасной для любого значения

13

Переменная safe-local-variable-valuesможет хранить пары имя / значение, которые безопасны как локальный файл или локальный каталог. Однако иногда я хочу сказать, что любое значение является допустимым для данной переменной. На странице руководства, на которую я ссылаюсь, написано, что любое целочисленное значение считается безопасным fill-column. Есть ли способ сделать это для моих собственных переменных?

Brendan
источник
Попробуйте использовать в identityкачестве теста.
Васамаса
1
@ wasamasa Я думаю, что (лямбда (_) t) лучше для нулевого случая.
lunaryorn

Ответы:

18

Установите safe-local-variableсвойство в функцию, которая проверяет значение. Например, свойство fill-columnимеет safe-local-variableзначение integerp. Используйте (lambda (x) t)в качестве функции проверки, если любое значение является допустимым.

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

или

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

Наличие какого-либо действительного значения довольно редко. Гораздо чаще встречается ограничение на определенный тип, например integerp, stringpи т. Д.

Жиль "ТАК - перестань быть злым"
источник