NAnt.ToDo a NAnt Plugin
This simple plugin for NAnt parses your source code and creates a report of all the TODO and comment tags in your source code. The code is hosted over at google code.
Comments
The task automatically identify comments in the following style
//TODO: First Test to do Item //FIXME: First Fix me Item //HACK: First Hack Item
Additional matches can be made by adding in Token elements to the NAnt task.
Sample
<ToDo source="path/to/source" output="report.xml" searchpattern="*.cs;*.txt"> <Tokens> <Tokens Value="BUGFIX" /> </Tokens> </ToDo>
Output
<ToDo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Items> <Item> <Message>First Test to do Item</Message> <File>NAnt.ToDo\ToDoTask.cs</File> <Line>0</Line> <Type>TODO</Type> </Item> <Item> <Message>First Hack Item</Message> <File>NAnt.ToDo\ToDoTask.cs</File> <Line>0</Line> <Type>HACK</Type> </Item> <Item> <Message>First Fix me Item</Message> <File>NAnt.ToDo\ToDoTask.cs</File> <Line>0</Line> <Type>FIXME</Type> </Item> </Items> </ToDo>
Cruise Control Xsl
Below is a basic xsl style sheet that can be used with CruiseControl.NET to display the output from NAnt.ToDo.
<?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html"/> <xsl:param name="applicationPath"/> <xsl:template match="/"> <div id="ToDo"> <h1>ToDo List</h1> <div id="Summary"> <h3>To Do</h3> <table> <tbody> <xsl:for-each select="//ToDo/Items/Item"> <tr> <td> <xsl:value-of select="Type/text()"/> </td> <td> <xsl:value-of select="Message/text()"/> </td> <td> <xsl:value-of select="File/text()"/> </td> </tr> </xsl:for-each> </tbody> </table> </div> </div> </xsl:template> </xsl:stylesheet>