Developer forums (C::B DEVELOPMENT STRICTLY!) > Plugins development
(Minor) improvement of CodeCompletion?
takeshimiya:
I researched the other day for heavy full real open source C++ parsers and found more or less this:
Synopsis
Developed for the Synopsis autodoc generation app.
Elsa
Elsa can parse most C++ "in the wild". It has been tested with some notable large programs, including Mozilla, Qt, ACE, and itself.
ANTLR C++/CodeStore
Modified a little this open-source multi-platform IDE: VCFBuilder.
ANTLR is one of the most popular and well know parser generators out there.
Assist++
Developed for this another open-source cross-platform IDE: Ultimate++.
And these C/C++ pre-processor parsers:
ucpp
Wave
All of the parsers mentioned uses Abstact Syntax Trees.
The best ones seems to be ANTLR and Elsa.
Ctags is not a C++ parser, and doesn't have the same functionality, so it would belong to another plugin.
anonuser:
Gotcha, but nice work, now do you know how hard it would be to make a plugin that would take advantage of those engines?
takeshimiya:
I don't think it would be really hard, all those parsers are written in good C++.
I compiled ANTLR (CodeStore) importing a MSVC workspace in C::B and it compiled almost out-of-the-box. Didn't tried the others yet.
I would like to know what do you guys think about what's best path:
-Modify the actual CodeCompletion plugin to use one of these parsers.
-Try to improve the current C::B parser.
-Create a new CodeCompletion plugin for one of these parsers, thus having two CodeCompletion plugins in the meantime.
anonuser:
I'd think rip out the current code completion plugin and rewrite using one of thses parsers.
Add in some cool features like
argument highlighting.
A major improvment would to make sure the the popup for code completion has no window border.
Pressing tab to complete would also rock.
MortenMacFly:
--- Quote from: anonuser on November 19, 2005, 03:07:47 am ---Pressing tab to complete would also rock.
--- End quote ---
Try CTRL+Space!
Morten.
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version