#7 function index (speedbar)

open
nobody
5
2013-01-02
2001-12-06
No

I use the speedbar in xemacs alot to help be jump
straight down to a function in a source file. Well i
actually map it to the mouse...but it would be nice
to have a speebar (html frame) on the the left or
right hand side of the source file which has links to
all of the functions declared in a source file.
presumably this information is already parsed in a
manner that you know it is a function def. this
could be ignored in header files or contain the index
of typedefs and #defines or something.

Discussion

  • Malcolm Box

    Malcolm Box - 2002-01-23

    Logged In: YES
    user_id=215386

    Wouldn't be hard. The sql to find all the symbols defined
    in a file is:

    select s.symname, i.line, d.declaration from indexes i,
    symbols s, declarations d, files f where s.symi
    d=i.symid and i.type = d.declid and i.fileid=f.fileid and
    f.filename = "filename";

    From there, it should be easy to spin some HTML and links
    round the results and shove it in a sidebar. Presumably
    this would be linked off the source script, so that it would
    first generate the source listing, and then add the sidebar
    panel.

     
  • Paul D. Smith

    Paul D. Smith - 2007-03-30

    Logged In: YES
    user_id=30808
    Originator: NO

    <Edna Most> No Frames! </Edna Most>

    Frames are a horrible, horrible invention and should be banned from the web forever. And even longer.

    Having a function list is not a bad idea, but a simple drop-down box will work. Or, if we really want something on the sidebar, please use CSS/tables.

    BTW, in the SQL query provided by mbox, why check both the fileid AND the filename? It seems like just the fileid would be sufficient (and a lot faster!)

     
  • Andre-Littoz

    Andre-Littoz - 2012-09-21

    This indeed would be nice, but it needs much improvement on ctags. From recent tests (September 2012), ctags has a lot of trouble finding identifiers in languages other then C family.

     

Log in to post a comment.