Tandai variabel lokal aman untuk nilai apa pun

13

Variabel safe-local-variable-valuesdapat menyimpan pasangan nama / nilai yang aman sebagai file-local atau direktori-lokal. Namun terkadang saya ingin mengatakan nilai apa pun valid untuk variabel yang diberikan. Halaman manual yang saya tautkan mengatakan bahwa nilai integer dianggap aman untuk apa fill-column. Apakah ada cara untuk melakukan ini untuk variabel saya sendiri?

Brendan
sumber
Coba gunakan identitysebagai tes.
wasamasa
1
@ apakah saya pikir (lambda (_) t) lebih baik, untuk kasus nihil.
lunaryorn

Jawaban:

18

Setel safe-local-variableproperti ke fungsi yang memvalidasi nilai. Misalnya, fill-columnmemiliki safe-local-variableset properti untuk integerp. Gunakan (lambda (x) t)sebagai fungsi validasi jika ada nilai yang valid.

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

atau

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

Memiliki setiap nilai yang valid cukup langka. Ini jauh lebih umum untuk membatasi untuk jenis tertentu, misalnya integerp, stringp, dll

Gilles 'SANGAT berhenti menjadi jahat'
sumber