[OT] etags, xemacs and guile

Jonathan David Wheelhouse whsjnd@froggy.com.au
Tue, 5 Jun 2001 22:57:00 +1000


On Mon, Jun 04, 2001 at 11:06:04AM -0400, James LewisMoss wrote:
> >>>>> On Sun, 3 Jun 2001 22:46:20 +1000, "Jonathan David Wheelhouse" <whsjnd@froggy.com.au> said:
> 
>  Jonathan> Browsing through the gnucash source is much easier since I
>  Jonathan> discovered etags; it's great.
> 
>  Jonathan> I ran etags on the files for each of the directories I
>  Jonathan> wanted to put a TAGS file (ie. find ./ -name "*.[cChH]" -o
>  Jonathan> -name "*.pl" -o -name "*.scm" | etags -).  Then, in xemacs
>  Jonathan> I can jump to the definitions of functions, etc. for the C
>  Jonathan> source code.
> 
>  Jonathan> However, xemacs wouldn't jump from point somewhere on
>  Jonathan> "gnc:main"
> 
>  Jonathan> ...
>  Jonathan>     func = gh_eval_str("gnc:main");
>  Jonathan> ...
> 
>  Jonathan> in gnucash/src/guile/gnucash.c
> 
>  Jonathan> to
> 
>  Jonathan> (define (gnc:main)
> 
>  Jonathan> in gnucash/src/scm/main.scm
> 
>  Jonathan> So how do I get this to work - jumping from C to guile and
>  Jonathan> back again?
> 
>  Jonathan> And a related question.  I sometimes put point on what I
>  Jonathan> assume is some GNOME variable, function or whatever
>  Jonathan> (eg. GList).  Do I have to install some GNOME dev library
>  Jonathan> to be able to jump to the GNOME definition?  Some doco
>  Jonathan> available?
> 
> tags only work on the files indexed so the gnome stuff won't work.  I
> just use a web browser and look at the online docs most of the time.

OK, I'm doing that now; browsing
"http://developer.gnome.org/doc/API/glib/glib-doubly-linked-lists.html".

> 
> To jump to a scheme def from C you can make sure you are trying to
> find "(gnc:main)" (with parens without quotes :).  Not the nicest way
> to do it, but it seems functional.
> 

Stupid me, when I typed the actual name, gnc:main, it worked.  So the
Lisp code to work out what the name is to jump to, didn't handle the
":" on the c side.  However, on the guile side, it does.

Thanks for your help.

Jonathan