What can you recommand me ?
I tend to use etags.
For emacs integration: http://www.gnu.org/software/emacs/emacs-lisp-intro/html%5Fnode/etags.html
For how to run etags. http://www.delorie.com/gnu/docs/emacs/etags.1.html
As a bonus, this blog post describes a bit more emacs setup and how to use etags. http://tulrich.com/geekstuff/emacs.html
Edit: To answer the comment, after runnning etags across your code, you can complete words with C-x t(that's what it's bound to on my machine.) Or you can call the tag-search method.
When I'm editing python code in Emacs, I like and use pysmell for code completion:
You can try company-mode. It's a multi-backend in-buffer completion mechanism.
Watch the screencast to get an idea of how it works.
Some of the back-ends are:
- CEDET Semantic
- dabbrev
- XCode
- PySmell
- Ropemacs
- GNU Global
And it's also available via ELPA.
I find that learning how to type fast (and having a decent memory) beats auto completion every time. How far must we go to try and dumb down programming?
CEDET is just great, certainly needs some time at the beginning but worth it though.
GCCSense
From the author of Auto Complete Mode. It uses gcc to find candidates for code completion as the name suggests.
to be honest for i like plain old dabbrev-expand (M-/), yes it doesn't use any contextual information other than what characters are adjacent in the open buffers, but on the plus side it doesn't use any contextual information ;) this means you can complete from text you have written first in tests or comments.
for other options http://www.emacswiki.org/emacs/CategoryCompletion