unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* Grand Unified Debugger Rewrite's process buffer: comint, eterm or  eshell?
@ 2009-10-30 14:32 rocky
  2009-11-01 21:30 ` Dave Love
  0 siblings, 1 reply; 4+ messages in thread
From: rocky @ 2009-10-30 14:32 UTC (permalink / raw)
  To: help-gnu-emacs

I have started to rewrite gud from the ground up.

For the process buffer I have 3 choices.

1. I can stick with comint.el. It seems the most creaky.

2. term.el is pretty cool, but it doesn't provide a hook to run when
output is produced and this is something I need. I use it both in
comint.el and eshell.el in "shell tracker" (think pdb-track) mode. So
this leads to the last choice ...

3. eshell.el. It also seems pretty cool too. However its focus seems
to be more as a command shell rather than a process buffer manager
interacting via elisp to a debugger front-end. This mismatch in goals
manifests itself in little things like the ability to set the name of
the buffer initially, starting the shell with a specific debugger
invocation, customizing the banner shown on entry, avoiding the myriad
of key bindings that are not applicable here. Although little things
each easly addressed, I think they are manifestations of the larger
issue may keep cropping up if I go down this path.

So right now, my take is to add a output filter hook to term.el. But
I'd be interested and grateful in thoughts and suggestions.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Grand Unified Debugger Rewrite's process buffer: comint, eterm or  eshell?
  2009-10-30 14:32 Grand Unified Debugger Rewrite's process buffer: comint, eterm or eshell? rocky
@ 2009-11-01 21:30 ` Dave Love
  2009-11-02 14:44   ` rocky
  2009-11-02 14:59   ` Tom Tromey
  0 siblings, 2 replies; 4+ messages in thread
From: Dave Love @ 2009-11-01 21:30 UTC (permalink / raw)
  To: help-gnu-emacs

rocky <rocky@gnu.org> writes:

> I have started to rewrite gud from the ground up.

Why, exactly?

> For the process buffer I have 3 choices.
>
> 1. I can stick with comint.el. It seems the most creaky.

`Creaky' how?  The whole idea of comint is to be a general way to run
sub-processes like debuggers, although there should be another layer to
abstract things like inferior programming interpreters.  What's wrong
with it for that?

> I use it both in
> comint.el and eshell.el in "shell tracker" (think pdb-track) mode. 

I implemented a prototype gud-minor-mode long ago for that sort of
thing, as alluded to in python.el if I recall correctly.  It's
straightforward but can't be a simple add-on to GUD, so wasn't going to
be useful.  The pdbtrack stuff is a mistake, apparently from a
mono-lingual programming culture, and it's unfortunate it's been
installed in Emacs, making it harder to do the right thing.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Grand Unified Debugger Rewrite's process buffer: comint, eterm or eshell?
  2009-11-01 21:30 ` Dave Love
@ 2009-11-02 14:44   ` rocky
  2009-11-02 14:59   ` Tom Tromey
  1 sibling, 0 replies; 4+ messages in thread
From: rocky @ 2009-11-02 14:44 UTC (permalink / raw)
  To: help-gnu-emacs

On Nov 1, 4:30 pm, Dave Love <f...@domain.invalid> wrote:
> rocky <ro...@gnu.org> writes:
> > I have started to rewrite gud from the ground up.
>
> Why, exactly?
>
> > For the process buffer I have 3 choices.
>
> > 1. I can stick with comint.el. It seems the most creaky.
>
> `Creaky' how?  The whole idea of comint is to be a general way to run
> sub-processes like debuggers, although there should be another layer to
> abstract things like inferior programming interpreters.  What's wrong
> with it for that?

That comment was based on writing both a output filter hook for comint
and then one for eshell. The comint hook is passed a string with the
text to do the insertion, while the eshell hook you pass nothing. Why
nothing? Experience I guess seems to show that it's easier just to
work with the process buffer assuming the there have been marks set.
eshell and term have such marks {term,eshell}-last-input-{start,end}
while  comint seems to have only gotten this recently (Mar '08). I
guess the last time I looked this wasn't there.


>
> > I use it both in
> > comint.el and eshell.el in "shell tracker" (think pdb-track) mode.
>
> I implemented a prototype gud-minor-mode long ago for that sort of
> thing, as alluded to in python.el if I recall correctly.  It's
> straightforward but can't be a simple add-on to GUD, so wasn't going to
> be useful.  The pdbtrack stuff is a mistake,

If by "a mistake" you mean something other than it is language
specific, I'd be interested to learn in what ways you think it a
mistake.

> apparently from a
> mono-lingual programming culture, and it's unfortunate it's been
> installed in Emacs, making it harder to do the right thing.

A multi-lingual track mode is working in http://github.com/rocky/emacs-dbgr
and
it has been configured for bashdb, kshdb, zshdb, rdebug, rbdbgr, pydb,
pydbgr and remake which is enough for my needs.




^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Grand Unified Debugger Rewrite's process buffer: comint, eterm or  eshell?
  2009-11-01 21:30 ` Dave Love
  2009-11-02 14:44   ` rocky
@ 2009-11-02 14:59   ` Tom Tromey
  1 sibling, 0 replies; 4+ messages in thread
From: Tom Tromey @ 2009-11-02 14:59 UTC (permalink / raw)
  To: help-gnu-emacs

>>>>> "Dave" == Dave Love <fx@domain.invalid> writes:

Dave> I implemented a prototype gud-minor-mode long ago for that sort of
Dave> thing, as alluded to in python.el if I recall correctly.

This sounds like an excellent idea.

Tom





^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2009-11-02 14:59 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-10-30 14:32 Grand Unified Debugger Rewrite's process buffer: comint, eterm or eshell? rocky
2009-11-01 21:30 ` Dave Love
2009-11-02 14:44   ` rocky
2009-11-02 14:59   ` Tom Tromey

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).