Comments are inline.
>>> bread <breaddawson@...> seems to think that:
>1. Thank you very much for your reply, now i know why it did not work for me
>and i've changed my coding style :)
>Another issue about semantic completions is like this:
>I found the position of "using namespace ***" will effect the completions,
>for example, I have a simple bread.hpp which writes like this:
[ ... ]
> using namespace bread_name;
> int func()
> bread test;
[ ... ]
>The completions will not show up. Since the codes above can be compiled, i
>think maybe there's something wrong with semantic's analyzing?
The case for finding those using statements was just missing. I
checked in a fix into semantic-c.el, and also added some tests for
>2. Sometimes, even if 'semantic-analyze-debug-assist' could show me all the
>possible completions, 'semantic-ia-complete-symbol-menu' might not show all.
>For example, after i added two other functions to bread.hpp:
[ ... ]
>It seems that all the members are got by semantic. But this infomation can
>be losed after i closed emacs and reopen it, which means, after i reopen
>panda.cpp, i just find that even semantic-analyze-debug-assist can not get
>the possible completions. I need to manually 'C-u M-x bovinate' to make them
Did you enabled ebrowse or exuberent ctags parsing backends?
Are there any error messages when you use
M-x semanticdb-save-all-db RET
>What's more, after i use 'C-u M-x bovinate' to make the completions menu
>work properly, i found function overloading may not be processed. That
>happened after i added another version of set:
>void set(float, char);
>I can see it via 'semantic-analyze-debug-assist' but it's not in completions
>menu. It seems the newer one is hidden by the older one.
I will need to investigate this one some more.
>3. I'm confused with "semantic-idle-scheduler-work-idle-time" and
>As what i thought before, i think the formmer is the one which controls the
>analyzing interval, which means, if i set this as 60, then semantic will
>analyze my codes every 60s. And speak of the latter, i thought it controls
>how long i need to wait till the summary of current context will show in the
>minibuffer. But now i'm confused because:
>1) what does idle mean? does it mean, if i type whithout stop, semantic will
>not do anything?
"idle" means that you have not touched Emacs for some amount of time.
If you type then do nothing for 1 second, then a 1 second idle timer
If you type without stopping, the timer will never go off. If you
want semantic to do something, you need to bind a key, like "." to
then execute some semantic command.
>2) i've set the idle-summary-function as
>"semantic-format-tag-uml-prototype", but i found the info showed after i
>stop a while on some function is different with the one showed up when i
>manually tirgger 'semantic-ia-show-summary', so idle-summary-function
>controls which one?
All the `semantic-ia-' functions are examples that show how to use the
semantic analyzer API. They do not share configuration with tools
like the idle based summary mode.
>3) even i set semantic-idle-scheduler-idle-time as 1s, i found the summary
>of current context (for example, a funciton) will not always show up. Since
>i've set semantic-idle-scheduler-work-idle-time as 5 seconds, does the two
>conflict with each other?
The idle time should always be less that the idle-work time. The idle
timer keeps the current buffer up to date, and can run useful code
help commands. These commands will not refresh complex data
structures because that can be time-consuming, and interrupt typing.
The work timer goes out of its way to update many buffers and files,
and to rebuild caches that may prove useful from the idle timer.
When idle summary mode or completion mode fails to provide a piece of
information, it may be some cache is out of date. User commands will
not do this, and will take the time to recalculate complex data
It's all about not interrupting as you type.
Eric Ludlam: eric@...
Siege: http://www.siege-engine.com Emacs: http://cedet.sourceforge.net