Jak mogę ukryć ostrzeżenie „przypisanie do wolnej zmiennej”, gdy bajt kompiluje plik Lisp Emacsa?
Właściwie najbardziej interesuje mnie pomijanie go dla określonego bufora podczas korzystania z Flycheck, ale rozumiem, że to tylko przekazanie do kompilatora bajtów.
Dobrze byłoby również uzyskać listę wszystkich ostrzeżeń / błędów, które można pominąć.
AKTUALIZACJA :
Ze względu na kompletność, pozwól mi wyjaśnić, że istnieje wiele (niezależnych od języka) powodów, aby wyłączyć ostrzeżenia kompilatora. Kilka przykładów: ułatwienie przejścia starszego kodu do szkieletu wymuszonego przez strzępki, aby pliki scratch i przepisy były uruchamiane w kontekście na żywo, aby usunąć szum przy naprawianiu problemów o wyższym priorytecie lub ponieważ kompilator jest po prostu zły.
źródło
defvar
s lub brakującerequire
s.(defvar the-variable)
. To wycisza ostrzeżenie tylko dla tej zmiennej, więc nadal można ją uzyskać dla innych zmiennych.Odpowiedzi:
Z korzyścią dla przybywających tutaj nieświadomych czytelników, pozwólcie mi na małą dygresję, aby powiedzieć, że te ostrzeżenia zazwyczaj wskazują na rzeczywiste problemy z kodem (a jeśli nie, możesz je pomijać dla poszczególnych zmiennych), aby ludzie mogli zbadać, co mają znaczy przed wyłączeniem ich.
Oczywiście nie mam wątpliwości, że wiesz, dlaczego musisz to wyłączyć, więc odpowiedź jest poniżej.
Odpowiedź
Aby wyłączyć to (lub inne) ostrzeżenie, musisz ustawić wartość
byte-compile-warnings
. Możesz to zrobić jako zmienną lokalną dla pliku, dodając następujący fragment kodu na końcu pliku.Możesz to również ustawić globalnie.
Można wymienić
(not free-vars)
ze(not free-vars callargs unresolved)
i inne w zależności od tego ostrzeżenia chcesz stłumić. Pełna lista ostrzeżeń, które można włączyć / wyłączyć, znajduje się w dokumentacji zmiennej (poniżej).źródło