Przeskakiwanie do pierwszego błędu - bez ostrzeżenia - podczas kompilacji

9

Ta compilation-auto-jump-to-first-erroropcja powinna spowodować, że Emacs przejdzie do pierwszego błędu podczas kompilacji. Wydaje się jednak, że Emacs traktuje ostrzeżenia i błędy w ten sam sposób i przeskakuje do pierwszego z nich. Jak sprawiłbyś, aby Emacs skoczył do pierwszego błędu, jeśli taki istnieje, lub do pierwszego ostrzeżenia w przeciwnym razie? Wolę najpierw naprawić błędy, a następnie ostrzeżenia (zwłaszcza, że ​​ostrzeżenia mogą być spowodowane przez biblioteki innych firm).

Elena
źródło
To brzmi jak rozsądny kandydata na zgłoszenie błędu / akcesorium-żądanie: M-x report-emacs-bug. (Chyba że ktoś
Drew

Odpowiedzi:

7

Jak opisano w tym poście na blogu , potrzebujesz do tego drugiej opcji.compilation-skip-threshold

(setq compilation-skip-threshold 2)

Polecenia ruchu kompilacji pomijają mniej ważne komunikaty. Wartość może wynosić
2 - pomiń cokolwiek mniej niż błąd,
1 - pomiń cokolwiek mniej niż ostrzeżenie lub
0 - nie pomijaj żadnych wiadomości.
Pamiętaj, że wszystkie wiadomości, które nie zostały zidentyfikowane jako ostrzeżenie lub informacje, są uważane za błędy.

Malabarba
źródło
Czy istnieje sposób, aby kompilacja zatrzymywała się tylko w przypadku błędów i nadal mogła nawigować między ostrzeżeniami? compilation-skip-thresholdwydaje się mieć zastosowanie do wszystkich poleceń nawigacyjnych.
timor
@timor Nie jestem tego świadomy. Możesz przejść do kompilacji i TABprzejść przez ostrzeżenia.
Malabarba
1
to jest dokładnie to, co już nie działa :)
timor
@timor, możesz to zrobić, dodając funkcję kończącą kompilację i podpinając kompilację-start-hook i używając (compilation-set-skip-threshold arg)odpowiednio.
ergosys,