Ricorda il permesso di eseguire variabili locali "rischiose"


15

In molti dei miei progetti utilizzo i .dir-locals.elfile per impostare variabili specifiche del progetto come i comandi di compilazione. All'apertura di un file all'interno di una directory contenente tale file, si emacslamenta delle "variabili locali rischiose" , in particolare:

The local variables list in $DIR$/ contains variables that are risky (**)

Do you want to apply it? You can type
y  -- to apply the local variables list.
n  -- to ignore the local variables list.

** LaTeX-command : "lualatex -shell-escape"

Non desidero disattivare questa funzione, ma vorrei che mi venisse chiesto una sola volta (durante una sessione di emacs) un .dir-locals.elfile specifico .

Sto usando alcuni plugin che vogliono analizzare l'intero sourcetree ed è abbastanza fastidioso colpire ycentinaia di volte solo per analizzare tutto.

Quindi, la vera domanda:

emacsIl meccanismo di caricamento delle variabili locali può essere configurato / modificato in modo tale da consentire / negare il caricamento di un elenco di variabili locali specifiche per l'intera emacssessione?

Risposte:


7

Emacs dovrebbe offrire (e normalmente offre) l'opzione di accettare e ricordare la scelta per le sessioni successive. Ti suggerisco M-x report-emacs-bugquesta scelta mancante nel tuo caso.

Nel frattempo, puoi aggiungere quanto segue a ~/.emacs:

(add-to-list 'safe-local-variable-values
             '(LaTeX-command . "lualatex -shell-escape"))

4
Nessuna opzione da ricordare non è un bug, è intenzionale per le variabili rischiose. Se la variabile non è nell'elenco sicuro, Emacs segnalerà che potrebbe non essere sicuro e chiederà con le opzioni y / n plus! ricordare. Se il nome della variabile corrisponde a una certa regex, viene considerato rischioso e ti vengono fornite solo le opzioni y / n. La regex per determinare se qualcosa è rischioso è in files.el su github.com/emacs-mirror/emacs/blob/…
Dan Midwood,

Forse è stato fatto intenzionalmente, ma penso che sia stato sbagliato e l'OP sembra essere d'accordo, quindi penso che meriti una segnalazione di bug.
Stefan,

2

Puoi disabilitare questa funzione "Non ricordare variabili rischiose" inserendo quanto segue nel tuo ~/.emacs:

;; allow remembering risky variables
(defun risky-local-variable-p (sym &optional _ignored) nil)

Quindi riconfermerà solo quando ne modifichi uno.


1
Puoi anche farlo (advice-add 'risky-local-variable-p :override #'ignore), il che ha il vantaggio di essere annullabile tramite advice-remove.
npostavs,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.