Re: [anjuta-devel] Code assistance plugin



Hello everybody,

I read the previous mails again and made a little summary:
* 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.
* 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.
* 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)
* 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
* Renaming symbols
* Parameter reordering.
* Display call graph
* Static analysis

By the way I've created a wiki page: https://live.gnome.org/MoritzLuedecke_Anjuta_Clang

Regards,
Moritz

--------------------------------------------------

The language-support plugins push the symbols to the symbol-db. If no language-plugin is available, than symbol-db will use ctags.
  ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
+-------------------------+
|        symbol-db        |
+-------------------------+
   |   |    |      |    |
 ctags |    |      |  +-------------------+
       |    |      |  | something special |
       |    |      |  +-------------------+
       |    |      |      |      |
     clang java libvala python  etc
       |    |
+---------------------------+
| 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)



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