Developer forums (C::B DEVELOPMENT STRICTLY!) > CodeCompletion redesign
Suggestion: Using ctags & sqlite for code completion
eranif:
Hi,
On January 06, 2006 I posted a thread about using ctags as parser, and many people responded that there is even 3 alternatives for it and some are under development.
My question is:
What is the status of CodeCompletion? - and when I am talking about code completion, I am talking about: Symbol tree, Hint tips, auto completion and find symbols?
is it working well?
I am currently working on a complete solution for all of the above - using my old idea of ctags & sqlite.
I redesgined everything to be more OOD - and its currently working very well.
If this is still relevant, talk to me
Eran
takeshimiya:
Hi Eran!
--- Quote from: eranif on August 21, 2006, 01:44:17 pm ---What is the status of CodeCompletion? - and when I am talking about code completion, I am talking about: Symbol tree, Hint tips, auto completion and find symbols?
is it working well?
--- End quote ---
The GUI-part is working well for the most part. It's the parser the one who isn't.
In the last week the parser has been improved and continues to be improved. But it is still far from perfect, and remember that is a hand-crafted one.
--- Quote from: eranif on August 21, 2006, 01:44:17 pm ---I am currently working on a complete solution for all of the above - using my old idea of ctags & sqlite.
I redesgined everything to be more OOD - and its currently working very well.
--- End quote ---
I would really want to see if you can make an alternative CodeCompletion plugin, or adapt the current one to your parser.
Now about your parser, I'm about to tell you someone else (ddiego, the author of the VCF library) is working on something very simmilar to this (see here: http://vcfbuilder.org/?q=node/139).
The parser is made by using Ctags and SQLite, with the addition of the C++ ANTLR parser (which is the most complete and correct parser I could found). ucpp is being used for macro preprocessing.
I've talked to him on this thread: http://vcfbuilder.org/?q=node/143 (you need to register in the forum to see it complete), and nonetheless I think what he's working on now it's the best approach for C++ parsing.
For languages other than C++, it's different, as most of the languages aren't difficult to parse, a Ctags-only based plugin is a good bet.
I really encourage you for making the plugin, as well I would like if you can go and discuss or coordinate in the above thread with ddiego, you know, you can learn from his experiences about implementing the parser, and viceversa. :)
Regards,
Takeshi Miya
Game_Ender:
Please continue with your solution, the pluggin based system of Code::Blocks leaves plenty of room for multiple implementations, especially since I am sure the Code::Blocks team would probably rather be focusing their efforts toward the compilier redisgn effort.
eranif:
Thanks for the motivation :wink:
I will try to complete the work in the coming weeks with a sample GUI demostration for you guys to give feedback.
When I have something to show you, I will post it here.
Eran
thomas:
Hi Eran!
Code completion still works the same as it did almost a year ago (except for a few minor tweaks and other default settings), there is no noticeable improvement to date.
Ceniza has partially implemented (and is still working on) a parser that is a lot faster and more reliable than the current one (and which correctly interpretes all language features). Once we're satisfied with it, we will remake the code completion plugin bottom up.
Nevertheless, this should not stop you from pursuing your idea. It should (within the limits of ctags) work just fine, and if nothing else, ctags is reliable and reasonably fast.
Personally, I don't think that using SQLite is a good idea because I believe that parsing the SQL and converting data to and from the database's storage format may cause noticeable overhead, but I may as well be wrong. Prove me wrong! I'll be happy if you do :)
I think having two approaches at hand is not a bad thing at all. Your approach may be a lot more flexible to support other languages, too.
Navigation
[0] Message Index
[#] Next page
Go to full version