Comment puis-je supprimer l'avertissement "affectation à une variable libre" lors de la compilation d'octets d'un fichier lisp emacs?
En fait, je suis surtout intéressé à le supprimer pour un tampon spécifique lors de l'utilisation de flycheck, mais je comprends que cela ne fait que passer au compilateur d'octets.
Il serait également bon d'obtenir une liste de tous les avertissements / erreurs qui peuvent être supprimés.
MISE À JOUR :
Par souci d'exhaustivité, permettez-moi de préciser qu'il existe de nombreuses raisons (indépendantes du langage) de désactiver les avertissements du compilateur. Quelques exemples: pour faciliter la transition du code hérité dans un cadre renforcé, pour les fichiers de travail et les recettes à exécuter dans un contexte en direct, pour supprimer le bruit tout en corrigeant les problèmes de priorité supérieure, ou parce que le compilateur est tout simplement erroné.
la source
defvar
s manquants ou desrequire
s manquants .(defvar the-variable)
. Cela met l'avertissement au silence uniquement pour cette variable, vous pouvez donc l'obtenir pour d'autres variables.Réponses:
Pour le bénéfice des lecteurs désemparés qui arrivent ici, permettez-moi une petite digression pour dire que ces avertissements pointent généralement vers de vrais problèmes de code (et quand ils ne le font pas, vous pouvez les supprimer sur une base par variable) afin que les gens devraient rechercher ce qu'ils dire avant de les désactiver.
Bien sûr, je ne doute pas que vous sachiez pourquoi vous devez le désactiver, donc la réponse est ci-dessous.
La réponse
Afin de désactiver cet (ou autre) avertissement, vous devrez définir la valeur de
byte-compile-warnings
. Vous pouvez le faire en tant que variable locale de fichier en ajoutant l'extrait de code suivant à la fin du fichier.Vous pouvez également définir cela globalement.
Vous pouvez remplacer
(not free-vars)
par(not free-vars callargs unresolved)
et selon les autres avertissements que vous souhaitez supprimer. La liste complète des avertissements pouvant être inclus / supprimés se trouve sur la docstring de la variable (ci-dessous).la source