Eclipse has a cool feature which might not be known to everyone: the "To-Do" (or Tasks) List which keeps track of what I have to do:
The name ‘Tasks’ for that view is somewhat misleading, as it has nothing to do with tasks of an operating system. That view is very powerful as it collects to-do’s, bug locations or anything I want in a central place and view.
If that view is not open, use the menu Window > Show View to open it:
Show Tasks View
One easy usage of this view is to have markers in the source comments like this one:
/* todo this is a to-do */
Eclipse parses the source files in the background and it will show up in the Tasks list like this:
The cool thing is that I can double-click on the entry and it will jump to the source/line.
I’m using such ‘TODO’ for my labs and classes to have students be able to jump directly to the source line.
It accepts different style of markers, and they can be in C and C++ comments:
/* TODO this is the normal way *//* todo this is another to-do *//*! \todo this is a doxygen to-do */// TODO this is a C++ to-do comment
It adds markers to the source view too and I can easily spot them:
Markers ini Source View
By default, the following task tags in comments are recognized
They are all case insensitive by default. The task tags can be configured under Window > Preferences > C/C++ > Task Tags. There I can add/remove tags, assign a priority:
Task Tag Settings
With the context menu in the view I can add ‘traditional’ to-do list items:
Then I can provide a description with a priority:
Adding New Task Properties
Then they get listed too, and I can check the check mark to have an item completed:
Task Items in Task List
"Tasks" markers are a good way to annotate source files with to-do’s or bug entries. The Tasks view lists them and I can use them as shortcuts to the source place.
There are other advanced usage of markers in combination with version control systems and team collaboration tools: that way assignments can be put out for the teams to work on. But that would be subject of a different article.