At 07:01 PM 1/4/01 -0800, you wrote:
>Greetings,
>
>Where does each package come into play to enable the speedbar functionality?
>
>If I point the speedbar at a makefile, for example, it seems to know about
>macro assignments and dependencies.
>Is this all in speedbar or is some of it in another package?
>
>When I point speedbar at a Java program I notice that it knows about classes
>and variables etc. Is this all in speedbar or is one of the other packages
>needed?
>

Speedbar knows how to display files in a directory. Speedbar knows how to
determine locations of symbols within a text file created by Emacs etags or
imenu programs. Given this information, it can create a tree structured
view of a file hierarchy tagged by etags or indexed by imenu. Many Emacs
modes, including the JDE, provide imenu indexing of buffers and hence work
with speedbar? 

>How does eieio, elib semantic fit into the whole package?
>

eieio -- provides Common Lisp-like object-oriented programming support for
Elisp. JDEbug is largely implemented in eieio. Some other features are also
implemented in eieio. If eieo had been around when I first created the JDE,
everything would be implemented in eieio. It is one of Eric Ludlam's
wonderfyul trinity of gifts to the Emacs community, the others being the
speedbar and semantic.

elib -- provides elisp implementations for binary trees, queues, stacks,
and other fundamental data structures. The JDE uses elib's binary tree to
represent the boundaries of methods and classes within a buffer so as to
speed determination of which method or class the cursor is currently in for
display in the mode line.

semantic -- parser generator that targets elisp. The JDE uses a Java parser
generated by semantic to parse Java buffers to support a wide range of
features.

>If elip is the standard lisp package how come I did not get it with the full
>emacs distribution?
>

I don't know what elip is. If you're referring to elib, elib is not a
standard package and I never said it was.

>Speedbar does not seem to know much about C++. Is there a package I can
>download that would make it smart about C++?
>

Not that I am aware of.

>Lastly the tags shell program you included. Can it be adopted for C++ so
>that I can use the speedbar with C++ and find definition of objects for C++?
>

I wrote jtags at a time when etags did not support Java. etags now supports
tagging of Java files but it does not do as good a job as etags.

etags can tag any type of file, given appropriate regular expressions on
the command line. That is how jtags works. It invokes etags with regular
expressions that detect Java constructs in a file. There is no reason the
same thing cannot be done for C++ files. But before you bother to do that,
you should check how good a job etags alreadys does on tagging C++ files.

>Is there a version of the tags shell program for a bat file? Is there any
>reason that I could not re-write it for Windows NT bat? 

The jtags program can build a TAGS file for an entire source hierarchy. It
uses the Unix find and xargs programs to do this. AFAIK, there is nothing
equivalent to find and xargs commands in the Windows NT shell command set.

- Paul

Reply via email to