2 Dec 2003 19:24
Re[2]: Multi-directory stuff
Eric M. Ludlam <eric <at> siege-engine.com>
2003-12-02 18:24:28 GMT
2003-12-02 18:24:28 GMT
>>> Bruce Stephens <bruce+cedet <at> cenderis.demon.co.uk> seems to think that: >"Eric M. Ludlam" <eric <at> siege-engine.com> writes: > >> Are you using the cedet beta, or semantic 1.4? The search path you >> mention in 1.4 is only useful if you want to jump to an include file. >> >> In 1.4, it will search all files in the current project (directory >> tree) for matches. In 2.0beta, it explicitly chases search paths. >> There were a couple bugs in it, so include files including files >> don't work yet. One level of include should work ok though. > >Any hints on how I can debug this? I'm comfortable with elisp and >edebug, but eieio seems to push things just beyond where that'll work >easily, and I'm getting lost in a maze of define-overloads. > >Or can someone describe a simple setup (say, a simple two-file one >like I described: a C file and a header file, in different >directories), together with settings of whatever variables are >necessary such that things definitely ought to work? Perhaps from a >concrete example like that I could work out what I'm doing wrong. [ ... ] Hi, In the semantic 2.0 beta, if you are using eldoc, it will use semanticdb and the new 'find' API. The specific function you can examine is: `semanticdb-find-table-for-include-default'. A typical "overload" function is pretty simple. Any function that does some processing with a tag that may need to be specific to a language is defined as an overload function. All this does is go through a redirection table. An implementation can be defined for a given language. If there is no implementation, a `-default' is used. A default is a function with the same name as the overload function with -default in the name. This makes calls similar to "super.foo()" possible in this circumstance. The trick is knowing which functions have been overloaded. All such functions are usually in the language specific file, like `semantic-c.el'. They are created with a special macro which does have edebug support. Anyway, in the function `semanticdb-find-table-for-include-default', you will see a comment that says: ;;;; THIS NEEDS WORK! That particular area needs some work in that it caused some serious speed issues during casual use. The point of the function is to create a list of semanticdb tables which represents all files a given location has access to when looking for symbols. Doing this: M-: (semanticdb-find-translate-path nil nil) should then report back a list of tables, with one representing each header file in a given sample. Good Luck Eric -- -- Eric Ludlam: zappo <at> gnu.org, eric <at> siege-engine.com Home: http://www.ludlam.net Siege: www.siege-engine.com Emacs: http://cedet.sourceforge.net GNU: www.gnu.org ------------------------------------------------------- This SF.net email is sponsored by OSDN's Audience Survey. Help shape OSDN's sites and tell us what you think. Take this five minute survey and you could win a $250 Gift Certificate. http://www.wrgsurveys.com/2003/osdntech03.php?site=8
RSS Feed