Hi Moritz!
* It seems to make more sens to write a new clang plugin for anjuta, oriented on gedit plugin. After this work we can maybe merge the two plugins.
Why do you think that, please give explanations. I think it is worth considering to create a common part for both plugins.
* libclang should be optional for anjuta. If not available: use ctags * We have to split symbol-db (At the end of this mail I made a little sketch to this point):* All language support plugin calls the symbol-db plugin. * The symbol-db plugin contains only the database management and some interface for listing and searching a symbol. It uses some various parser plugins for each language * For C, we can have a parser plugin using ctags or a parser plugin using clang. But perhaps the database is really not needed for clang, so in this case the symbol-db plugin could keep only the GUI and the database management is pushed in the parser plugin using ctags. I don't know.* As I mentioned we can symbol-db handle like a adapter pattern, which loads the needed plugins and rules for the accordingly language. * The language-support plugins push the symbols to the symbol-db. If no language plugin is available, than symbol-db will use ctags.
I still assume we need some kind of database as we cannot compile all source code just to search for symbols etc. Also consider that we must keep symbols of installed libraries around.
* language-support-cpp-java:splitting it into 2 plugins (one for language independent stuff like indentation, and one for the C/C++ specific stuff that would eventually use clang)
Well, we could have a indentation-c-style plugin (and probably an indentation-python later). That is pretty trivial to split I think.
* And finally, we should discuss which features of clang we really need:* Auto completion. * Background compiling and reporting errors while editing the file. * List symbols * Searching symbols
As time is limited I would first focus on these, while the last two are basically available in symbol-db and it is just the point of pushing the data to the database.
* Renaming symbols * Parameter reordering. * Display call graph * Static analysis
Of course, these would be nice to have but I think we should post-pone those currently. Regards, Johannes
Attachment:
signature.asc
Description: This is a digitally signed message part