Saut à la première erreur - pas d'avertissement - lors de la compilation

9

L' compilation-auto-jump-to-first-erroroption devrait faire passer Emacs à la première erreur lors de la compilation. Cependant, il semble qu'Emacs traite les avertissements et les erreurs de la même manière, et passe au premier des deux. Comment feriez-vous pour qu'Emacs passe à la première erreur, le cas échéant, ou au premier avertissement sinon? Je préfère d'abord corriger les erreurs, puis les avertissements (surtout parce que les avertissements peuvent être causés par des bibliothèques tierces).

Elena
la source
Cela sonne comme un candidat raisonnable pour un rapport de bug / amélioration de demande: M-x report-emacs-bug. (À moins que quelqu'un ne souligne ici qu'il existe un moyen trivial d'obtenir le comportement que vous recherchez.)
Drew

Réponses:

7

Comme décrit dans ce billet de blog , vous avez besoin d'une deuxième option pour cela.compilation-skip-threshold

(setq compilation-skip-threshold 2)

Les commandes de mouvement de compilation ignorent les messages moins importants. La valeur peut être soit
2 - ignorer quoi que ce soit moins que l'erreur,
1 - ignorer quoi que ce soit moins que l'avertissement ou
0 - ne sauter aucun message.
Notez que tous les messages qui ne sont pas identifiés comme des avertissements ou des informations sont considérés comme des erreurs.

Malabarba
la source
Existe-t-il un moyen d'arrêter la compilation sur les erreurs uniquement et de pouvoir naviguer entre les avertissements? compilation-skip-thresholdsemble s'appliquer à toutes les commandes de navigation.
timor du
@timor Pas que je sache. Vous pourrez peut-être passer à la compilation et TABpasser par les avertissements.
Malabarba
1
c'est exactement la chose qui ne fonctionne plus :)
timor
@timor, vous pouvez le faire en ajoutant une fonction compilation-finish-functions et en accrochant compilation-start-hook et en utilisant (compilation-set-skip-threshold arg)le cas échéant.
ergosys