Je couronne PDB sur mes tests en Python à travers le tampon GUD. Lorsque je reçois une stacktrace / échec de mon témoignage, il ressemble à ceci:
File "test/testfoo.py", line 499, in test_foo_function
3 Réponses :
Je pense que ce que vous voulez personnaliser est Si compilation-parse-erreurs-Errors-fileName-Fonction ne s'appelle pas, vous souhaitez ajouter une liste à compilation-parse-erreurs-fileName-fonction code>, qui est une fonction qui prend un nom de fichier et renvoie une version modifiée du nom de fichier à afficher. Il s'agit d'une variable locale tampon, vous devez donc la définir dans chaque tampon qui affichera des erreurs Python (il y a probablement un crochet approprié à utiliser, je n'ai pas de mode python installé, donc je ne peux pas le chercher). Vous utiliseriez
Property code> pour renvoyer une version du nom de fichier d'entrée qui agit comme un lien hypertexte pour charger le fichier réel. la possession est bien documentée dans le manuel ELISP. P>
Compilation-Error-Regexp-Alist-Alist Dites Alist-Alist, Ce n'est pas une faute de frappe) qui est une liste de noms de mode suivies d'expressions régulières pour correspondre aux erreurs et aux index numériques du numéro de ligne de correspondance, du nom de fichier, etc. Info de l'erreur REGEXP MATCH. P>
Ajout à la réponse de Justin:
J'ai ce qui suit dans ma configuration Slime, qui est censé passer à un fichier et la ligne d'une trace de pile de clojure. P>
Malheureusement, je dois admettre que cela ne doit pas t Travaille effectivement pour moi pour le moment - la fonction ne peut pas trouver le fichier correct - mais aussi loin que possible, cela devrait être résolu en modifiant comment Cela évoque un bon point, dans la plupart des functinalités comme celle-ci, c'est un peu Difficile de comprendre la racine du projet de manière générique et portable. Dans ce cas, nous nous appuyons sur un répertoire code> src code>, mais ce n'est probablement pas approprié pour vos projets Python. P> SUIS SUIVANT D'où Justin est parti, vous devriez être capable de prendre des Conseils de la fonction ci-dessous et analysez le nom de fichier et les numéros de ligne à partir de l'erreur de test de test, créez un lien vers le numéro de ligne et utilisez la fonction Si vous le faites fonctionner, veuillez ajouter une réponse à votre propre question. Je pense que beaucoup de gens le trouveraient utile. P> Je devrais également mentionner que j'ai copié cette fonction de quelque part sur le Web, mais je ne me souviens pas de l'URL. Il semble que ce soit de l'excellent kit de démarreur d'emacs de Phil Hagelberg (TechnoMancy). P> P> racine de projet code> est défini ou par Changer la structure de mes projets sur le système de fichiers (je n'ai tout simplement pas eu le temps ni l'envie de m'en examiner). P>
Compilation-parse-erreurs-fileName-fonction-fonction code> et
et
Propriété CODE> Pour faire la ligne dans le
GUD code> Buffer un lien. P>
Grâce à un indice de Gerard B, je l'ai compris. Je le fais de PDBTrack (Shell) au lieu de PURE PDB, mais cela devrait fonctionner dans les deux je crois. Vous devez activer la compilation-shell-mode mineur. Et avoir le code suivant dans votre fichier .emacs: alors vous pouvez utiliser la navigation de mode compile standard sur Zip via la trace de la pile d'erreur. P> P>
Notez que cela fonctionne lorsque le fichier / tampon est ouvert d'abord. Au fil du temps, il semble y avoir une "dérive" (c'est-à-dire que le curseur apparaît certaines lignes après la ligne réelle)
Merci! Mais je remarque que lorsque les lignes situées au sommet d'une traçabilité longue sont cliquées, les lignes plus loin ne sont pas.
Je n'ai pas eu le temps de disséquer le code pour comprendre pourquoi il "dérive". Désactiver et réactiver compilation-shell-mode-mode code> semble corriger la dérive, cependant.
ce serait assez cool. Je suis curieux d'en savoir plus sur votre configuration pour avoir exécuté des tests dans le tampon GUD. désolé je ne peux pas répondre à votre question cependant
J'ai un post sur mon blog concernant mon ancienne configuration ( panela.blog-city.com/python_and_emacs_5_pdb_and_emacs .htm ). Je suis actuellement en mode Shell-mode / Python-Mode (version Python.org non Version EMACS) et pdbtrack