Hey all- I got my original wish, compile-mode error navigation through the python stack trace of a unittest failure.
Thanks to Gerard B for the hint. I'm doing this from pdbtrack (shell) instead of pure pdb, but it should work in both I believe. You need to enable compilation-shell-minor-mode. And have the following code in your .emacs: ;; if compilation-shell-minor-mode is on, then these regexes ;; will make errors linkable (defun matt-add-global-compilation-errors (list) (dolist (x list) (add-to-list 'compilation-error-regexp-alist (car x)) (setq compilation-error-regexp-alist-alist (cons x (assq-delete-all (car x) compilation-error-regexp-alist-alist))))) (matt-add-global-compilation-errors `( (matt-python ,(concat "^ *File \\(\"?\\)\\([^,\" \n <>]+\\)\\1" ", lines? \\([0-9]+\\)-?\\([0-9]+\\)?") 2 (3 . 4) nil 2 2) (matt-pdb-stack ,(concat "^>?[[:space:]]*\\(\\([-_./a-zA-Z0-9 ]+\\)" "(\\([0-9]+\\))\\)" "[_a-zA-Z0-9]+()[[:space:]]*->") 2 3 nil 0 1) (matt-python-unittest-err "^ File \"\\([-_./a-zA-Z0-9 ]+\\)\", line \\([0-9]+\\).*" 1 2) ) ) (defun matt-set-local-compilation-errors (errors) "Set the buffer local compilation errors. Ensures than any symbols given are defined in compilation-error-regexp-alist-alist." (dolist (e errors) (when (symbolp e) (unless (assoc e compilation-error-regexp-alist-alist) (error (concat "Error %s is not listed in " "compilation-error-regexp-alist-alist") e)))) (set (make-local-variable 'compilation-error-regexp-alist) errors)) Then you can use standard compile mode navigation to zip through the error stack trace. cheers, -matt _______________________________________________ Python-mode mailing list Python-mode@python.org http://mail.python.org/mailman/listinfo/python-mode