You all know CodeCompletion has been announced as WIP for a long time now and there are even some posts considering a redesign and many other things. The truth is nobody has touched that code for a long time so the current plugin could be considered abandoned.
Rick was working on it but he retired (I'mn't blaming you and I wish you good luck despite our differences :wink:). eranif provided us his implementation using Ctags and SQLite but nothing else was commented about again. killerbot (IIRC) made a suggestion too and nothing else happened. Oh, and I'm sure I'm missing more people here, but that's just to give you an idea.
Some of you already know a new CodeCompletion plugin is in the way but it's still in an early stage and there's no any guarantee about anything.
We have suggested you all to stop posting more bugs and feature requests for the current plugin, but every now and then a new one arrives. As you can see it's pointless to do so.
I started coding a handcrafted C/C++ lexer for a new SourceFormatter plugin some time ago (there's a post somewhere in the forums about it). The lexer became usable in no time but I hadn't the time and motivation to code the formatter itself. It was going to be based on rules, a few files were written, I had some ideas and... that's it, nothing else happened.
A few weeks ago I was considering to write a parser using that lexer and try to extract the information that would be useful for a CodeCompletion plugin. Some information was easy to extract, some was not. I was close to hit the 1000 lines (997 IIRC) and it was becoming a nightmare and decided to check if Bison could be of any help, but that'd mean throwing away most of those 1000 lines of code, reading the documentation (it was helpful I had used ply for another project) and start over.
Well, I read the documentation, threw away the handcrafted parser and started writing productions to do the same thing using some evil tricks I didn't know Bison could do which would help me to keep the grammar "small".
Right now the current parser is a bit more than 1100 lines long, and growing, but it's a lot easier to add more and more stuff. It's also a bit slower than the handcrafted one but works a lot better. I've spent only a few days on it and it has already surpassed the handcrafted one and is working really stably.
I'm aware of many things that have been suggested and the idea is to take them into account, but right now it's more important to get something working, and working fine.
I post this just to inform you and show you "there's light after dark" (or whatever Thomas said). Please, don't suggest things by now; the time will come (of course, if the plugin advances).
A preview of how it's going is
here (I knew the Exporter plugin would be useful someday
).
Oh, and before you start asking I clarify:
- The lexer is for C/C++ only and totally handcrafted.
- The parser is for C/C++ only and coded using Bison.
- The source code is under SVN control but is NOT in Code::Blocks' repository.
- The plugin as it is NOT being coded yet. It's just a lexer library, a parser library and a test plugin (its output is showed in that link) by now.
- It'll be ready when it be ready or it won't at all.