Hi,
TAGS file don't have the relational information you need to do
intellisense. Semantic would still need to parse all the files from
the first set of hits to calculate that.
Very few tag generators do that. There is an ebrowse database you
can create for semantic that does work, but semantic's use of it
sometimes looses information. It could be worth a shot.
Running parser generators in Emacs is a bit too slow to run across a
huge list of files all at once. (and wait for it.) The external ones
that are available don't provide the detailed tag info Semantic needs
to do useful things. I'm too lazy to write two parsers for every
language. Combine that together, and you get the parse-on-demand
stuff I talked about below.
I've read about a bunch of different external taggers, like GNU
global, but they all have the same problem. They don't know the
object hierarchy. If you google for c++ smart completion, you only
get hits for commercial products, and semantic.
Semantic has a way to plug in any tag generator you want, and could
handle things like TAGS tables for procedural stuff, but there is no
smart. There are other things that can do that like the ebrowse
complete tool, or even dabrev-expand and variations on that.
The important thing that semantic does that none of the other free
tagging tools do is allow you to complete this.that.theother and get
only options that really exist and are of a datatype appropriate for
the context.
If someone knows of a tool that can provide that data for C++ in a
form Emacs could use, for an entire project, I'd love to hear about
it.
Joakim did a great job porting ebrowse, which almost does what
Semantic needs. He also started a semanticdb backend for beanshell,
to provide that data for Java. I've often thought of using gnu
bintools to extract data from .o or .so files, but that assumes you
can compile your project.
Have fun
Eric
>>> "Max G. Faraday" <maxgfaraday@...> seems to think that:
>To you CEDET - Semantic Mavens Out There... (and Eric)
>
>Thanks for the response Eric,
>
>What would be really cool would be to have the code sense work using a
>TAGS file if specified. Just from a lay-person's perspective it looks
>like the TAGS file would have a lot of what code sense may need/use to
>do it's thing? Perhaps if there was a TAGS file reader/converter into
>what bovinate creates then it could just work over all the code you've
>put in TAGS???
>
>What do you think? Possible? Probable? How soon can we have that? :-)
>
>
>> Hi,
>>
>> That's something I'd been working on lately. With the most recent
>> tar.gz, you need to just pull each file into a buffer one at a time
>> till it's loaded.
>>
>> If you get the latest version from CVS, and look in the
>> cedet/common/cedet.info file for configuring for code completion, then
>> the first time you pull up a file to work on it, semantic will then
>> find your headers automatically, and save that data for later. You
>> will just need to configure your include path so they can be found.
>>
>> For particularly complex projects, I've got some updates to EDE that
>> allow custom projects to be set up for identifying more complex and
>> dynamic include paths.
>>
>> Good Luck
>> Eric
>>
>> >>> "Max G. Faraday" <maxgfaraday@...> seems to think that:
>> >Hey Semantic mavens!... Need a lil bit of help.
>> >
>> >I have installed the latest Cedet code and I am able to locally see
>> >the intellisense tip show up in the file in my local bufffer.
>> >However, I'd like to load in my entire codebase into the system and
>> >persist it for subsequent invocations emacs. How can I make that
>> >happen (literally).
>> >
>> >Thanks.
>> >
>>
>> --
>>
>
>
>
--
Eric Ludlam: zappo@..., eric@...
Home: http://www.ludlam.net Siege: http://www.siege-engine.com
Emacs: http://cedet.sourceforge.net GNU: http://www.gnu.org
|