[MonoDevelop] New Task List patch - preview

Lluis Sanchez lluis at ximian.com
Tue Sep 5 12:01:26 EDT 2006

El mié, 30-08-2006 a las 21:01 +0200, David Makovský (Yakeen) escribió:
> Hi all,
> after some time I worked again on new Task List implementation, here is
> preview patch. I would appreciate comments on code, gui and
> functionality.
> Basic description what is done:
> There is new Task List option in preferences where you can setup tokens
> for aggregating tasks from comments (eg. //TODO: do something) and
> Choosing colors for priorities highlighting.
> Next we have new Task List pad ("old" one is renamed to "Errors List")
> and this one have an toolbar with combo to switch between "generated"
> tasks and user tasks.
> User Tasks are interactively editable, you can set three values -
> priority, completion, description. Priority causes color highlighting of
> tasks. These tasks are stored in userprefs file of main solution.
> Generated tasks are filled when files are parsed (this patch ads support
> for C#, as I know VB has this, other languages are unknown to me, but
> filling ICompilationUnit.TagComments when parsing will do the trick...).
> Collected data are stored in pidb files together with last valid Tokens
> that was used for parsing. Hopefully all situations when you change your
> tokens are handled well, I tried to prevent unnecessary re-parsing, but
> for first time you have to :)
> Generated Tasks have no priority highlighting yet, but it is on my TODO
> for future.
> So let me know what is your experience.

Some comments:

I think it would be better to store user tasks in its own file, instead
of the .userprefs file. This file stores user preferences for the
combine, and tasks are not preferences, but real data.

The decision about whether the a parser db has to be reparsed or not has
to be taken by the db itself, not by the GUI. The code completion
database should take care of monitoring changes in the
"Monodevelop.TaskListTokens" property, and reparse the db when needed.
The methods LastValidTaskListTokens, RemoveSpecialCommentTag and
QueueAllFilesForParse would not be needed in this way.

I'm also wondering if we should have a more generic and plugable task
service, so we can integrate other task sources, such as bugzilla or
sourceforge. But I still don't know what would be the best way of
modeling this.

Comments on the code:

The call to OnParseInformationChanged should not be necessary since it
is already called by DoParseFile().

Why update coreDatabase?

A better place for storing comments would be FileEntry. There is already
a hashtable for files.

To avoid confusion, it would be better to rename it to ErrorListPad.


More information about the Monodevelop-list mailing list