Markieren Sie eine lokale Variable als sicher für einen beliebigen Wert


13

Die Variable safe-local-variable-valueskann Name / Wert-Paare speichern, die als dateilokal oder verzeichnislokal sicher sind. Manchmal möchte ich jedoch sagen, dass jeder Wert für eine bestimmte Variable gültig ist. Die von mir verlinkte Handbuchseite besagt, dass jeder ganzzahlige Wert als sicher gilt fill-column. Gibt es eine Möglichkeit, dies für meine eigenen Variablen zu tun?


Versuchen Sie es identityals Test.
Wasamasa

1
@wasamasa Ich denke, (Lambda (_) t) ist besser, für den Null-Fall.
Lunaryorn

Antworten:


18

Setzen Sie die safe-local-variableEigenschaft auf eine Funktion, die den Wert überprüft. Beispielsweise fill-columnhat eine safe-local-variableEigenschaft festgelegt auf integerp. Verwenden Sie (lambda (x) t)als Validierungsfunktion , wenn jeder Wert gültig ist.

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

oder

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

Mit jedem gültigen Wert ist ziemlich selten. Es ist weitaus häufiger auf eine bestimmte Art zu beschränken, zB integerp, stringpusw.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.