[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: python-mode patch
From: |
Nick Roberts |
Subject: |
Re: python-mode patch |
Date: |
Wed, 23 Aug 2006 20:12:42 +1200 |
> the other python-mode, python-mode.el, has one feature that i would
> love (and need) to see in any python-mode before switching. (like
> others, i didn't know about the python-mode that comes with emacs 22,
> and i haven't tried it.) i originally developed it as "pdbtrack", and
> barry warsaw integrated it with python-mode.el.
I think it would be good to add this especially as it is so few lines
of code.
> what it does is add a comint-output-filter-function which looks for
> the prompts from python's interactive debugger, pdb.
Yes. I think these hooks should be local as they interfere with other
comint derived buffers like shell, GUD etc.
>...
> 150 lines of code (apparently 156, now) only gets the very basic
> pdb-session file/line tracking. you type debugging commands at the
> interpreter, there are no provisions for setting breakpoints in a
> screen-oriented manner, etc - but file/line tracking is 9/10 of the
> value of a screen-oriented debugger, for me, and the interpreter is
> quite manageable for the other 1/10. i'd prefer if this approach were
> extended to do the other stuff , but at least would like to see it
> incorporated with python.el's python-mode.
It seems to me that most Python developers prefer it to pdb in gud.el but
I see no reason why they shouldn't work alongside one another.
> if you're interested in scoping it out, look for variables and
> functions that contain the string pdbtrack". i suspect most of it can
> be used exactly as is.
>
> at 150 lines of code, and since i wrote the original, i would be happy
> to sign papers for it.
Presumably you've already signed papers for Emacs as you have contributed
allout.el.
I find the PDB string in the mode-line too intrusive. If it's needed, perhaps
it could be a real minor-mode in the py-shell buffer.
I would also add a sentinel so e.g the overlay arrow is no longer displayed
if the py-shell buffer is killed.
How about the changes below? (this is from FC5, I don't know what version
of python-mode that corresponds to).
--
Nick http://www.inet.net.nz/~nickrob
*** /usr/share/emacs/site-lisp/python-mode.el 2006-03-08 01:12:21.000000000
+1300
--- /home/nickrob/lisp/python-mode.el 2006-08-23 20:08:47.000000000 +1200
***************
*** 271,281 ****
:group 'python)
(make-variable-buffer-local 'py-pdbtrack-do-tracking-p)
- (defcustom py-pdbtrack-minor-mode-string " PDB"
- "*String to use in the minor mode list when pdbtrack is enabled."
- :type 'string
- :group 'python)
-
;; Not customizable
(defvar py-master-file nil
"If non-nil, execute the named file instead of the buffer's file.
--- 271,276 ----
***************
*** 1298,1308 ****
(switch-to-buffer-other-window
(apply 'make-comint py-which-bufname py-which-shell nil args))
(make-local-variable 'comint-prompt-regexp)
(setq comint-prompt-regexp "^>>> \\|^[.][.][.] \\|^(pdb) ")
(add-hook 'comint-output-filter-functions
! 'py-comint-output-filter-function)
;; pdbtrack
! (add-hook 'comint-output-filter-functions 'py-pdbtrack-track-stack-file)
(setq py-pdbtrack-do-tracking-p t)
(set-syntax-table py-mode-syntax-table)
(use-local-map py-shell-map)
--- 1293,1305 ----
(switch-to-buffer-other-window
(apply 'make-comint py-which-bufname py-which-shell nil args))
(make-local-variable 'comint-prompt-regexp)
+ (set-process-sentinel (get-buffer-process (current-buffer)) 'py-sentinel)
(setq comint-prompt-regexp "^>>> \\|^[.][.][.] \\|^(pdb) ")
(add-hook 'comint-output-filter-functions
! 'py-comint-output-filter-function nil t)
;; pdbtrack
! (add-hook 'comint-output-filter-functions
! 'py-pdbtrack-track-stack-file nil t)
(setq py-pdbtrack-do-tracking-p t)
(set-syntax-table py-mode-syntax-table)
(use-local-map py-shell-map)
***************
*** 3245,3258 ****
;; arrange to kill temp files when Emacs exists
(add-hook 'kill-emacs-hook 'py-kill-emacs-hook)
- (add-hook 'comint-output-filter-functions 'py-pdbtrack-track-stack-file)
! ;; Add a designator to the minor mode strings
! (or (assq 'py-pdbtrack-minor-mode-string minor-mode-alist)
! (push '(py-pdbtrack-is-tracking-p py-pdbtrack-minor-mode-string)
! minor-mode-alist))
-
-
(provide 'python-mode)
;;; python-mode.el ends here
--- 3242,3250 ----
;; arrange to kill temp files when Emacs exists
(add-hook 'kill-emacs-hook 'py-kill-emacs-hook)
! (defun py-sentinel (proc msg)
! (setq overlay-arrow-position nil))
(provide 'python-mode)
;;; python-mode.el ends here
- Re: python-mode patch, (continued)
- Re: python-mode patch, Stefan Monnier, 2006/08/21
- Re: python-mode patch, Richard Stallman, 2006/08/21
- Re: python-mode patch, Slawomir Nowaczyk, 2006/08/23
- Re: python-mode patch, Richard Stallman, 2006/08/25
- Re: python-mode patch, Nick Roberts, 2006/08/25
- Re: python-mode patch, Richard Stallman, 2006/08/26
- Re: python-mode patch, David Kastrup, 2006/08/25
- Re: python-mode patch, Richard Stallman, 2006/08/25
- Re: python-mode patch, Slawomir Nowaczyk, 2006/08/25
- Re: python-mode patch, Ken Manheimer, 2006/08/21
- Re: python-mode patch,
Nick Roberts <=
- Re: python-mode patch, Ken Manheimer, 2006/08/23
- Re: python-mode patch, Slawomir Nowaczyk, 2006/08/24
- Re: python-mode patch, Nick Roberts, 2006/08/24