[Anjuta-list] RFC: Generic tag-utils lib



Hi all

This is basically an update on my previous posting in which I proposed to integrate the tag manager, ccview, ctags and scintilla's calltip and autocomplete features based on a common set of libraries. So far I have:

a) Modified ctags so that it outputs filepositions and function/macro prototypes and sent the patch to the ctags maintainer. b) Written a small tag-utils class to parse the ctags-generated file (with the added attributes) and to use this for the basis of autocomplete suggestions and calltips (not integrated with Scite (just a text-based interface) but a few mods to aneditor.cxx and text_editor.c should fix that).

However, there are numerous problems with this approach:

a) The basic aim of ctags differs from what we want to do here - it needs to maintain vim/emacs compatibility and is basically meant for browsing, whereas we aim to use it for symbol autocompletion and calltips as well. b) ctags has a file oriented approach whereas for maximum efficiency, we would like to generate tag info from a buffer whenever possible. c) It is difficult to control ctags properly since it does not have a clear interface. d) ctags has no support for pre-processing, something I've found is essential for complex projects (Try running ctags on /usr/include/stdio.h for example, you won't get any tags for 'fprintf')

Given the above, my proposal is to extract the relevant parts of ctags (mainly the combined c/c++/java parser) and write a generic library which will give us the combined functionality of workspace manager + source browser + symbol autocompletion/calltip + maybe context-sensitive help as well.

What do the developers feel about this ? We can make this into a generic library so that other people (WxWorkshop and GIDE, for example) can use this as well. In my estimate, it would take around a week to extract the relevant parts of ctags (c++/java parser) and make a library of it. I am willing to do the groundwork and prepare the backend (I'm no good at GUI stuff :-() and write the generic library, however, it would be nice if someone could help me by reviewing the interfaces since I do not know the requirements/long-term plans for Anjuta.

Biswa.






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