Re: Comments

Martin Matula <[email protected]>
Newsgroups gmane.comp.java.netbeans.modules.tasklist.devel
Message-ID <[email protected]>
Hi Tor,
see my comments below:

Tor Norbye wrote:
> Ok. I noticed that Studio .NET was doing it that way (only showing tasks
> for the current source file) and it was appealing because
> - I didn't know what to do about source tasks in the current file - should
>   they be moved up to the top when you enter the file?
> - Should the tasks be persisted between program runs, or only as you start
>   browsing files in the current session? (It sounds like you were 
> suggesting
>   the latter, which is a good idea; I was concerned that with the former
>   scheme the tasklist would grow to the point that it would become 
> useless.)
> - I didn't have to solve all the issues of scanning filesystems, cleaning
>   out, etc. I thought about only having a "Sync..." action which would
>   scan filesystems when explicitly asked to (and this would also remove
>   tasks which are noticed to have been removed from the source).

I understand the reasons. I also saw some other reasons reading through 
the list archive. However the way that I work is that sometimes I decide 
to fix some of my TODOs in source code. So I pop up the Find dialog and 
search for all occurencies of TODO and then I look for the one that I am 
in a mood to fix. I would expect that most people work like this. For 
this scenario, showing only TODOs present in an opened file is not very 
useful. Many files in my project do not contain any todo. I do not want 
to go through the all the files before I am able to find a source todo. 
That's why I thought it would be more valuable to have them persistent.
Maybe the transient approach is sufficient for C or C++ developemet as C 
files are usually bigger than Java classes?

Here are my opinions regarding the proposal on the web:
1) Project specific tasks:
I agree that tasklist should support both. Source Tasks (possibly also 
issuezilla query) would IMO always be project specific. I don't think 
that Project specific source task list would grow to the useless big 
list if it was persistent.
However I see that the source tasks are "derived". Their primary source 
is application source code. So the persistent store for them would 
function more like a cache for these tasks. MDR could be a good place 
for storing and managing them.

2) Discoverability problem (how to add source tasks?):
I think that on-line help for task module would be sufficient. 
Additionaly if the user uses TODO/PENDING/etc. in their source code, 
they will find out how it works intuitively (tasks will appear in task 
list and after clicking on them user finds out where it came from), if 
they don't use TODO in source, source tasks list remains empty. You can 
add a new action ("New task?") to the context pop-up menu opened when 
right-clicking on the empty list which opens the help page (IMO users 
intuitively right-click on the empty list if they try to figure out how 
to add a new task).

3) Suggested tasks:
Context pop-up menu item like "Autofix" seems natural to me. Another 
possibility is to have a column (next to Done) with "Autofix" button for 
each task.

4) Categories:
Another approach would be to have only one task list for user tasks by 
default (named User Tasks as now) and give users option of creating 
custom task lists of the same type. So that someone could create a new 
task list (based on User Tasks task list) and name it e.g. "Issues".

5) Transient tasks:
I think you don't need to care about this issue. Let modules that add 
tasks manage the tasks persistence themselves. You can provide some 
helper classes for doing that/ create some persistence SPI for tasks and 
provide default implementation (or 2 default implementations - XML based 
and memory only) for it and let other modules to provide their own 
implementation of this persistence SPI for their tasks if they wish. 
This modules could then implement the SPI to store the tasks e.g. in MDR 
   or some other persistent store).

6) Annotations:
I think that annotating all tasks would be better. It is similar to "// 
TODO " concept in the source - you can always see all places in the 
source which are associated with some task. When moving mouse over the 
annotation you could show a tooltip containing the short description of 
the task (similarly to showing parse error on error annotations).

Regards,
Martin
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.