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
