Re: [anjuta-devel] Code assistance plugin



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



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]