Oznacz zmienną lokalną jako bezpieczną dla dowolnej wartości


13

Zmienna safe-local-variable-valuesmoże przechowywać pary nazwa / wartość, które są bezpieczne jako plik lokalny lub katalog lokalny. Czasami jednak chcę powiedzieć, że dowolna wartość jest poprawna dla danej zmiennej. Strona podręcznika, do której odsyłam, mówi, że każda wartość całkowita jest uważana za bezpieczną fill-column. Czy istnieje sposób, aby to zrobić dla moich własnych zmiennych?


Spróbuj użyć identityjako testu.
wasamasa,

1
@wasamasa Myślę, że (lambda (_) t) jest lepszy, w przypadku braku.
lunaryorn 12.04.16

Odpowiedzi:


18

Ustaw safe-local-variablewłaściwość na funkcję, która sprawdza poprawność wartości. Na przykład fill-columnma safe-local-variablewłaściwość ustawioną na integerp. Użyj (lambda (x) t)jako funkcji sprawdzania poprawności, jeśli jakakolwiek wartość jest poprawna.

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

lub

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

Posiadanie jakiejkolwiek prawidłowej wartości jest dość rzadkie. To znacznie bardziej powszechne, aby ograniczyć do konkretnego typu, na przykład integerp, stringpitd

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.