Bravo! Any idea if this will ever be a standard feature of the JDE? (Not that I ever get stack traces...) -Thomas Phillip Lord wrote: > Ive got a little bit of lisp here which people might > like to try out. Its in a very early stage of development, and I shall > make it work properly eventually, but I already find it quite useful > myself, so I thought Id let others play with it. > > Its called jde-stack. What it does is renders stack traces > clickable (or return-key-able if there is such a word). Clicking jumps > to the relative bit of source if its available by the usual JDE > mechanism. > > Like I say its at an early stage yet. It does somethings for > instance which will are distinctly dubious (like globally changing a > key binding in comint-mode for instance...wave good bye to your return > key!!!!). Its very much at the stage of a microsoft full release > (i.e. early alpha). If people think this would be useful, Ill think a > little bit more carefully on how it should work, and think about > making the changes. > > > Cheers > > Phil > > ;; Author: Phillip Lord<[EMAIL PROTECTED]> > ;; Copyright (C) 1999 Phillip Lord > > ;; GNU Emacs is free software; you can redistribute it and/or modify > ;; it under the terms of the GNU General Public License as published by > ;; the Free Software Foundation; either version 2, or (at your option) > ;; any later version. > > ;; GNU Emacs is distributed in the hope that it will be useful, > ;; but WITHOUT ANY WARRANTY; without even the implied warranty of > ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > ;; GNU General Public License for more details. > > ;; You should have received a copy of the GNU General Public License > ;; along with GNU Emacs; see the file COPYING. If not, write to the > ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, > ;; Boston, MA 02111-1307, USA. > > ;; This now works okay. It is bound to both Shift mouse 2 or a > ;; return key. These are reasonable keys to choose. The latter will > ;; cover up somethings within comint mode, however return key is > ;; disabled as soon as the process has ended, and generally you want > ;; to follow stack traces one this is the case. > > ;; Changes to make. > ;; The problems with key bindings need to be sorted. Some key other > ;; than return is possible. I would also like to reduce the coverage > ;; of these key bindings. There is really only any use for this in jde > ;; spawned buffers, and this should be possible from within there. > ;; It would also be nice to define a key somewhat like "next-error" > ;; which would jump to the next stack trace. This should be pretty > ;; easy to do. All I need is to set a marker in the comint buffer when > ;; one of the first methods is found, and then jump to it forward a > ;; line and call show-at-point > > (require 'jde) > > (defun jde-stack-show-class-stack(class line) > (jde-show-class-source class) > (set-buffer (concat class ".java" )) > (goto-line (string-to-number line)) > (if (hs-already-hidden-p) > (hs-show-block))) > > (defun jde-stack-show-at-mouse (event) > (interactive "e" ) > (save-excursion > (set-buffer (jde-stack-url-event-buffer event)) > (goto-char (jde-stack-event-point event)) > (jde-stack-show-at-point))) > > (defun jde-stack-show-at-point() > (interactive) > (save-excursion > (let ((line-ending > (progn(end-of-line) > (point)))) > (beginning-of-line) > (if (re-search-forward "\\([A-Za-z0-9]*\\)\\([.]java\\)\\(:\\)\\([0-9]*\\)" >line-ending 't) > (jde-stack-show-class-stack (match-string 1) (match-string 4)) > (message "No stack found" ))))) > > (defun jde-stack-url-event-buffer (event) > (window-buffer (posn-window (event-start event)))) > > (defun jde-stack-event-point (event) > (posn-point (event-start event))) > > (define-key comint-mode-map [S-mouse-1] 'jde-stack-show-at-mouse) > (define-key comint-mode-map [return] 'jde-stack-show-at-point) > > (provide 'jde-stack)
begin:vcard n:Cook;Thomas x-mozilla-html:TRUE org:BEA Systems, Inc.;eSolutions Component R&D adr:;;;;;; version:2.1 email;internet:[EMAIL PROTECTED] title:Software Engineer fn:Thomas A. Cook end:vcard
