N'oubliez pas l'autorisation d'exécuter des variables locales «risquées»


15

Dans beaucoup de mes projets, j'utilise des .dir-locals.elfichiers pour configurer des variables spécifiques au projet telles que les commandes de compilation. Lors de l'ouverture d'un fichier dans un répertoire contenant un tel fichier, se emacsplaint de "variables locales risquées" , en particulier:

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"

Je ne veux pas désactiver cette fonctionnalité mais je voudrais qu'on ne me demande qu'une seule fois (lors d'une session emacs) un .dir-locals.elfichier spécifique .

J'utilise des plugins qui veulent analyser tout le sourcetree et c'est assez ennuyeux de frapper des ycentaines de fois juste pour tout analyser.

Donc, la vraie question:

Peut emacs«mécanisme de chargement variable locale être configure / modifiée telle qu'elle permet de permettre / refuser le chargement d'une liste spécifique des variables locales pour l'ensemble d'une emacsséance?

Réponses:


7

Emacs devrait offrir (et offre normalement) la possibilité d'accepter et de mémoriser le choix pour les sessions ultérieures. Je vous suggèreM-x report-emacs-bug ce choix manquant dans votre cas.

En attendant, vous pouvez ajouter les éléments suivants à votre ~/.emacs:

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

4
Aucune option à retenir n'est pas un bug, c'est intentionnel pour les variables risquées. Si la variable n'est pas dans la liste sécurisée, Emacs signalera qu'elle peut être dangereuse et vous invitera avec les options y / n plus! se souvenir. Si le nom de la variable correspond à une certaine expression régulière, elle est considérée comme risquée et vous ne disposez que des options y / n. Le regex pour déterminer si quelque chose est risqué se trouve dans files.el à github.com/emacs-mirror/emacs/blob/…
Dan Midwood

Peut-être que cela a été fait intentionnellement, mais je pense qu'il s'est trompé et que le PO semble d'accord, donc je pense qu'il mérite un rapport de bogue.
Stefan

2

Vous pouvez désactiver cette fonctionnalité "ne pas me souvenir des variables risquées" en mettant ce qui suit dans votre ~/.emacs:

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

Ensuite, il ne confirmera que lorsque vous en modifierez un.


1
Vous pouvez également le faire (advice-add 'risky-local-variable-p :override #'ignore), ce qui a l'avantage d'être annulable via advice-remove.
npostavs
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.