Wie kann ich die Warnung "Zuweisung an freie Variable" beim Byte-Kompilieren einer Emacs-LISP-Datei unterdrücken?
Eigentlich bin ich hauptsächlich daran interessiert, es für einen bestimmten Puffer zu unterdrücken, wenn ich Flycheck verwende, aber ich verstehe, dass dies nur an den Byte-Compiler weitergegeben wird.
Es wäre auch gut, eine Liste aller Warnungen / Fehler zu erhalten, die unterdrückt werden können.
UPDATE : Lassen
Sie mich der Vollständigkeit halber klarstellen, dass es viele (sprachunabhängige) Gründe gibt, Compiler-Warnungen zu deaktivieren. Einige Beispiele: Erleichterung des Übergangs von Legacy-Code in ein fusselfreies Framework, Ausführen von Arbeitsdateien und Rezepten in einem Live-Kontext, Entfernen von Rauschen beim Beheben von Problemen mit höherer Priorität oder weil der Compiler einfach falsch ist.
quelle
defvar
oder fehlenderequire
s hinweisen .(defvar the-variable)
. Dadurch wird die Warnung nur für diese Variable stummgeschaltet, sodass Sie sie weiterhin für andere Variablen abrufen können.Antworten:
Lassen Sie mich zum Wohle ahnungsloser Leser sagen, dass diese Warnungen im Allgemeinen auf echte Codeprobleme verweisen (und wenn nicht, können Sie sie pro Variable unterdrücken), sodass die Leute nachforschen sollten, was sie sind meine, bevor Sie sie deaktivieren.
Natürlich habe ich keinen Zweifel daran, dass Sie wissen, warum Sie es deaktivieren müssen, daher ist die Antwort unten.
Die Antwort
Um diese (oder eine andere) Warnung zu deaktivieren, müssen Sie den Wert von festlegen
byte-compile-warnings
. Sie können dies als dateilokale Variable ausführen, indem Sie das folgende Snippet am Ende der Datei hinzufügen.Sie können dies auch global einstellen.
Sie können ersetzen
(not free-vars)
mit(not free-vars callargs unresolved)
und je nachdem , was andere Warnungen Sie zu unterdrücken. Die vollständige Liste der Warnungen, die eingeschlossen / unterdrückt werden können, finden Sie in der Dokumentzeichenfolge der Variablen (siehe unten).quelle