viernes, 22 de junio de 2007

Fourth Status Report

* Accomplished this week:
Compiler errors are now parsed using regexp.
Added a ProjectServiceExtension so that *.o files are removed when the project is cleaned.
Changed the code generation panel, now the extra compiler options and extra linker options are show in a TextView each, so that you can put an extra option per line. Also added a "Define Symbols" field, by deault the Debug configuration defines DEBUG and both Debug and Release configurations define MONODEVELOP.
The Debug configuration now creates debug information.

Started work on the code completion feature, this is how its currently planned:
The code completion is done by a separate, generic AddIn which uses ctags. The goal is that this AddIn will allow to easily add basic code completion to any ctags supported language.
The ctags AddIn defines a "CTagsProject" which must be subclased by any project which wishes to use the code completion feature. Projects that inherit CTagsProject my as well ignore it completely and they won't be affected. Projects that inherit CTagsProject and do want to use the code completion feature must set the WantCodeCompletion property to true and implement AddTagsToProvider which is where the logic about which entries should be added to the completion list window takes place.

Currently the tags of a project are created when the project is built, but this will probably be moved to somewhere more appropriate.

* Plans for upcoming week
For next week I plan to implement a much more robust AddTagsToProvider so that correct tags are shown at the correct time, this will probably require a lot more work than I was expecting since tags don't work exactly as I thought they did.

* Challenges I might be facing
implementing a robust AddTagsToProvider won't be as easy as I thought because tags don't contain all the info I thought they did, for example the tag for a local variable does not contain the information about its type, also, tags for parameters are not created.

* Interesting resources
http://ctags.sourceforge.net/FORMAT
http://ctags.sourceforge.net/ctags.html

No hay comentarios: