Переход к первой ошибке - не предупреждение - при компиляции

9

compilation-auto-jump-to-first-errorВариант должен сделать Emacs переход к первой ошибке во время компиляции. Однако кажется, что Emacs обрабатывает предупреждения и ошибки одинаково и переходит к первому из них. Как бы вы заставили Emacs перейти к первой ошибке, если таковая имеется, или к первому предупреждению в противном случае? Я предпочел бы сначала исправить ошибки, а затем предупреждения (особенно потому, что предупреждения могут быть вызваны сторонними библиотеками).

Елена
источник
Это звучит как разумный кандидат для отчета об ошибке / улучшающего-запроса: M-x report-emacs-bug. (Если кто-то не укажет здесь, что есть тривиальный способ получить поведение, которое вы ищете.)
Дрю

Ответы:

7

Как описано в этом сообщении в блоге , вам нужен второй вариант для этого.compilation-skip-threshold

(setq compilation-skip-threshold 2)

Команды движения компиляции пропускают менее важные сообщения. Значение может быть либо
2 - пропустить что-либо меньше, чем ошибка,
1 - пропустить что-нибудь меньше, чем предупреждение или
0 - не пропустить ни одного сообщения.
Обратите внимание, что все сообщения, не идентифицированные как предупреждение или информация, считаются ошибками.

Malabarba
источник
Есть ли способ остановить компиляцию только на ошибках и при этом иметь возможность перемещаться между предупреждениями? compilation-skip-thresholdкажется, применяется ко всем командам навигации.
Тимор
@timor Не то чтобы я знал. Возможно, вы сможете перейти к компиляции и TABчерез предупреждения.
Малабарба
1
это именно то, что больше не работает :)
Тимор
@timor, вы можете сделать это, добавив функцию compilation-finish-functions и перехватывая compilation-start-hook и используя его (compilation-set-skip-threshold arg)по необходимости.
ergosys