Faites confiance à .dir-locals.el


12

Je veux mettre une configuration en dehors de mon init.elfichier .dir-locals.el, c'est-à-dire ce qui suit:

((nil
  (let ((dirs '(".cask" "core" "packages" "modules" "snippets" "themes")))
   (mapc #'(lambda (path) (add-to-list 'projectile-globally-ignored-directories path)) dirs))))

Mais chaque fois que j'essaie d'ouvrir un fichier dans mon .emacs.ddossier, emacs me demande s'il est préférable d'appliquer ce code. J'ai essayé de le faire taire en définissant le fichier vars local:

;; -*- enable-local-variables: t; enable-local-eval: t -*-

et cela n'a pas aidé du tout, au contraire ajoute un autre message pour faire confiance à ces paramètres locaux. Comment puis-je lui faire confiance en mon .dir-locals.elcode?


Vous avez lié une variable nomméelet
phils

Réponses:


8

Vous pouvez personnaliser safe-local-variable-valuesdans votre fichier init. Cela vous obligera à spécifier également les valeurs que vous considérez comme sûres.

(add-to-list 'safe-local-variable-values '(var . value))

C'est OK si vous connaissez l'ensemble des valeurs possibles, comme votre question l'indique.

Si vous voulez sécuriser une variable pour toutes les valeurs qui satisfont un prédicat, vous pouvez faire:

(put 'var 'safe-local-variable #'stringp) 

Merci pour cette approche, mais comme je l'ai écrit, je veux mettre cette config dans.dir-locals.el
4lex1v

Vous devez toujours configurer le réglage du projectile dans un .dir-locals.el. Mais vous continuerez de recevoir des avertissements lors du chargement de ce fichier, jusqu'à ce que vous effectuiez l'une de ces actions. Avez-vous essayé le 2e? Ce code, dans votre fichier init, remplaçant 'var par les répertoires projectile-global-ignored-, devrait empêcher les avertissements lorsque le fichier .dir-locals.el est chargé.
InHarmsWay

Bien que vous y réfléchissiez, vous devrez peut-être '#listp plutôt que' #stringp, car vous définissez la barre sur une liste de chaînes.
InHarmsWay
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.