<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>SubMain Community</title><link>http://community.submain.com/blogs/default.aspx</link><description>A Support Community for &lt;a href="http://submain.com"&gt;SubMain&lt;/a&gt; Products</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.2)</generator><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/SubMainCommunity" /><feedburner:info uri="submaincommunity" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><title>CodeIt.Right v2.0 Beta Available Now!</title><link>http://feedproxy.google.com/~r/SubMainCommunity/~3/CmpD1qRZ04c/codeit-right-v2-0-beta-available-now.aspx</link><pubDate>Sat, 26 Nov 2011 01:05:01 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:1923</guid><dc:creator>SubMain.Blog()</dc:creator><slash:comments>0</slash:comments><description>The BETA for CodeIt.Right has arrived and this is our new major version of the code quality product: Instant Code Review feature – get code quality feedback as you code and refactor on the spot! Visual Studio 11 support Multiple categories for a rule Multi-select in Violations Report XAML Parser 8 new Silverlight/WPF/XAML rules 27 new ASP.NET/Security rules Profile Editor - filter for selected/unselected rules Option to require exclude comments and more Focus on coding – we will help you with quality...(&lt;a href="http://community.submain.com/blogs/submain/archive/2011/11/25/codeit-right-v2-0-beta-available-now.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.submain.com/aggbug.aspx?PostID=1923" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/SubMainCommunity/~4/CmpD1qRZ04c" height="1" width="1"/&gt;</description><category domain="http://community.submain.com/blogs/submain/archive/tags/News/default.aspx">News</category><category domain="http://community.submain.com/blogs/submain/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Beta/default.aspx">Beta</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Rules/default.aspx">Rules</category><feedburner:origLink>http://community.submain.com/blogs/submain/archive/2011/11/25/codeit-right-v2-0-beta-available-now.aspx</feedburner:origLink></item><item><title>Retiring PrettyCode.Print and StudioTools; CodeSpell to be merged into GhostDoc Pro</title><link>http://feedproxy.google.com/~r/SubMainCommunity/~3/fSIgGRmrqK0/retiring-prettycode-print-and-studiotools-codespell-to-be-merged-into-ghostdoc-pro.aspx</link><pubDate>Wed, 24 Aug 2011 23:47:02 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:1838</guid><dc:creator>SubMain.Blog()</dc:creator><slash:comments>0</slash:comments><description>PrettyCode.Print and StudioTools no longer fit our strategic corporate direction to deliver best code quality tools on the market. Discontinuing these products enables us to reinvest the efforts into our flagship products and offer even better code quality tools. We will be releasing new greatly enhanced versions of our existing products as well as new products over the next six months. For a sneak peek of what’s coming please see our Product Feedback board. PrettyCode.Print PrettyCode.Print for...(&lt;a href="http://community.submain.com/blogs/submain/archive/2011/08/24/retiring-prettycode-print-and-studiotools-codespell-to-be-merged-into-ghostdoc-pro.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.submain.com/aggbug.aspx?PostID=1838" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/SubMainCommunity/~4/fSIgGRmrqK0" height="1" width="1"/&gt;</description><category domain="http://community.submain.com/blogs/submain/archive/tags/News/default.aspx">News</category><category domain="http://community.submain.com/blogs/submain/archive/tags/CodeIt.Once/default.aspx">CodeIt.Once</category><category domain="http://community.submain.com/blogs/submain/archive/tags/PrettyCode.Print/default.aspx">PrettyCode.Print</category><category domain="http://community.submain.com/blogs/submain/archive/tags/GhostDoc/default.aspx">GhostDoc</category><category domain="http://community.submain.com/blogs/submain/archive/tags/StudioTools/default.aspx">StudioTools</category><category domain="http://community.submain.com/blogs/submain/archive/tags/CodeSpell/default.aspx">CodeSpell</category><feedburner:origLink>http://community.submain.com/blogs/submain/archive/2011/08/24/retiring-prettycode-print-and-studiotools-codespell-to-be-merged-into-ghostdoc-pro.aspx</feedburner:origLink></item><item><title>Retiring PrettyCode.Print and StudioTools; CodeSpell to be merged into GhostDoc Pro</title><link>http://feedproxy.google.com/~r/SubMainCommunity/~3/fSIgGRmrqK0/retiring-prettycode-print-and-studiotools-codespell-to-be-merged-into-ghostdoc-pro.aspx</link><pubDate>Wed, 24 Aug 2011 23:47:02 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:1839</guid><dc:creator>SubMain.Blog()</dc:creator><slash:comments>0</slash:comments><description>PrettyCode.Print and StudioTools no longer fit our strategic corporate direction to deliver best code quality tools on the market. Discontinuing these products enables us to reinvest the efforts into our flagship products and offer even better code quality tools. We will be releasing new greatly enhanced versions of our existing products as well as new products over the next six months. For a sneak peek of what’s coming please see our Product Feedback board. PrettyCode.Print PrettyCode.Print for...(&lt;a href="http://community.submain.com/blogs/submain/archive/2011/08/24/retiring-prettycode-print-and-studiotools-codespell-to-be-merged-into-ghostdoc-pro.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.submain.com/aggbug.aspx?PostID=1839" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/SubMainCommunity/~4/fSIgGRmrqK0" height="1" width="1"/&gt;</description><category domain="http://community.submain.com/blogs/submain/archive/tags/News/default.aspx">News</category><category domain="http://community.submain.com/blogs/submain/archive/tags/CodeIt.Once/default.aspx">CodeIt.Once</category><category domain="http://community.submain.com/blogs/submain/archive/tags/PrettyCode.Print/default.aspx">PrettyCode.Print</category><category domain="http://community.submain.com/blogs/submain/archive/tags/GhostDoc/default.aspx">GhostDoc</category><category domain="http://community.submain.com/blogs/submain/archive/tags/StudioTools/default.aspx">StudioTools</category><category domain="http://community.submain.com/blogs/submain/archive/tags/CodeSpell/default.aspx">CodeSpell</category><feedburner:origLink>http://community.submain.com/blogs/submain/archive/2011/08/24/retiring-prettycode-print-and-studiotools-codespell-to-be-merged-into-ghostdoc-pro.aspx</feedburner:origLink></item><item><title>Released: TestMatrix v3.1.11190</title><link>http://feedproxy.google.com/~r/SubMainCommunity/~3/m9WdJOVX9hc/released-testmatrix-v3-1-11190.aspx</link><pubDate>Fri, 22 Jul 2011 00:29:00 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:1794</guid><dc:creator>SubMain.Blog()</dc:creator><slash:comments>0</slash:comments><description>We released TestMatrix v3.1 which adds support for xUnit testing framework, code editor Smart Tags, better VS2010 integration, command line version enhancements and other improvements. What's new in TestMatrix v3.1: Added support for xUnit testing framework Added code editor Smart Tags to run/debug test or group of tests Added test result "paintings" in VS2010 editor which were omitted in the first VS2010 compatible release and now they are back. Added a "No Coverage" warning in the command line...(&lt;a href="http://community.submain.com/blogs/submain/archive/2011/07/21/released-testmatrix-v3-1-11190.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.submain.com/aggbug.aspx?PostID=1794" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/SubMainCommunity/~4/m9WdJOVX9hc" height="1" width="1"/&gt;</description><category domain="http://community.submain.com/blogs/submain/archive/tags/News/default.aspx">News</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Releases/default.aspx">Releases</category><category domain="http://community.submain.com/blogs/submain/archive/tags/TestMatrix/default.aspx">TestMatrix</category><feedburner:origLink>http://community.submain.com/blogs/submain/archive/2011/07/21/released-testmatrix-v3-1-11190.aspx</feedburner:origLink></item><item><title>Holiday Offer: Complimentary Software Assurance and Licence Protection + Save up to 30%!</title><link>http://feedproxy.google.com/~r/SubMainCommunity/~3/5v5NNo01T4Q/holiday-offer-complimentary-software-assurance-and-licence-protection-save-up-to-30.aspx</link><pubDate>Fri, 10 Dec 2010 01:15:00 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:1523</guid><dc:creator>SubMain.Blog()</dc:creator><slash:comments>0</slash:comments><description>SubMain is proud to spread the holiday cheer by offering customers best savings of the year with free 1 year of Software Assurance and Support, free lifetime License Protection and great savings on multiple license purchases. Get Software Assurance and Support absolutely free! From now until January 7, purchase any new CodeIt.Right licenses and receive 1 year of Software Assurance and Support subscription at no additional cost . Normally priced at $100 per user ($150 per user for Enterprise Edition),...(&lt;a href="http://community.submain.com/blogs/submain/archive/2010/12/09/holiday-offer-complimentary-software-assurance-and-licence-protection-save-up-to-30.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.submain.com/aggbug.aspx?PostID=1523" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/SubMainCommunity/~4/5v5NNo01T4Q" height="1" width="1"/&gt;</description><category domain="http://community.submain.com/blogs/submain/archive/tags/News/default.aspx">News</category><category domain="http://community.submain.com/blogs/submain/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category><category domain="http://community.submain.com/blogs/submain/archive/tags/GhostDoc/default.aspx">GhostDoc</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Promotions/default.aspx">Promotions</category><feedburner:origLink>http://community.submain.com/blogs/submain/archive/2010/12/09/holiday-offer-complimentary-software-assurance-and-licence-protection-save-up-to-30.aspx</feedburner:origLink></item><item><title>Released: GhostDoc and GhostDoc Pro v3.0.10340</title><link>http://feedproxy.google.com/~r/SubMainCommunity/~3/pBEEjTySUuM/released-ghostdoc-and-ghostdoc-pro-v3-0-10340.aspx</link><pubDate>Thu, 09 Dec 2010 12:55:00 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:1519</guid><dc:creator>SubMain.Blog()</dc:creator><slash:comments>1</slash:comments><description>Today we are announcing the release of GhostDoc v3.0 - a new major release of the product. This version includes product usability and menu changes, adds many new features - menus, configuration rules, configuration options. It also features new error logging to improve troubleshooting of GhostDoc issues. The new version introduces GhostDoc Pro Edition - enhanced version of the product that gives users complete control over your XML Comment content and layout as well as automates XML Comment generation...(&lt;a href="http://community.submain.com/blogs/submain/archive/2010/12/09/released-ghostdoc-and-ghostdoc-pro-v3-0-10340.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.submain.com/aggbug.aspx?PostID=1519" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/SubMainCommunity/~4/pBEEjTySUuM" height="1" width="1"/&gt;</description><category domain="http://community.submain.com/blogs/submain/archive/tags/News/default.aspx">News</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Releases/default.aspx">Releases</category><category domain="http://community.submain.com/blogs/submain/archive/tags/GhostDoc/default.aspx">GhostDoc</category><feedburner:origLink>http://community.submain.com/blogs/submain/archive/2010/12/09/released-ghostdoc-and-ghostdoc-pro-v3-0-10340.aspx</feedburner:origLink></item><item><title>Released: TestMatrix v3.0.10299</title><link>http://feedproxy.google.com/~r/SubMainCommunity/~3/ykblZU4komU/released-testmatrix-v3-0-10299.aspx</link><pubDate>Tue, 26 Oct 2010 15:15:05 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:1452</guid><dc:creator>SubMain.Blog()</dc:creator><slash:comments>0</slash:comments><description>We are happy to announce the release of TestMatrix v3.0 - new major version focused on product stability and performance improvements, full VS2010 and .NET 4.0 support, command line version and the latest versions of unit testing frameworks! New in v3.0: Improved support for VS2010 Added support for .NET Framework 4.0 Enabled Command Line version for Continuous Integration/Automated Build process Updated to support the latest versions of unit testing frameworks - NUnit 2.5.x, MbUnit 2.4, csUnit 2.6,...(&lt;a href="http://community.submain.com/blogs/submain/archive/2010/10/26/released-testmatrix-v3-0-10299.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.submain.com/aggbug.aspx?PostID=1452" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/SubMainCommunity/~4/ykblZU4komU" height="1" width="1"/&gt;</description><category domain="http://community.submain.com/blogs/submain/archive/tags/News/default.aspx">News</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Releases/default.aspx">Releases</category><category domain="http://community.submain.com/blogs/submain/archive/tags/TestMatrix/default.aspx">TestMatrix</category><feedburner:origLink>http://community.submain.com/blogs/submain/archive/2010/10/26/released-testmatrix-v3-0-10299.aspx</feedburner:origLink></item><item><title>Update: CodeIt.Right v1.9.10111 and New Setup for TestMatrix</title><link>http://feedproxy.google.com/~r/SubMainCommunity/~3/ML7SzZvJu3s/update-codeit-right-v1-9-10111-and-new-setup-for-testmatrix.aspx</link><pubDate>Wed, 21 Apr 2010 12:19:05 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:1218</guid><dc:creator>SubMain.Blog()</dc:creator><slash:comments>0</slash:comments><description>We published two updates this morning: CodeIt.Right v1.9.10111 - both Standard and Enterprise editions. This is a minor update, primarily bug fixes. Not a required update unless you are experiencing some rule issues or unhandled errors this update might fix. New setup for TestMatrix - we have created a brand new setup for TestMatrix to replace the often confusing "silent" version. New setup experience is very much the same as all our other products. Version hasn't of the product hasn't changed....(&lt;a href="http://community.submain.com/blogs/submain/archive/2010/04/21/update-codeit-right-v1-9-10111-and-new-setup-for-testmatrix.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.submain.com/aggbug.aspx?PostID=1218" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/SubMainCommunity/~4/ML7SzZvJu3s" height="1" width="1"/&gt;</description><category domain="http://community.submain.com/blogs/submain/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Updates/default.aspx">Updates</category><category domain="http://community.submain.com/blogs/submain/archive/tags/TestMatrix/default.aspx">TestMatrix</category><feedburner:origLink>http://community.submain.com/blogs/submain/archive/2010/04/21/update-codeit-right-v1-9-10111-and-new-setup-for-testmatrix.aspx</feedburner:origLink></item><item><title>Community: CodeIt.Right and CruiseControl.NET; File Header Template for StyleCop</title><link>http://feedproxy.google.com/~r/SubMainCommunity/~3/s3t-ouw0_7w/community-codeit-right-and-cruisecontrol-net-file-header-template-for-stylecop.aspx</link><pubDate>Tue, 06 Apr 2010 20:46:04 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:1196</guid><dc:creator>SubMain.Blog()</dc:creator><slash:comments>1</slash:comments><description>We are added 2 new community contributions to our Tutorials page. Paulo Morgado posted a great template for CodeIt.Right Code File Header correction action that automatically generates file header compliant with StyleCop Rules. You can find the template source in Paulo's blog post CodeIt.Right Code File Header Template For StyleCop Rules Craig Sutherland has done a great job integrating CodeIt.Right with CruiseControl.NET . Here is CodeIt.Right violations report in CC.NET - great to see Craig took...(&lt;a href="http://community.submain.com/blogs/submain/archive/2010/04/06/community-codeit-right-and-cruisecontrol-net-file-header-template-for-stylecop.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.submain.com/aggbug.aspx?PostID=1196" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/SubMainCommunity/~4/s3t-ouw0_7w" height="1" width="1"/&gt;</description><category domain="http://community.submain.com/blogs/submain/archive/tags/News/default.aspx">News</category><category domain="http://community.submain.com/blogs/submain/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Rules/default.aspx">Rules</category><category domain="http://community.submain.com/blogs/submain/archive/tags/CruiseControl.NET/default.aspx">CruiseControl.NET</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Continuous+Integration/default.aspx">Continuous Integration</category><category domain="http://community.submain.com/blogs/submain/archive/tags/StyleCop/default.aspx">StyleCop</category><feedburner:origLink>http://community.submain.com/blogs/submain/archive/2010/04/06/community-codeit-right-and-cruisecontrol-net-file-header-template-for-stylecop.aspx</feedburner:origLink></item><item><title>SubMain acquires Exact Magic's TestMatrix, CodeSpell and StudioTools</title><link>http://feedproxy.google.com/~r/SubMainCommunity/~3/QkKDYgwufbg/submain-acquires-exactmagic-s-testmatrix-codespell-and-studiotools.aspx</link><pubDate>Tue, 09 Mar 2010 06:32:00 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:1144</guid><dc:creator>Serge B.</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;&lt;strong&gt;SubMain will continue development of TestMatrix, CodeSpell and StudioTools; adds to Code Quality developer tools Suite.&lt;/strong&gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;Kirkland, WA, March 9, 2010&lt;/em&gt; - SubMain announced today that it has acquired TestMatrix, the popular Visual Studio .NET extension for unit testing and code coverage, as well as CodeSpell and StudioTools from Exact Magic Software.&lt;/p&gt;&lt;p&gt;&amp;quot;I&amp;#39;m happy to place TestMatrix and our other .NET products in the hands of SubMain,&amp;quot; says Duane Fields, Managing Partner at Exact Magic Software, the original owner and developer of TestMatrix. &amp;quot;Like their other acquisitions, SubMain will take good care of our TestMatrix and take it to the next level.&amp;quot;&lt;/p&gt;&lt;p&gt;&lt;a href="http://submain.com/testmatrix"&gt;TestMatrix&lt;/a&gt; (&lt;a href="http://submain.com/testmatrix"&gt;http://submain.com/testmatrix&lt;/a&gt;) adds support for unit testing, code coverage analysis, and test profiling to Visual Studio, seamlessly incorporating these critical development practices directly into the coding process itself; &lt;a href="http://submain.com/codespell"&gt;CodeSpell&lt;/a&gt; (&lt;a href="http://submain.com/codespell"&gt;http://submain.com/codespell&lt;/a&gt;) adds real-time, intelligent detection and correction of misspellings to Visual Studio; and &lt;a href="http://submain.com/studiotools"&gt;StudioTools&lt;/a&gt; (&lt;a href="http://submain.com/studiotools"&gt;http://submain.com/studiotools&lt;/a&gt;) is a rich collection of Visual Studio enhancements.&lt;/p&gt;&lt;p&gt;&amp;quot;TestMatrix has a well-deserved reputation for making test driven development painless and convenient by enabling unit testing tasks an integral part of the programming experience, not an occasional external exercise,&amp;quot; says Serge Baranovsky, President of SubMain. &amp;quot;It fits SubMain&amp;#39;s code quality tools line-up perfectly and we are proud to serve the .NET community by continuing the development of this valuable tool.&amp;quot;&lt;/p&gt;&lt;p&gt;SubMain has a track record for acquiring products, enhancing and integrating them in the product offering. Most recently, SubMain purchased GhostDoc and continues to improve and maintain it as a free tool for the .NET community.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;About SubMain&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;SubMain, a Division of vbCity.com LLC, makes code quality tools for .NET developers. The company&amp;#39;s flagship product &lt;a href="http://submain.com/codeit.right"&gt;CodeIt.Right&lt;/a&gt; (&lt;a href="http://submain.com/codeit.right"&gt;http://submain.com/codeit.right&lt;/a&gt;) helps developers across the globe to follow team standards and best practices, improve code security and performance and find potential issues early in the development cycle. &lt;/p&gt;&lt;p&gt;&lt;strong&gt;About Exact Magic Software, LLC&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Exact Magic Software, LLC specializes in building native applications for the Apple iPhone iPad, and iPod Touch. The company has shipped dozens of applications, but is best known for its top selling applications &lt;a href="http://www.exactmagic.com/products/weather-radar/"&gt;Weather Radar&lt;/a&gt;, &lt;a href="http://www2.exactmagic.com/products/business-phone-numbers/"&gt;Business Phone Numbers&lt;/a&gt;, and &lt;a href="http://www.exactmagic.com/products/infinite-maze/"&gt;Infinite Maze&lt;/a&gt;. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Media Contact&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Wendy Cavens&lt;br /&gt;Director of Marketing, SubMain&lt;br /&gt;Tel: 1(800) 936-2134&lt;br /&gt;Email: &lt;a href="mailto:wendyc@submain.com"&gt;wendyc@submain.com&lt;/a&gt;&amp;nbsp; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://community.submain.com/aggbug.aspx?PostID=1144" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/SubMainCommunity/~4/QkKDYgwufbg" height="1" width="1"/&gt;</description><category domain="http://community.submain.com/blogs/news/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category><category domain="http://community.submain.com/blogs/news/archive/tags/Press+Release/default.aspx">Press Release</category><category domain="http://community.submain.com/blogs/news/archive/tags/News/default.aspx">News</category><category domain="http://community.submain.com/blogs/news/archive/tags/StudioTools/default.aspx">StudioTools</category><category domain="http://community.submain.com/blogs/news/archive/tags/CodeSpell/default.aspx">CodeSpell</category><category domain="http://community.submain.com/blogs/news/archive/tags/TestMatrix/default.aspx">TestMatrix</category><feedburner:origLink>http://community.submain.com/blogs/news/archive/2010/03/08/submain-acquires-exactmagic-s-testmatrix-codespell-and-studiotools.aspx</feedburner:origLink></item><item><title>SubMain acquires Exact Magic's TestMatrix, CodeSpell and StudioTools</title><link>http://feedproxy.google.com/~r/SubMainCommunity/~3/kXGersVuX-8/submain-acquires-exact-magic-s-testmatrix-codespell-and-studiotools.aspx</link><pubDate>Tue, 09 Mar 2010 00:03:02 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:1148</guid><dc:creator>SubMain.Blog()</dc:creator><slash:comments>0</slash:comments><description>As announced earlier today we just closed the acquisition of the popular unti testing and code coverage product TestMatrix , as well as CodeSpell and StudioTools . We, SubMain, will continue to maintain and enhance these products. TestMatrix adds support for unit testing, code coverage analysis, and test profiling to Visual Studio, seamlessly incorporating these critical development practices directly into the coding process itself; CodeSpell adds real-time, intelligent detection and correction of...(&lt;a href="http://community.submain.com/blogs/submain/archive/2010/03/08/submain-acquires-exact-magic-s-testmatrix-codespell-and-studiotools.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.submain.com/aggbug.aspx?PostID=1148" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/SubMainCommunity/~4/kXGersVuX-8" height="1" width="1"/&gt;</description><category domain="http://community.submain.com/blogs/submain/archive/tags/News/default.aspx">News</category><category domain="http://community.submain.com/blogs/submain/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Releases/default.aspx">Releases</category><category domain="http://community.submain.com/blogs/submain/archive/tags/StudioTools/default.aspx">StudioTools</category><category domain="http://community.submain.com/blogs/submain/archive/tags/CodeSpell/default.aspx">CodeSpell</category><category domain="http://community.submain.com/blogs/submain/archive/tags/TestMatrix/default.aspx">TestMatrix</category><feedburner:origLink>http://community.submain.com/blogs/submain/archive/2010/03/08/submain-acquires-exact-magic-s-testmatrix-codespell-and-studiotools.aspx</feedburner:origLink></item><item><title>Released: CodeIt.Right v1.9.10053</title><link>http://feedproxy.google.com/~r/SubMainCommunity/~3/afbs5FmvkCs/released-codeit-right-v1-9-10053.aspx</link><pubDate>Thu, 25 Feb 2010 16:31:00 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:1129</guid><dc:creator>SubMain.Blog()</dc:creator><slash:comments>0</slash:comments><description>Today we released update for CodeIt.Right Standard and Enterprise Editions - v1.9.10053. As part of our 2010 Product Roadmap , this version changes include significantly improved performance, support for GlobalSuppressions, new rules and bug fixes. New in CodeIt.Right v1.9.10053: Major performance improvements throughout the rule base Added support for GlobalSuppressions - syntax is the same as the VSTS GlobalSuppressions file. This new feature is supported in both Standard and Enterprise editions....(&lt;a href="http://community.submain.com/blogs/submain/archive/2010/02/25/released-codeit-right-v1-9-10053.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.submain.com/aggbug.aspx?PostID=1129" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/SubMainCommunity/~4/afbs5FmvkCs" height="1" width="1"/&gt;</description><category domain="http://community.submain.com/blogs/submain/archive/tags/News/default.aspx">News</category><category domain="http://community.submain.com/blogs/submain/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Rules/default.aspx">Rules</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Releases/default.aspx">Releases</category><feedburner:origLink>http://community.submain.com/blogs/submain/archive/2010/02/25/released-codeit-right-v1-9-10053.aspx</feedburner:origLink></item><item><title>2010 Product Roadmap</title><link>http://feedproxy.google.com/~r/SubMainCommunity/~3/gjaO-9febRg/2010-product-roadmap.aspx</link><pubDate>Tue, 23 Feb 2010 09:13:00 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:1123</guid><dc:creator>SubMain.Blog()</dc:creator><slash:comments>0</slash:comments><description>Code Quality developer tools is the direction we've been following since the introduction of CodeIt.Right and we are taking this commitment to the next level in 2010 with two new products and new features for our existing products. One of the new products to be released in 2010 will assist in unit testing, code coverage and test code profiling; the second new product will be complementary to CodeIt.Right. All three products together will comprise our new Code Quality Suite. Additionally, we will...(&lt;a href="http://community.submain.com/blogs/submain/archive/2010/02/23/2010-product-roadmap.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.submain.com/aggbug.aspx?PostID=1123" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/SubMainCommunity/~4/gjaO-9febRg" height="1" width="1"/&gt;</description><category domain="http://community.submain.com/blogs/submain/archive/tags/News/default.aspx">News</category><category domain="http://community.submain.com/blogs/submain/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Rules/default.aspx">Rules</category><category domain="http://community.submain.com/blogs/submain/archive/tags/GhostDoc/default.aspx">GhostDoc</category><feedburner:origLink>http://community.submain.com/blogs/submain/archive/2010/02/23/2010-product-roadmap.aspx</feedburner:origLink></item><item><title>How CodeIt.Right is better than FxCop?</title><link>http://feedproxy.google.com/~r/SubMainCommunity/~3/T3K0E5s1s68/how-codeit-right-is-better-than-fxcop.aspx</link><pubDate>Thu, 04 Feb 2010 06:52:00 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:1089</guid><dc:creator>Serge B.</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;The biggest benefit of &lt;a href="http://submain.com/codeit.right"&gt;CodeIt.Right&lt;/a&gt; is the automatic code correction and refactoring to patterns. The alternative is you could manually spend hours or even days on some pesky violations rather CodeIt.Right do the work for you in a matter of minutes.&lt;/p&gt;  &lt;p&gt;You can also choose to follow Microsoft Guidelines or you own custom standards, group rule sets into profiles, generate your custom standard documentation, efficiently work with existing/legacy projects, avoid false positives.&lt;/p&gt;  &lt;p&gt;The Enterprise Edition adds Team features, Code Metrics, Statistics, enhanced reporting.&lt;/p&gt;  &lt;table cellpadding="2" cellspacing="0" class="thin_border" width="700"&gt;     &lt;tr&gt;       &lt;th width="25%"&gt;&amp;nbsp;&lt;/th&gt;        &lt;th width="40%"&gt;&lt;strong&gt;CodeIt.Right&lt;/strong&gt;&lt;/th&gt;        &lt;th width="35%"&gt;&lt;strong&gt;FxCop&lt;/strong&gt;&lt;/th&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="25%"&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/td&gt;        &lt;td width="40%"&gt;Scans and analyzes source code&lt;/td&gt;        &lt;td width="35%"&gt;Runs on compiled assemblies (you have to compile code to use it)&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;Correction&lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;Corrects violations and code smells automatically&lt;/td&gt;        &lt;td&gt;&amp;nbsp;N/A&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;Refactoring to patterns&lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;Automatically implements and corrects most common coding patterns like Dispose/Finalize, ISerializable, Custom Serialization, etc&lt;/td&gt;        &lt;td&gt;&amp;nbsp;N/A&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;Visual Studio Integration&lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;Natively integrates into Visual Studio IDE; quick navigation to the violation source code; highlights modifications in the editor; safe Undo/Redo.&lt;/td&gt;        &lt;td&gt;Basic/Command line&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;ASP.NET&lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;ASPX/ASCX/ASMX pages, in-page code, code behind source&lt;/td&gt;        &lt;td&gt;Only compiled code behind assemblies&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;Local variables/constants&lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;Includes rules that are targeting local variables/constants and any data that is present in the source code&lt;/td&gt;        &lt;td&gt;Not possible in FxCop - the data is lost in the MSIL&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;Follow your own standards&lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;Includes Microsoft Guidelines and best industry practices out of the box. Allows to define your own standard to follow - tweak the rule set to your needs without having to write custom rules (which is an option too). For example, go as crazy as enforce Hungarian naming conventions; or convert existing project with Hungarian notation to the new MS style conventions.&lt;/td&gt;        &lt;td&gt;Strictly enforces Microsoft Guidelines - inflexible and enforces the set with no options to configure&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;Define custom rule set&lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;Profiles - configure multiple rule subsets and quickly switch between them. Share profiles between the Team members or (EE) push them to the Team.&lt;/td&gt;        &lt;td&gt;&amp;nbsp;N/A&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;Rule Instances&lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;Introduces Rule Instances - multiple instances of a single rule that are configured (via rule Properties) to your Team needs&lt;/td&gt;        &lt;td&gt;Only allows to turn off specific rule, cannot configure/tweak&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;Reducing noise (false positives)&lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;         &lt;ul&gt;           &lt;li&gt;Exclude violation in Project &lt;/li&gt;            &lt;li&gt;Exclude violation in source code &lt;/li&gt;            &lt;li&gt;Exclude Violation, Rule, File, Project &lt;/li&gt;            &lt;li&gt;Exclude code regions &lt;/li&gt;            &lt;li&gt;Custom Profiles &lt;/li&gt;            &lt;li&gt;Override default rule severity, target, scope, etc &lt;/li&gt;         &lt;/ul&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;ul&gt;           &lt;li&gt;Exclude violation in Project &lt;/li&gt;            &lt;li&gt;Exclude violation in source code &lt;/li&gt;         &lt;/ul&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;Severity Threshold&lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;Unique feature - Severity Threshold - allows to concentrate on most critical violations first and drill down from most severe issues to simple warnings.&lt;/td&gt;        &lt;td&gt;&amp;nbsp;N/A&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;&lt;/strong&gt;          &lt;br /&gt;&lt;/td&gt;        &lt;td&gt;Scan entire solution, project, folder or individual file&lt;/td&gt;        &lt;td&gt;Scan projects only&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;Create own guidelines documentation&lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;Generate Team Guidelines document within a mouse click, with description, code samples, etc - based on your custom configured Profile&lt;/td&gt;        &lt;td&gt;&amp;nbsp;N/A&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;Team features&lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;(EE) separate modules to (a) author / configure team standards and (b) run analysis and correction based on the team standard configured by Team Lead/Architect; publish and push (share) Team standard configuration to the Team members; Team usage statistics&lt;/td&gt;        &lt;td&gt;&amp;nbsp;N/A&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;Reporting&lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;Flexible reporting/pivot that can be exported and printed&lt;/td&gt;        &lt;td&gt;&amp;nbsp;N/A&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;Code Metrics&lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;Available (EE); can be exported, printed, emailed&lt;/td&gt;        &lt;td&gt;&amp;nbsp;N/A&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;Command line output&lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;Violations, Code Metrics (EE)&lt;/td&gt;        &lt;td&gt;Violations only&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;Command line filtering&lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;Solution, Project, Profile, Severity Threshold&lt;/td&gt;        &lt;td&gt;Project, Assembly&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;Command line delivery&lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;File, Send via email&lt;/td&gt;        &lt;td&gt;File only&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;Command line integration&lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;Command line tool, MsBuild and NAnt tasks&lt;/td&gt;        &lt;td&gt;Command line tool&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;Update delivery&lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;Rule Library auto-update - get new rules when we publish them&lt;br /&gt;&lt;/td&gt;        &lt;td&gt;&amp;nbsp;N/A&lt;/td&gt;     &lt;/tr&gt;   &lt;/table&gt;  &lt;p&gt;&lt;a href="http://submain.com/download/codeit.right/"&gt;Download&lt;/a&gt; trial copy of CodeIt.Right today and see the difference yourself!&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://community.submain.com/aggbug.aspx?PostID=1089" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/SubMainCommunity/~4/T3K0E5s1s68" height="1" width="1"/&gt;</description><category domain="http://community.submain.com/blogs/tutorials/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category><category domain="http://community.submain.com/blogs/tutorials/archive/tags/FxCop/default.aspx">FxCop</category><feedburner:origLink>http://community.submain.com/blogs/tutorials/archive/2010/02/03/how-codeit-right-is-better-than-fxcop.aspx</feedburner:origLink></item><item><title>XML Comment template: IntelliComment or XML Comment Stub?</title><link>http://feedproxy.google.com/~r/SubMainCommunity/~3/cVPF2dvoL0I/xml-comment-template-intellicomment-or-xml-comment-stub.aspx</link><pubDate>Fri, 29 Jan 2010 00:39:00 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:1088</guid><dc:creator>Serge B.</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;One of the very helpful and important rules that we added in the past few months is the one that finds members that missing XML documents when these are required - &lt;em&gt;General&lt;/em&gt; / &lt;em&gt;Type, Member -&amp;gt; Should have XML comments&lt;/em&gt; (&lt;em&gt;Externally visible types and members should have XML comments&lt;/em&gt;). &lt;/p&gt;  &lt;p&gt;One of the most frequently asked question about the rule is why some users are not seeing the missing XML comment violation on select project. There are two possible reasons for that:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;The rule will only trigger violation on &lt;em&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/em&gt; and &lt;strong&gt;&lt;em&gt;protected&lt;/em&gt;&lt;/strong&gt; members in its default configuration. If you choose to have it validate private and/or static members, you will need to edit the rule's &lt;strong&gt;Scope&lt;/strong&gt; property to include those as well. &lt;/li&gt;    &lt;li&gt;The option to generate XML documentation is turned OFF in&amp;#160; your project. In this case the rule doesn't the missing XML comment violation to reduce false positives since the project setting state it does not need XML documentation. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;To turn the option to generate documentation ON, in C# project, go to project &lt;strong&gt;Properties&lt;/strong&gt; -&amp;gt; &lt;strong&gt;Build&lt;/strong&gt; -&amp;gt; &lt;strong&gt;XML documentation file&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="XMLComment1" border="0" alt="XMLComment1" src="http://community.submain.com/blogs/tutorials/XMLComment1_504EBB76.png" width="680" height="120" /&gt; &lt;/p&gt;  &lt;p&gt;In VB project, go to project &lt;strong&gt;Properties&lt;/strong&gt; -&amp;gt; &lt;strong&gt;Compile&lt;/strong&gt; -&amp;gt; &lt;strong&gt;Generate XML documentation file&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="XMLComment2" border="0" alt="XMLComment2" src="http://community.submain.com/blogs/tutorials/XMLComment2_360E5252.png" width="327" height="37" /&gt; &lt;/p&gt;  &lt;p&gt;In the spirit of CodeIt.Right the rule offers two automatic correction options - &lt;em&gt;IntelliComment&lt;/em&gt; and &lt;em&gt;XML Comment Stub&lt;/em&gt;. In the default configuration these are fairly similar, the difference is that IntelliComment will fill in the generated XML Comment using data from our GhostDoc engine, while the Stub template will create an empty XML Comment Stub.&lt;/p&gt;  &lt;p&gt;Here is example generated by IntelliComment template&lt;/p&gt;  &lt;pre style="overflow-x:auto;word-wrap:break-word;" class="code"&gt;    &lt;span style="color:gray;"&gt;/// &amp;lt;summary&amp;gt;
    /// &lt;/span&gt;&lt;span style="background:#ffff66;color:green;"&gt;Determines the size of the page buffer.&lt;/span&gt;
    &lt;span style="color:gray;"&gt;/// &amp;lt;/summary&amp;gt;
    /// &amp;lt;param name=&amp;quot;initialPageBufferSize&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="background:#ffff66;color:green;"&gt;Initial size of the page buffer.&lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;/param&amp;gt;
    /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;
    /// &amp;lt;remarks&amp;gt;&amp;lt;/remarks&amp;gt;
    &lt;/span&gt;&lt;span style="color:navy;"&gt;public int &lt;/span&gt;&lt;span style="color:maroon;"&gt;DeterminePageBufferSize&lt;/span&gt;(
                           &lt;span style="color:navy;"&gt;int &lt;/span&gt;&lt;span style="color:maroon;"&gt;initialPageBufferSize&lt;/span&gt;) {

        &lt;span style="color:green;"&gt;// Implement the method here
        &lt;/span&gt;&lt;span style="color:navy;"&gt;return 1&lt;/span&gt;;

    }&lt;/pre&gt;

&lt;p&gt;And example generated by XML Comment Stub template &lt;/p&gt;

&lt;pre style="overflow-x:auto;word-wrap:break-word;" class="code"&gt;    &lt;span style="color:gray;"&gt;/// &amp;lt;summary&amp;gt;
    /// &lt;span style="background:#ffff66;"&gt;&amp;#160;&lt;/span&gt;
    /// &amp;lt;/summary&amp;gt;
    /// &amp;lt;param name=&amp;quot;initialPageBufferSize&amp;quot;&amp;gt;&lt;span style="background:#ffff66;"&gt;&amp;#160;&lt;/span&gt;&amp;lt;/param&amp;gt;
    /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;
    /// &amp;lt;remarks&amp;gt;&amp;lt;/remarks&amp;gt;
    &lt;/span&gt;&lt;span style="color:navy;"&gt;public int &lt;/span&gt;&lt;span style="color:maroon;"&gt;DeterminePageBufferSize&lt;/span&gt;(
                           &lt;span style="color:navy;"&gt;int &lt;/span&gt;&lt;span style="color:maroon;"&gt;initialPageBufferSize&lt;/span&gt;) {

        &lt;span style="color:green;"&gt;// Implement the method here
        &lt;/span&gt;&lt;span style="color:navy;"&gt;return 1&lt;/span&gt;;

    }&lt;/pre&gt;

&lt;p&gt;So, the rule offers two correction option - it is up to you to pick which template works best for your project.&lt;/p&gt;

&lt;p&gt;I notice that I keep using the word &amp;quot;template&amp;quot; when describing the two correction options. That is because these are true T4 templates that you can customize to fit your team requirements.&lt;/p&gt;

&lt;p&gt;Here is default IntelliComment template:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre style="overflow-x:auto;word-wrap:break-word;" class="code"&gt;&lt;span style="background:#ffff00;color:black;"&gt;&amp;lt;#@&lt;/span&gt; &lt;span style="color:maroon;"&gt;template &lt;/span&gt;&lt;span style="color:red;"&gt;language&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;C#&amp;quot; &lt;/span&gt;&lt;span style="color:black;"&gt;&lt;span style="background:#ffff00;"&gt;#&amp;gt;&lt;/span&gt;
&lt;span style="background:#ffff00;"&gt;&amp;lt;#&lt;/span&gt;
    CodeElement codeElement = Context.CurrentCodeElement;
&lt;span style="background:#ffff00;"&gt;#&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;span style="color:green;"&gt;/// &amp;lt;summary&amp;gt;
/// &lt;/span&gt;&lt;span style="color:black;"&gt;&lt;span style="background:#ffff00;"&gt;&amp;lt;#=&lt;/span&gt; codeElement.XmlComment.SummaryTagText &lt;span style="background:#ffff00;"&gt;#&amp;gt;&lt;/span&gt;    
&lt;/span&gt;&lt;span style="color:green;"&gt;/// &amp;lt;/summary&amp;gt;
&lt;/span&gt;&lt;span style="color:black;"&gt;&lt;span style="background:#ffff00;"&gt;&amp;lt;#&lt;/span&gt;
    &lt;/span&gt;&lt;span style="color:blue;"&gt;if&lt;/span&gt;&lt;span style="color:black;"&gt;(codeElement.HasTypeParameters) 
    {
        &lt;/span&gt;&lt;span style="color:blue;"&gt;foreach&lt;/span&gt;&lt;span style="color:black;"&gt;(TypeParameter typeParameter &lt;/span&gt;&lt;span style="color:blue;"&gt;in &lt;/span&gt;&lt;span style="color:black;"&gt;codeElement.TypeParameters) {
&lt;span style="background:#ffff00;"&gt;#&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;span style="color:green;"&gt;/// &amp;lt;typeparam name=&amp;quot;&lt;/span&gt;&lt;span style="color:black;"&gt;&lt;span style="background:#ffff00;"&gt;&amp;lt;#=&lt;/span&gt; typeParameter.Name &lt;span style="background:#ffff00;"&gt;#&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:green;"&gt;&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color:black;"&gt;&lt;span style="background:#ffff00;"&gt;&amp;lt;#=&lt;/span&gt; typeParameter.XmlComment.TypeParamTagText &lt;span style="background:#ffff00;"&gt;#&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:green;"&gt;&amp;lt;/typeparam&amp;gt;
&lt;/span&gt;&lt;span style="color:black;"&gt;&lt;span style="background:#ffff00;"&gt;&amp;lt;#&lt;/span&gt;
        }
    }
    
    &lt;/span&gt;&lt;span style="color:blue;"&gt;if&lt;/span&gt;&lt;span style="color:black;"&gt;(codeElement.HasParameters) 
    {
        &lt;/span&gt;&lt;span style="color:blue;"&gt;foreach&lt;/span&gt;&lt;span style="color:black;"&gt;(Parameter parameter &lt;/span&gt;&lt;span style="color:blue;"&gt;in &lt;/span&gt;&lt;span style="color:black;"&gt;codeElement.Parameters) {
&lt;span style="background:#ffff00;"&gt;#&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;span style="color:green;"&gt;/// &amp;lt;param name=&amp;quot;&lt;/span&gt;&lt;span style="color:black;"&gt;&lt;span style="background:#ffff00;"&gt;&amp;lt;#=&lt;/span&gt; parameter.Name &lt;span style="background:#ffff00;"&gt;#&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:green;"&gt;&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color:black;"&gt;&lt;span style="background:#ffff00;"&gt;&amp;lt;#=&lt;/span&gt; parameter.XmlComment.ParaTagText &lt;span style="background:#ffff00;"&gt;#&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:green;"&gt;&amp;lt;/param&amp;gt;
&lt;/span&gt;&lt;span style="color:black;"&gt;&lt;span style="background:#ffff00;"&gt;&amp;lt;#&lt;/span&gt;
        }
    }
    
    &lt;/span&gt;&lt;span style="color:blue;"&gt;if&lt;/span&gt;&lt;span style="color:black;"&gt;(codeElement.HasReturnType) {
&lt;span style="background:#ffff00;"&gt;#&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;span style="color:green;"&gt;/// &amp;lt;returns&amp;gt;&lt;/span&gt;&lt;span style="color:black;"&gt;&lt;span style="background:#ffff00;"&gt;&amp;lt;#=&lt;/span&gt; codeElement.XmlComment.ReturnsTagText &lt;span style="background:#ffff00;"&gt;#&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:green;"&gt;&amp;lt;/returns&amp;gt;
&lt;/span&gt;&lt;span style="color:black;"&gt;&lt;span style="background:#ffff00;"&gt;&amp;lt;#&lt;/span&gt;
    }
    
    &lt;/span&gt;&lt;span style="color:blue;"&gt;if&lt;/span&gt;&lt;span style="color:black;"&gt;(codeElement.IsProperty) {
&lt;span style="background:#ffff00;"&gt;#&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;span style="color:green;"&gt;/// &amp;lt;value&amp;gt;&lt;/span&gt;&lt;span style="color:black;"&gt;&lt;span style="background:#ffff00;"&gt;&amp;lt;#=&lt;/span&gt; codeElement.XmlComment.ValueTagText &lt;span style="background:#ffff00;"&gt;#&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:green;"&gt;&amp;lt;/value&amp;gt;
&lt;/span&gt;&lt;span style="color:black;"&gt;&lt;span style="background:#ffff00;"&gt;&amp;lt;#&lt;/span&gt;
    }    
    
    &lt;/span&gt;&lt;span style="color:blue;"&gt;if&lt;/span&gt;&lt;span style="color:black;"&gt;(codeElement.IsMember) {
&lt;span style="background:#ffff00;"&gt;#&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;span style="color:green;"&gt;/// &amp;lt;remarks&amp;gt;&amp;lt;/remarks&amp;gt;
&lt;/span&gt;&lt;span style="color:black;"&gt;&lt;span style="color:black;"&gt;&lt;span style="background:#ffff00;"&gt;&amp;lt;#&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    }    
&lt;span style="background:#ffff00;"&gt;#&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;As you can see it is very much self-explanatory and you can customize it to your needs. For example, in combination with the CodeIt.Right &lt;strong&gt;&lt;em&gt;Global Properties&lt;/em&gt;&lt;/strong&gt; feature, we can have &amp;lt;reviewed/&amp;gt; and &amp;lt;copyright/&amp;gt; data automatically when we add the following at the very end of the template:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre style="overflow-x:auto;word-wrap:break-word;" class="code"&gt;&lt;span style="color:black;"&gt;&lt;span style="color:green;"&gt;/// &amp;lt;reviewed&amp;gt;&lt;/span&gt;&lt;span style="color:black;"&gt;&lt;span style="background:#ffff00;"&gt;&amp;lt;#=&lt;/span&gt; Context.GetGlobalProperty(&lt;span style="color:brown;"&gt;&amp;quot;UserName&amp;quot;&lt;/span&gt;) &lt;span style="background:#ffff00;"&gt;#&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:green;"&gt;&amp;lt;/reviewed&amp;gt;
&lt;span style="color:black;"&gt;&lt;span style="color:green;"&gt;/// &amp;lt;copyright&amp;gt;&lt;/span&gt;&lt;span style="color:black;"&gt;&lt;span style="background:#ffff00;"&gt;&amp;lt;#=&lt;/span&gt; Context.GetGlobalProperty(&lt;span style="color:brown;"&gt;&amp;quot;CompanyName&amp;quot;&lt;/span&gt;) &lt;span style="background:#ffff00;"&gt;#&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:green;"&gt; Copyright &lt;span style="color:black;"&gt;&lt;span style="background:#ffff00;"&gt;&amp;lt;#=&lt;/span&gt; System.DateTime.Now.Year.ToString() &lt;span style="background:#ffff00;"&gt;#&amp;gt;&lt;/span&gt;&lt;/span&gt;&amp;lt;/copyright&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;Pretty powerful stuff, huh?&lt;/p&gt;&lt;img src="http://community.submain.com/aggbug.aspx?PostID=1088" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/SubMainCommunity/~4/cVPF2dvoL0I" height="1" width="1"/&gt;</description><category domain="http://community.submain.com/blogs/tutorials/archive/tags/Tutorial/default.aspx">Tutorial</category><category domain="http://community.submain.com/blogs/tutorials/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category><category domain="http://community.submain.com/blogs/tutorials/archive/tags/Rules/default.aspx">Rules</category><category domain="http://community.submain.com/blogs/tutorials/archive/tags/GhostDoc/default.aspx">GhostDoc</category><feedburner:origLink>http://community.submain.com/blogs/tutorials/archive/2010/01/28/xml-comment-template-intellicomment-or-xml-comment-stub.aspx</feedburner:origLink></item><item><title>Released: CodeIt.Right Enterprise v1.9.09355</title><link>http://feedproxy.google.com/~r/SubMainCommunity/~3/IWyW27IEzYA/released-codeit-right-enterprise-v1-9-09355.aspx</link><pubDate>Tue, 22 Dec 2009 22:55:00 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:1048</guid><dc:creator>SubMain.Blog()</dc:creator><slash:comments>0</slash:comments><description>New version of CodeIt.Right Enterprise Edition - build 1.9.09355 - is available for download now. This version introduces new feature Merge Profiles that allows to compare and merge user configured profiles, enhances VSTS integration with the new "Add WorkItem" feature, adds command line version parameters and ability to load/unload CodeIt.Right in the menu and Add-In Manager. This update is free for all users who are current on their Software Assurance and Gold Support Subscription New in CodeIt.Right...(&lt;a href="http://community.submain.com/blogs/submain/archive/2009/12/22/released-codeit-right-enterprise-v1-9-09355.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.submain.com/aggbug.aspx?PostID=1048" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/SubMainCommunity/~4/IWyW27IEzYA" height="1" width="1"/&gt;</description><category domain="http://community.submain.com/blogs/submain/archive/tags/News/default.aspx">News</category><category domain="http://community.submain.com/blogs/submain/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Rules/default.aspx">Rules</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Releases/default.aspx">Releases</category><feedburner:origLink>http://community.submain.com/blogs/submain/archive/2009/12/22/released-codeit-right-enterprise-v1-9-09355.aspx</feedburner:origLink></item><item><title>5+1=3 or 10+1=6 Promotion - Save up to 50%!</title><link>http://feedproxy.google.com/~r/SubMainCommunity/~3/6BVt5RVNvNs/5-1-3-or-10-1-6-promotion-save-up-to-50.aspx</link><pubDate>Mon, 14 Dec 2009 16:01:03 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:1034</guid><dc:creator>SubMain.Blog()</dc:creator><slash:comments>1</slash:comments><description>For two weeks - December 15 to December 29th - we are running the best volume license promotion we have had to date! This promotion is aimed at small and medium businesses. 5+1=3 6 Standard Edition licenses for the price of 3: 5 user licenses + 1 server license + 1 Year maintenance subscription = $1050 Learn More » 10+1=6 11 Enterprise Edition licenses for the price of 6: 10 user licenses + 1 server license + 1 Year maintenance subscription = $4500 Learn More » Hurry and save money - this offer will...(&lt;a href="http://community.submain.com/blogs/submain/archive/2009/12/14/5-1-3-or-10-1-6-promotion-save-up-to-50.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.submain.com/aggbug.aspx?PostID=1034" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/SubMainCommunity/~4/6BVt5RVNvNs" height="1" width="1"/&gt;</description><category domain="http://community.submain.com/blogs/submain/archive/tags/News/default.aspx">News</category><category domain="http://community.submain.com/blogs/submain/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category><feedburner:origLink>http://community.submain.com/blogs/submain/archive/2009/12/14/5-1-3-or-10-1-6-promotion-save-up-to-50.aspx</feedburner:origLink></item><item><title>Tutorial: Extending Existing Rules</title><link>http://feedproxy.google.com/~r/SubMainCommunity/~3/xx2YklCtJ5M/tutorial-extending-existing-rules.aspx</link><pubDate>Thu, 29 Oct 2009 08:05:00 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:964</guid><dc:creator>Serge B.</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;You already know how you can &lt;a href="http://community.submain.com/blogs/tutorials/archive/2008/03/16/tutorial-creating-custom-rules.aspx"&gt;create new custom rules using CodeIt.Right SDK&lt;/a&gt;, of not, you may want to read &lt;a href="http://community.submain.com/blogs/tutorials/archive/2008/03/16/tutorial-creating-custom-rules.aspx"&gt;this article&lt;/a&gt; first.&lt;/p&gt;  &lt;p&gt;In this tutorial we will show how to extend existing rules using the new SDK features &lt;a href="http://submain.com/blog/ReleasedCodeItRightVersion1809300NowCompatibleWithVS2010Beta2.aspx"&gt;introduced in CodeIt.Right v1.8.09300&lt;/a&gt;. The new technique is to derive the custom rule from a base rule and override only the methods that need to be modified.&lt;/p&gt;  &lt;p&gt;Let&amp;#39;s extend the rule &amp;quot;Avoid single line If statement&amp;quot; (RuleID: CD0002; base class &lt;em&gt;AvoidSingleLineIfStatement&lt;/em&gt;) in the Coding Style category:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://community.submain.com/blogs/tutorials/ExtendingRules1_4F50690D.png"&gt;&lt;img alt="ExtendingRules1" border="0" height="393" src="http://community.submain.com/blogs/tutorials/ExtendingRules1_thumb_6D4E7701.png" style="border:0px none;display:block;float:none;margin-left:auto;margin-right:auto;" title="ExtendingRules1" width="504" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;The base rule above will trigger a violation when find a code pattern like this:&lt;/p&gt;  &lt;blockquote&gt;   &lt;div style="font-family:courier new;"&gt;&lt;span style="color:blue;"&gt;if&lt;/span&gt; (x &amp;gt; &lt;span style="color:maroon;"&gt;0&lt;/span&gt;) y = &lt;span style="color:maroon;"&gt;0&lt;/span&gt;;&lt;/div&gt; &lt;/blockquote&gt;  &lt;p&gt;When the rule default correction action &amp;quot;Split &lt;strong&gt;&lt;em&gt;If&lt;/em&gt;&lt;/strong&gt; block into a multiline statement&amp;quot; is used it will modify the code into:&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;blockquote&gt;   &lt;div style="font-family:courier new;"&gt;&lt;span style="color:blue;"&gt;if&lt;/span&gt; (x &amp;gt; &lt;span style="color:maroon;"&gt;0&lt;/span&gt;)       &lt;br /&gt;{       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; y = &lt;span style="color:maroon;"&gt;0&lt;/span&gt;;       &lt;br /&gt;}&lt;/div&gt; &lt;/blockquote&gt;  &lt;p&gt;That is what comes in the box. &lt;/p&gt;  &lt;p&gt;Our team may have an internal guideline that requires a single line conditional to be split into two lines without the squiggly brackets:&lt;/p&gt;  &lt;blockquote&gt;   &lt;div style="font-family:courier new;"&gt;&lt;span style="color:blue;"&gt;if&lt;/span&gt; (x &amp;gt; &lt;span style="color:maroon;"&gt;0&lt;/span&gt;)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; y = &lt;span style="color:maroon;"&gt;0&lt;/span&gt;;&lt;/div&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;Hey, not all teams are created equal :)&lt;/p&gt;  &lt;p&gt;In this case correction option that comes with the base rule AvoidSingleLineIfStatement is not very useful and we need to extend the rule with our custom correction.&lt;/p&gt;  &lt;p&gt;So, let&amp;#39;s start.&lt;/p&gt;  &lt;p&gt;We will skip the list of required referenced&amp;nbsp; assemblies - you will find them in the complete code sample at the end of the post.&lt;/p&gt;  &lt;p&gt;Declare new class that inherits from the base rule class:&lt;/p&gt;  &lt;div style="font-family:courier new;"&gt;&lt;span style="color:blue;"&gt;namespace&lt;/span&gt; CustomRuleLibrary.CodingStyle&amp;nbsp; &lt;br /&gt;{&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Serializable]&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [ModificationDate(&lt;span style="color:maroon;"&gt;&amp;quot;10/14/2009&amp;quot;&lt;/span&gt;)]&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Category(&lt;span style="color:maroon;"&gt;&amp;quot;CustomRuleLibrary.CodingStyle&amp;quot;&lt;/span&gt;)]&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;class&lt;/span&gt; AvoidSingleLineIfStatement2 : AvoidSingleLineIfStatement&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;/div&gt;  &lt;p&gt;In the code above we also set the Category attribute to &amp;quot;CustomRuleLibrary.CodingStyle&amp;quot; so we could easier find the custom in the Profile.&lt;/p&gt;  &lt;p&gt;We override ID property and use GUID for the new RuleID value. Some of the CodeIt.Right functions, for example, help pages are handled differently for custom rules. Using GUID for RuleID hits CodeIt.Right that the rule is custom.&lt;/p&gt;  &lt;div style="font-family:courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;override&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;string&lt;/span&gt; ID&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;get&lt;/span&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;// Override the RuleID value with own GUID (recommended) &lt;/span&gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color:maroon;"&gt;&amp;quot;6C832235-0B02-4227-911A-156F0B1FAC71&amp;quot;&lt;/span&gt;;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; &lt;/div&gt;  &lt;p&gt;Property AutoCorrectionOptions needs to be overridden to add new correction action &amp;quot;Split &lt;strong&gt;&lt;em&gt;If&lt;/em&gt;&lt;/strong&gt; block into a multiline statement without block&amp;quot;:&lt;/p&gt;  &lt;div style="font-family:courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:gray;"&gt;/// &amp;lt;summary&amp;gt; &lt;/span&gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:gray;"&gt;/// &lt;font color="#008000"&gt;Returns list of auto correction options&lt;/font&gt;&amp;nbsp;&lt;/span&gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:gray;"&gt;/// &amp;lt;/summary&amp;gt; &lt;/span&gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;override&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;string&lt;/span&gt;[] AutoCorrectionOptions&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;get&lt;/span&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IMethodInfo methodInfo = Element &lt;span style="color:blue;"&gt;as&lt;/span&gt; IMethodInfo;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;if&lt;/span&gt; (methodInfo != &lt;span style="color:blue;"&gt;null&lt;/span&gt;)&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;// Get the base class list of available corrections &lt;/span&gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;string&lt;/span&gt;[] baseOptions = &lt;span style="color:blue;"&gt;base&lt;/span&gt;.AutoCorrectionOptions;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;string&lt;/span&gt;[] options = (&lt;span style="color:blue;"&gt;string&lt;/span&gt;[])Array.CreateInstance(&lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color:blue;"&gt;string&lt;/span&gt;), baseOptions.Length + &lt;span style="color:maroon;"&gt;1&lt;/span&gt;);&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;// Add new correction action to the list &lt;/span&gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Array.Copy(baseOptions, &lt;span style="color:maroon;"&gt;0&lt;/span&gt;, options, &lt;span style="color:maroon;"&gt;0&lt;/span&gt;, baseOptions.Length);&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; options[options.Length - &lt;span style="color:maroon;"&gt;1&lt;/span&gt;] = &lt;span style="color:maroon;"&gt;&amp;quot;Split \&amp;quot;If\&amp;quot; block into a multiline statement without block&amp;quot;&lt;/span&gt;;&amp;nbsp; &lt;br /&gt;    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;return&lt;/span&gt; options;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; &lt;br /&gt;    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;string&lt;/span&gt;[] { };&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/div&gt;  &lt;p&gt;The base rule correction option:&lt;/p&gt;  &lt;p&gt;&lt;img alt="ExtendingRules2" border="0" height="44" src="http://community.submain.com/blogs/tutorials/ExtendingRules2_453BC7E2.png" style="border:0px none;display:block;float:none;margin-left:auto;margin-right:auto;" title="ExtendingRules2" width="480" /&gt;&lt;/p&gt;  &lt;p&gt;Our custom rule correction options with the new action added in the AutoCorrectionOptions above:&lt;/p&gt;  &lt;p&gt;&lt;img alt="ExtendingRules3" border="0" height="71" src="http://community.submain.com/blogs/tutorials/ExtendingRules3_2FDE127A.png" style="border:0px none;display:block;float:none;margin-left:auto;margin-right:auto;" title="ExtendingRules3" width="480" /&gt; &lt;/p&gt;  &lt;p&gt;Now we implement our new custom correction action just the way we like it to work:&lt;/p&gt;  &lt;div style="font-family:courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:gray;"&gt;/// &amp;lt;summary&amp;gt; &lt;/span&gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:gray;"&gt;/// &lt;font color="#008000"&gt;Implementation of our custom correction action&lt;/font&gt;&amp;nbsp; &lt;/span&gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:gray;"&gt;/// &amp;lt;/summary&amp;gt; &lt;/span&gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;bool&lt;/span&gt; Correct_1(IElementInfo elementInfo)&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IMethodInfo methodInfo = Element &lt;span style="color:blue;"&gt;as&lt;/span&gt; IMethodInfo;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;if&lt;/span&gt; (methodInfo != &lt;span style="color:blue;"&gt;null&lt;/span&gt;)&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StatementCollection statements = RuleUtilities.GetMethodStatements(methodInfo);&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IStatement statement = SearchForSingleLineIfStatement(statements);&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;if&lt;/span&gt; (statement != &lt;span style="color:blue;"&gt;null&lt;/span&gt;)&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;string&lt;/span&gt; codeToInsertAfter = Environment.NewLine;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;string&lt;/span&gt; codeToInsertBefore = Environment.NewLine;&amp;nbsp; &lt;br /&gt;    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IRegion ifBlockRegion = GetIfBlockRegion(statement);&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;if&lt;/span&gt; (ifBlockRegion != &lt;span style="color:blue;"&gt;null&lt;/span&gt;)&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;string&lt;/span&gt; ifBlockText = GetIfBlockText(statement, ifBlockRegion);&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;if&lt;/span&gt; (ifBlockText != &lt;span style="color:blue;"&gt;null&lt;/span&gt;)&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; methodInfo.ReplaceCodeBlock(ifBlockRegion,&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; codeToInsertBefore + ifBlockText + codeToInsertAfter);&amp;nbsp; &lt;br /&gt;    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color:maroon;"&gt;true&lt;/span&gt;;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; &lt;br /&gt;    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color:maroon;"&gt;false&lt;/span&gt;;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/div&gt;  &lt;p&gt;And we tie it all together in the method Correct - for correction action with index 0 we execute the base rule correction and for the index 1 (that we added) execute method Correct_1 that implements our custom correction:&lt;/p&gt;  &lt;div style="font-family:courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:gray;"&gt;/// &amp;lt;summary&amp;gt; &lt;/span&gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:gray;"&gt;/// &lt;font color="#008000"&gt;Execute the specified correction action&lt;/font&gt;&amp;nbsp;&lt;/span&gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:gray;"&gt;/// &amp;lt;/summary&amp;gt; &lt;/span&gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:gray;"&gt;/// &amp;lt;param name=&amp;quot;correctionOptionIndex&amp;quot;&amp;gt;Index of the correction action&amp;lt;/param&amp;gt; &lt;/span&gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;override&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;bool&lt;/span&gt; Correct(&lt;span style="color:blue;"&gt;int&lt;/span&gt; correctionOptionIndex)&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;bool&lt;/span&gt; result = &lt;span style="color:blue;"&gt;base&lt;/span&gt;.Correct(correctionOptionIndex);&amp;nbsp; &lt;br /&gt;    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;switch&lt;/span&gt; (correctionOptionIndex)&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;case&lt;/span&gt;&amp;nbsp;&lt;span style="color:maroon;"&gt;0&lt;/span&gt;:&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;// For correction action 0 execute the base class correction &lt;/span&gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;return&lt;/span&gt; result;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;case&lt;/span&gt;&amp;nbsp;&lt;span style="color:maroon;"&gt;1&lt;/span&gt;:&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;// For correction action 1 execute our custom correction &lt;/span&gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;return&lt;/span&gt; Correct_1(Element);&amp;nbsp; &lt;br /&gt;    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;default&lt;/span&gt;:&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;break&lt;/span&gt;;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; &lt;br /&gt;    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color:maroon;"&gt;false&lt;/span&gt;;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/div&gt;  &lt;p&gt;And we are done! &lt;/p&gt;  &lt;p&gt;The final steps are to compile the new rule, drop the assembly to Program Files\SubMain\CodeIt.Right\Rules\ and we can now add the rule to a profile:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://community.submain.com/blogs/tutorials/ExtendingRules4_765B0282.png"&gt;&lt;img alt="ExtendingRules4" border="0" height="225" src="http://community.submain.com/blogs/tutorials/ExtendingRules4_thumb_5C1A995E.png" style="border:0px none;display:block;float:none;margin-left:auto;margin-right:auto;" title="ExtendingRules4" width="504" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Here is the complete code for our custom rule:&lt;/p&gt;  &lt;div style="font-family:courier new;"&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System;     &lt;br /&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.IO;     &lt;br /&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Collections;     &lt;br /&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Collections.Specialized;     &lt;br /&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Runtime.Serialization;     &lt;br /&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Globalization;     &lt;br /&gt;    &lt;br /&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; SubMain.CodeObjectModel.Reflection;     &lt;br /&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; SubMain.Core.Services;     &lt;br /&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; SubMain.CodeItRight.Sdk;     &lt;br /&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; SubMain.CodeItRight.Sdk.Core.Collections;     &lt;br /&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; SubMain.CodeItRight.Sdk.Core.Reflection;     &lt;br /&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; SubMain.CodeItRight.Sdk.Core.Rules;     &lt;br /&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; SubMain.CodeItRight.Sdk.Core.Utils;     &lt;br /&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; SubMain.CodeItRight.Sdk.Rules;     &lt;br /&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; SubMain.CodeItRight.Sdk.Utils;     &lt;br /&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; SubMain.CodeItRight.Rules.CodingStyle;     &lt;br /&gt;    &lt;br /&gt;&lt;span style="color:blue;"&gt;namespace&lt;/span&gt; CustomRuleLibrary.CodingStyle     &lt;br /&gt;{     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Serializable]     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [ModificationDate(&lt;span style="color:maroon;"&gt;&amp;quot;10/14/2009&amp;quot;&lt;/span&gt;)]     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Category(&lt;span style="color:maroon;"&gt;&amp;quot;CustomRuleLibrary.CodingStyle&amp;quot;&lt;/span&gt;)]     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;class&lt;/span&gt; AvoidSingleLineIfStatement2 : AvoidSingleLineIfStatement     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:gray;"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:gray;"&gt;/// &lt;font color="#008000"&gt;Returns list of auto correction options&lt;/font&gt;&lt;/span&gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:gray;"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;override&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;string&lt;/span&gt;[] AutoCorrectionOptions     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;get&lt;/span&gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IMethodInfo methodInfo = Element &lt;span style="color:blue;"&gt;as&lt;/span&gt; IMethodInfo;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;if&lt;/span&gt; (methodInfo != &lt;span style="color:blue;"&gt;null&lt;/span&gt;)     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;// Get the base class list of available corrections &lt;/span&gt;    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;string&lt;/span&gt;[] baseOptions = &lt;span style="color:blue;"&gt;base&lt;/span&gt;.AutoCorrectionOptions;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;string&lt;/span&gt;[] options = (&lt;span style="color:blue;"&gt;string&lt;/span&gt;[])Array.CreateInstance(&lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color:blue;"&gt;string&lt;/span&gt;), baseOptions.Length + &lt;span style="color:maroon;"&gt;1&lt;/span&gt;);     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;// Add new correction action to the list&lt;/span&gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Array.Copy(baseOptions, &lt;span style="color:maroon;"&gt;0&lt;/span&gt;, options, &lt;span style="color:maroon;"&gt;0&lt;/span&gt;, baseOptions.Length);     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; options[options.Length - &lt;span style="color:maroon;"&gt;1&lt;/span&gt;] = &lt;span style="color:maroon;"&gt;&amp;quot;Split \&amp;quot;If\&amp;quot; block into a multiline statement without block&amp;quot;&lt;/span&gt;;     &lt;br /&gt;    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;return&lt;/span&gt; options;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }     &lt;br /&gt;    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;string&lt;/span&gt;[] { };     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }     &lt;br /&gt;    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:gray;"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:gray;"&gt;/// &lt;font color="#008000"&gt;Implementation of our custom correction action&lt;/font&gt;&amp;nbsp;&lt;/span&gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:gray;"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;bool&lt;/span&gt; Correct_1(IElementInfo elementInfo)     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IMethodInfo methodInfo = Element &lt;span style="color:blue;"&gt;as&lt;/span&gt; IMethodInfo;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;if&lt;/span&gt; (methodInfo != &lt;span style="color:blue;"&gt;null&lt;/span&gt;)     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StatementCollection statements = RuleUtilities.GetMethodStatements(methodInfo);     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IStatement statement = SearchForSingleLineIfStatement(statements);     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;if&lt;/span&gt; (statement != &lt;span style="color:blue;"&gt;null&lt;/span&gt;)     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;string&lt;/span&gt; codeToInsertAfter = Environment.NewLine;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;string&lt;/span&gt; codeToInsertBefore = Environment.NewLine;     &lt;br /&gt;    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IRegion ifBlockRegion = GetIfBlockRegion(statement);     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;if&lt;/span&gt; (ifBlockRegion != &lt;span style="color:blue;"&gt;null&lt;/span&gt;)     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;string&lt;/span&gt; ifBlockText = GetIfBlockText(statement, ifBlockRegion);     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;if&lt;/span&gt; (ifBlockText != &lt;span style="color:blue;"&gt;null&lt;/span&gt;)     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; methodInfo.ReplaceCodeBlock(ifBlockRegion,     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; codeToInsertBefore + ifBlockText + codeToInsertAfter);     &lt;br /&gt;    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color:maroon;"&gt;true&lt;/span&gt;;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }     &lt;br /&gt;    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color:maroon;"&gt;false&lt;/span&gt;;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }     &lt;br /&gt;    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;override&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;string&lt;/span&gt; ID     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;get&lt;/span&gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;// Override the RuleID value with own GUID (recommended)&lt;/span&gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color:maroon;"&gt;&amp;quot;6C832235-0B02-4227-911A-156F0B1FAC71&amp;quot;&lt;/span&gt;;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; &lt;br /&gt;    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:gray;"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:gray;"&gt;/// &lt;font color="#008000"&gt;Execute the specified correction action&lt;/font&gt;&lt;/span&gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:gray;"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:gray;"&gt;/// &amp;lt;param name=&amp;quot;correctionOptionIndex&amp;quot;&amp;gt;Index of the correction action&amp;lt;/param&amp;gt;&lt;/span&gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;override&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;bool&lt;/span&gt; Correct(&lt;span style="color:blue;"&gt;int&lt;/span&gt; correctionOptionIndex)     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;bool&lt;/span&gt; result = &lt;span style="color:blue;"&gt;base&lt;/span&gt;.Correct(correctionOptionIndex);     &lt;br /&gt;    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;switch&lt;/span&gt; (correctionOptionIndex)     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;case&lt;/span&gt;&amp;nbsp;&lt;span style="color:maroon;"&gt;0&lt;/span&gt;:     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;// For correction action 0 execute the base class correction&lt;/span&gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;return&lt;/span&gt; result;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;case&lt;/span&gt;&amp;nbsp;&lt;span style="color:maroon;"&gt;1&lt;/span&gt;:     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;// For correction action 1 execute our custom correction&lt;/span&gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;return&lt;/span&gt; Correct_1(Element);     &lt;br /&gt;    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;default&lt;/span&gt;:     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;break&lt;/span&gt;;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }     &lt;br /&gt;    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color:maroon;"&gt;false&lt;/span&gt;;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }     &lt;br /&gt;    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }     &lt;br /&gt;}     &lt;br /&gt;&lt;/div&gt;&lt;img src="http://community.submain.com/aggbug.aspx?PostID=964" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/SubMainCommunity/~4/xx2YklCtJ5M" height="1" width="1"/&gt;</description><category domain="http://community.submain.com/blogs/tutorials/archive/tags/SDK/default.aspx">SDK</category><category domain="http://community.submain.com/blogs/tutorials/archive/tags/Custom+Rules/default.aspx">Custom Rules</category><category domain="http://community.submain.com/blogs/tutorials/archive/tags/Tutorial/default.aspx">Tutorial</category><category domain="http://community.submain.com/blogs/tutorials/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category><feedburner:origLink>http://community.submain.com/blogs/tutorials/archive/2009/10/29/tutorial-extending-existing-rules.aspx</feedburner:origLink></item><item><title>Released: CodeIt.Right version 1.8.09300 - now compatible with VS2010 Beta 2!</title><link>http://feedproxy.google.com/~r/SubMainCommunity/~3/7tE6BhPLm9M/released-codeit-right-version-1-8-09300-now-compatible-with-vs2010-beta-2.aspx</link><pubDate>Wed, 28 Oct 2009 01:57:01 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:963</guid><dc:creator>SubMain.Blog()</dc:creator><slash:comments>0</slash:comments><description>Today we are releasing new version of CodeIt.Right - build 1.8.09300. This version features complete ASP.NET support, it is compatible with VS2010 Beta 2 (in addition to VS2008, VS2005, VS2003), Add Rule dialog improvements - "Hide Rules in the Profile" and "Quick Search", 10+ new rules including new category "CodingStyle". Those of you who are using CodeIt.Right with very large solutions may know of the memory limitation issue for the tools that live in the Visual Studio address space, aka "Out...(&lt;a href="http://community.submain.com/blogs/submain/archive/2009/10/27/released-codeit-right-version-1-8-09300-now-compatible-with-vs2010-beta-2.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.submain.com/aggbug.aspx?PostID=963" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/SubMainCommunity/~4/7tE6BhPLm9M" height="1" width="1"/&gt;</description><category domain="http://community.submain.com/blogs/submain/archive/tags/News/default.aspx">News</category><category domain="http://community.submain.com/blogs/submain/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Updates/default.aspx">Updates</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Rules/default.aspx">Rules</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Releases/default.aspx">Releases</category><feedburner:origLink>http://community.submain.com/blogs/submain/archive/2009/10/27/released-codeit-right-version-1-8-09300-now-compatible-with-vs2010-beta-2.aspx</feedburner:origLink></item><item><title>How to Assign Visual Studio Shortcut for GhostDoc</title><link>http://feedproxy.google.com/~r/SubMainCommunity/~3/UJoIKnD8QLo/how-to-assign-visual-studio-shortcut-for-ghostdoc.aspx</link><pubDate>Thu, 02 Jul 2009 00:03:00 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:829</guid><dc:creator>Serge B.</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;Sometimes you may reset default GhostDoc shortcut in Visual Studio or want to assign your own custom shortcut.&lt;/p&gt;  &lt;p&gt;Here is how you do that:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="GhostDoc_Assign_Shortcut1_pub" border="0" alt="GhostDoc_Assign_Shortcut1_pub" src="http://community.submain.com/blogs/howto/GhostDoc_Assign_Shortcut1_pub_32A57EF2.png" width="652" height="390" /&gt; &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;In Visual Studio go to &lt;em&gt;Tools -&amp;gt; Options&lt;/em&gt;, then select &lt;em&gt;Environment -&amp;gt; Keyboard        &lt;br /&gt;&lt;/em&gt;&lt;/li&gt;    &lt;li&gt;Filter commands by &amp;quot;GhostDoc&amp;quot; in the &lt;em&gt;Show commands containing&lt;/em&gt; text box       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Select &lt;strong&gt;Tools.SubMain.GhostDoc.DocumentThis&lt;/strong&gt; in the list       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Select &amp;quot;Text Editor&amp;quot; in the &lt;em&gt;Use new shortcut in&lt;/em&gt; drop down       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Choose the hotkey you want to invoke the &lt;strong&gt;DocumentThis&lt;/strong&gt; command (Ctrl+Shift+D in this example)       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Press &lt;em&gt;Assign&lt;/em&gt; and &lt;em&gt;OK&lt;/em&gt; to close the dialog and save. You are all set. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;While you are in the Options dialog you may want also assign shortcut to another less known but very useful GhostDoc command &lt;strong&gt;Rebuild Documentation&lt;/strong&gt;. This command will rebuild your existing XML comment using the changed signature information. &lt;em&gt;Be careful with this command though - it will reset your custom edited XML comment&lt;/em&gt;. In the example below we assigned command &lt;strong&gt;RebuildDocumentation&lt;/strong&gt; to sequence Ctrl+Shift+D, Ctrl+Shift+R&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="GhostDoc_Assign_Shortcut2_pub" border="0" alt="GhostDoc_Assign_Shortcut2_pub" src="http://community.submain.com/blogs/howto/GhostDoc_Assign_Shortcut2_pub_2DC2CB36.png" width="652" height="390" /&gt;&lt;/p&gt;&lt;img src="http://community.submain.com/aggbug.aspx?PostID=829" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/SubMainCommunity/~4/UJoIKnD8QLo" height="1" width="1"/&gt;</description><category domain="http://community.submain.com/blogs/howto/archive/tags/Howto/default.aspx">Howto</category><category domain="http://community.submain.com/blogs/howto/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://community.submain.com/blogs/howto/archive/tags/GhostDoc/default.aspx">GhostDoc</category><feedburner:origLink>http://community.submain.com/blogs/howto/archive/2009/07/01/how-to-assign-visual-studio-shortcut-for-ghostdoc.aspx</feedburner:origLink></item><item><title>SubMain acquires GhostDoc, releases new version, integrates it with CodeIt.Right</title><link>http://feedproxy.google.com/~r/SubMainCommunity/~3/drl_OQ1jAEM/submain-acquires-ghostdoc-releases-new-version-integrates-it-with-codeit-right.aspx</link><pubDate>Mon, 01 Jun 2009 15:25:00 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:723</guid><dc:creator>SubMain.Blog()</dc:creator><slash:comments>0</slash:comments><description>As announced earlier today we just closed the acquisition of the popular XML Comment helper tool GhostDoc. We, SubMain, will continue to evolve the tool and distribute it as a free product . We are also announcing today the availability of the new version of GhostDoc v2.5.09150 which improves the user setup experience, adds support for Visual Studio 2010 Beta 1 and full support for Visual Basic. Additionally, today we are making available a new version of CodeIt.Right (v1.6.09151) that adds the IntelliComment...(&lt;a href="http://community.submain.com/blogs/submain/archive/2009/06/01/submain-acquires-ghostdoc-releases-new-version-integrates-it-with-codeit-right.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.submain.com/aggbug.aspx?PostID=723" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/SubMainCommunity/~4/drl_OQ1jAEM" height="1" width="1"/&gt;</description><category domain="http://community.submain.com/blogs/submain/archive/tags/News/default.aspx">News</category><category domain="http://community.submain.com/blogs/submain/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Rules/default.aspx">Rules</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Releases/default.aspx">Releases</category><category domain="http://community.submain.com/blogs/submain/archive/tags/GhostDoc/default.aspx">GhostDoc</category><feedburner:origLink>http://community.submain.com/blogs/submain/archive/2009/06/01/submain-acquires-ghostdoc-releases-new-version-integrates-it-with-codeit-right.aspx</feedburner:origLink></item><item><title>What's in the shop for GhostDoc?</title><link>http://feedproxy.google.com/~r/SubMainCommunity/~3/zXv7o4-fj8g/Whats-in-the-shop-for-GhostDoc.aspx</link><pubDate>Mon, 01 Jun 2009 07:25:00 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:720</guid><dc:creator>Serge B.</dc:creator><slash:comments>7</slash:comments><description>&lt;p&gt;SubMain Director of Marketing Wendy Cavens interviewed Serge Baranovsky and Roland Weigelt about the &lt;a href="http://community.submain.com/blogs/news/archive/2009/06/01/SubMain-acquires-GhostDoc.aspx"&gt;recent announcement of SubMain&amp;#39;s acquisition of GhostDoc&lt;/a&gt;, which the company will continue to offer as a free product.&lt;/p&gt;

&lt;p&gt;Roland Weigelt is working as a Software Developer at Comma Soft AG in Bonn, Germany. In his spare time he is the leader of the local .NET user group &amp;quot;Bonn-to-Code.Net&amp;quot; (pun intended) and also enjoys writing software as a hobby. Among his hobby projects is GhostDoc, one of the most popular tools for .NET developers.&lt;/p&gt;

&lt;p&gt;Serge Baranovsky is President of SubMain. He has extensive programming experience and is a recognized community leader and founder of vbCity Developer Community. Serge is a Microsoft MVP and ASP Insider.&lt;/p&gt;

&lt;dl&gt;

&lt;dt&gt;WendyC:&lt;/dt&gt;
&lt;dd&gt;&lt;em&gt;&amp;quot;To start with, please explain what is GhostDoc?&amp;quot;&lt;/em&gt;&lt;/dd&gt;
&lt;dt&gt;RolandW:&lt;/dt&gt;
&lt;dd&gt;&amp;quot;GhostDoc is a Visual Studio extension that generates XML documentation comments for methods and properties based on their type, parameters, name, and other contextual information. &amp;quot;&lt;/dd&gt;
&lt;dt&gt;SergeB:&lt;/dt&gt;
&lt;dd&gt;&amp;quot;What is also great about GhostDoc that when generating documentation for class derived from a base class or for interface implementation (e.g. .NET Framework or your custom framework), GhostDoc will use the documentation that Microsoft or the framework vendor has already written for the base class or interface.&amp;quot;&lt;/dd&gt;

&lt;dt&gt;WendyC:&lt;/dt&gt;
&lt;dd&gt;&lt;em&gt;&amp;quot;Roland, GhostDoc regularly made it on the lists of essential .NET developer tools, and was listed as #2 on &amp;quot;10 Must-Have Add-Ins&amp;quot; in MSDN Magazine. Please describe how you came up with the idea.&amp;quot;&lt;/em&gt;&lt;/dd&gt;
&lt;dt&gt;RolandW:&lt;/dt&gt;
&lt;dd&gt;&amp;quot;I&amp;#39;ve always stressed high importance of writing good API documentation for my code starting in my C programming years as a student in the early 90&amp;#39;s. For me this is also a check for the quality of a method - if I&amp;#39;m not able to explain in a few sentences what it does, there may be something wrong with the method to begin with.&lt;br /&gt;
&lt;br /&gt;
	With .NET and its long identifier naming style I often felt that writing this kind of documentation was a bit dull. Many times, in order to write an actually helpful piece of additional information, I first had to repeat in the summary almost exactly what the name of the method or property was already saying. One day in November 2003 I was so tired with documenting Boolean properties (&amp;quot;Gets or sets a value indicating whether ...&amp;quot;) that I wrote a macro to help me with some of the repetitive tasks.&lt;br /&gt;
&lt;br /&gt;
	What followed were a few half-hearted false starts to turn this into a more general tool, until the announcement of Roy Osherove&amp;#39;s Visual Studio Add-in competition in spring 2004 motivated me to turn my experiments into a fully-featured add-in that would be useful to others. In the end the hard work paid off; GhostDoc won the competition. Even though the feature set of GhostDoc 1.0 was limited (for instance, re-using existing documentation didn&amp;#39;t make it until version 1.3), it turned out to be a success almost immediately.&amp;quot;&lt;/dd&gt;

&lt;dt&gt;WendyC:&lt;/dt&gt;
&lt;dd&gt;&lt;em&gt;&amp;quot;What has your experience been since?&amp;quot;&lt;/em&gt;&lt;/dd&gt;
&lt;dt&gt;RolandW:&lt;/dt&gt;
&lt;dd&gt;&amp;quot;Working on GhostDoc has always been both rewarding and frustrating. Visual Studio Extensibility in general is not without problems and even though things got a bit better with each version of Visual Studio, there were many roadblocks that took a lot of time to circumvent.&lt;br /&gt;
&lt;br /&gt;
	On the other hand, it&amp;#39;s always amazing at conferences or user group meetings when people recognize my name, come up to me and tell me that GhostDoc is one of the first tools they install on a new developer machine. And last but not least I&amp;#39;m a GhostDoc user myself so I benefit from this tool everyday! &amp;quot;&lt;/dd&gt;

&lt;dt&gt;WendyC:&lt;/dt&gt;
&lt;dd&gt;&lt;em&gt;&amp;quot;How did this deal come about?&amp;quot;&lt;/em&gt;&lt;/dd&gt;
&lt;dt&gt;SergeB:&lt;/dt&gt;
&lt;dd&gt;&amp;quot;Our CodeIt.Right product has a feature that enforces XML Comments where required and automatically adds a comment stub. Some time ago I demoed this feature to Scott Hanselman and he suggested it would be great to integrate this with GhostDoc and have the comment content generated based on the name. So I contacted Roland, we met at the last PDC to discuss the integration options; one thing led to another and I offered to buy GhostDoc. That seemed to me like an easy way to integrate! &amp;quot;&lt;/dd&gt;
&lt;dt&gt;RolandW:&lt;/dt&gt;
&lt;dd&gt;&amp;quot;The offer from SubMain came at a crucial point of time when I had to make a decision on the future development of GhostDoc. Other activities besides GhostDoc were already eating up my spare time, and it was clear that going open source wouldn&amp;#39;t magically reduce my workload immediately.&lt;br /&gt;
&lt;br /&gt;
	Having full-time developers take GhostDoc to the next level seemed like the best solution. Serge and I were on the same page that a free-of-charge version of GhostDoc should be available in the future. From my experience of working with the people at SubMain in the recent weeks I can say that this was the right decision.&amp;quot;&lt;/dd&gt;

&lt;dt&gt;WendyC:&lt;/dt&gt;
&lt;dd&gt;&lt;em&gt;&amp;quot;Serge, what are the plans of how GhostDoc will evolve?&amp;quot;&lt;/em&gt;&lt;/dd&gt;
&lt;dt&gt;SergeB:&lt;/dt&gt;
&lt;dd&gt;&amp;quot;The future of GhostDoc starts today - we just released a new version of the tool with improved user setup experience, added support for Visual Studio 2010 Beta 1 and full support for Visual Basic. We also added IntelliComment feature to our CodeIt.Right product based on the GhostDoc algorithm - the version of this tool is also available today.&lt;br /&gt;
&lt;br /&gt;
	As for the future, you know, the usual product life stuff - bug fixing, feature enhancements. We have our own ideas and also are encouraging the community to give us feedback. &amp;quot;&lt;/dd&gt;

&lt;dt&gt;WendyC:&lt;/dt&gt;
&lt;dd&gt;&lt;em&gt;&amp;quot;Roland, will you continue to be involved with GhostDoc?&amp;quot;&lt;/em&gt;&lt;/dd&gt;
&lt;dt&gt;RolandW:&lt;/dt&gt;
&lt;dd&gt;&amp;quot;I will continue using GhostDoc both at work and at home every day; and I will definitely keep track of what the guys at SubMain are up to; and I will do what every GhostDoc user should do - swamp them with feature requests! &amp;quot;&lt;/dd&gt;
&lt;dt&gt;SergeB:&lt;/dt&gt;
&lt;dd&gt;&amp;quot;Over the last few weeks of the transition our team has enjoyed working with Roland and we look forward to his continued feedback. We also hope that the community at large will do so as well.&amp;quot;&lt;/dd&gt;

&lt;/dl&gt;&lt;img src="http://community.submain.com/aggbug.aspx?PostID=720" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/SubMainCommunity/~4/zXv7o4-fj8g" height="1" width="1"/&gt;</description><category domain="http://community.submain.com/blogs/news/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category><category domain="http://community.submain.com/blogs/news/archive/tags/GhostDoc/default.aspx">GhostDoc</category><feedburner:origLink>http://community.submain.com/blogs/news/archive/2009/06/01/Whats-in-the-shop-for-GhostDoc.aspx</feedburner:origLink></item><item><title>SubMain acquires GhostDoc</title><link>http://feedproxy.google.com/~r/SubMainCommunity/~3/aSF7Ck46vmY/SubMain-acquires-GhostDoc.aspx</link><pubDate>Mon, 01 Jun 2009 07:15:00 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:719</guid><dc:creator>Serge B.</dc:creator><slash:comments>4</slash:comments><description>&lt;h3&gt;SubMain maintains GhostDoc as a free tool for .NET developers; releases new version; seeks input from the community on product enhancements&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Kirkland, WA, June 1, 2009&lt;/em&gt; - An agreement between SubMain and Roland Weigelt, author of GhostDoc, will place future development of GhostDoc in the hands of SubMain.  &lt;a href="http://submain.com/ghostdoc"&gt;GhostDoc&lt;/a&gt; (&lt;a href="http://submain.com/ghostdoc"&gt;http://submain.com/ghostdoc&lt;/a&gt;) is the popular XML Comments and documentation helper tool which SubMain will continue to maintain as a free product.&lt;/p&gt;

&lt;p&gt;&amp;quot;I&amp;#39;m happy to transfer GhostDoc to SubMain,&amp;quot; says Roland. &amp;quot;SubMain has extensive experience with similar projects and can use their development team expertise to evolve the tool.&amp;quot;&lt;/p&gt;

&lt;p&gt;Serge Baranovsky, President of SubMain, understands the importance of GhostDoc to the .NET community and welcomes ideas on the product improvement.&lt;/p&gt;

&lt;p&gt;&amp;quot;We are very excited about taking over the future of an excellent tool such as GhostDoc,&amp;quot; says Serge. &amp;quot;We have great respect for what Roland has done. The tool is very easy to use and it just works! We are committed to maintaining this wonderful free tool; we welcome the community feedback and suggestions.&amp;quot;&lt;/p&gt;

&lt;p&gt;SubMain has a track record of supporting the development community:  publishing SmartOutline for .NET, the company&amp;#39;s own free development tool; a free 100+ page .NET Coding Guidelines eBook; vbCity.com, a VB and .NET developer community, which it founded 10 years ago; dev.net.ua, which it founded in the last 5 years, the premier Ukrainian .NET developer community; and VBFeeds, an aggregation service for Visual Basic related blogs and publications.&lt;/p&gt;

&lt;p&gt;SubMain would also like to announce today the &lt;a href="http://submain.com/blog/SubMainAcquiresGhostDocReleasesNewVersionIntegratesItWithCodeItRight.aspx"&gt;availability of the new version of GhostDoc (v2.5)&lt;/a&gt; which improves user setup experience, adds support for Visual Studio 2010 Beta 1 and full support for Visual Basic.&lt;/p&gt;

&lt;p&gt;Additionally, today SubMain is making available a new version of &lt;a href="http://submain.com/codeit.right"&gt;CodeIt.Right&lt;/a&gt; (&lt;a href="http://submain.com/codeit.right"&gt;http://submain.com/codeit.right&lt;/a&gt;) that adds IntelliComment feature based on the GhostDoc algorithm and offers improved and automated generation of XML Comments.&lt;/p&gt;

&lt;p&gt;For more on the agreement, please see the interview with Roland Weigelt and Serge Baranovsky - &lt;a href="http://submain.com/ghostdoc/future"&gt;What&amp;#39;s in the shop for GhostDoc?&lt;/a&gt; (&lt;a href="http://submain.com/ghostdoc/future"&gt;http://submain.com/ghostdoc/future&lt;/a&gt;)&lt;/p&gt;

&lt;h4&gt;About SubMain&lt;/h4&gt;

&lt;p&gt;SubMain, a Division of vbCity.com LLC, makes productivity tools for .NET developers. The company&amp;#39;s flagship product CodeIt.Right helps developers across the globe to follow team standards and best practices, improve code security and performance, find potential issues early in the development cycle. SubMain is a Microsoft Certified Partner.&lt;/p&gt;

&lt;h4&gt;Media Contact&lt;/h4&gt;
&lt;p&gt;
Wendy Cavens&lt;br /&gt;
Director of Marketing, SubMain&lt;br /&gt;
Tel: 1(800) 936-2134&lt;br /&gt;
Email: &lt;a href="mailto:wendyc@submain.com"&gt;wendyc@submain.com&lt;/a&gt;&lt;br /&gt;
&lt;/p&gt;&lt;img src="http://community.submain.com/aggbug.aspx?PostID=719" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/SubMainCommunity/~4/aSF7Ck46vmY" height="1" width="1"/&gt;</description><category domain="http://community.submain.com/blogs/news/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category><category domain="http://community.submain.com/blogs/news/archive/tags/Press+Release/default.aspx">Press Release</category><category domain="http://community.submain.com/blogs/news/archive/tags/News/default.aspx">News</category><category domain="http://community.submain.com/blogs/news/archive/tags/GhostDoc/default.aspx">GhostDoc</category><feedburner:origLink>http://community.submain.com/blogs/news/archive/2009/06/01/SubMain-acquires-GhostDoc.aspx</feedburner:origLink></item><item><title>How to Backup and Restore Visual Studio settings</title><link>http://feedproxy.google.com/~r/SubMainCommunity/~3/_NpF8rM7Zig/how-to-backup-and-restore-visual-studio-settings.aspx</link><pubDate>Sun, 31 May 2009 06:57:00 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:721</guid><dc:creator>Serge B.</dc:creator><slash:comments>6</slash:comments><description>&lt;p&gt;If you need to preserve your Visual Studio settings, there is a tool built into VS that allows to backup and restore the settings. In this tutorial we are assuming that you are saving a copy of ALL settings to use by you personally as a backup.&lt;br /&gt;
&lt;/p&gt;
&lt;h4&gt;Make a backup&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;In Visual Studio use &lt;em&gt;Tools / Import and Export Settings&amp;hellip;&lt;/em&gt; menu to open&amp;nbsp; &lt;em&gt;Import and Export Settings Wizard&lt;/em&gt;.&lt;br /&gt;
&lt;img height="582" src="http://community.submain.com/files/Images/Tutorials/VSSettings-Export1.png" width="617" /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;em&gt;Export selected environment settings&lt;/em&gt; and click &lt;em&gt;Next&lt;/em&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;To include ALL settings make sure the &lt;em&gt;All Settings&lt;/em&gt; box is checked. Then click &lt;em&gt;Next&lt;/em&gt;.&lt;br /&gt;
&lt;img src="http://community.submain.com/files/Images/Tutorials/VSSettings-Export2.png" /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Choose the file name for the settings backup file.&lt;br /&gt;
&lt;img src="http://community.submain.com/files/Images/Tutorials/VSSettings-Export3.png" /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Then click &lt;em&gt;Finish&lt;/em&gt;. The wizard will store settings in the file.&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;Restore from a backup&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Use &lt;em&gt;Tools / Import and Export Settings&amp;hellip;&lt;/em&gt; menu to open&amp;nbsp; &lt;em&gt;Import and Export Settings Wizard&lt;/em&gt;. &lt;br /&gt;
&lt;img src="http://community.submain.com/files/Images/Tutorials/VSSettings-Import1.png" /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;em&gt;Export selected environment settings&lt;/em&gt; and click &lt;em&gt;Next&lt;/em&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Choose whether you want to make backup current settings.&lt;br /&gt;
&lt;img src="http://community.submain.com/files/Images/Tutorials/VSSettings-Import2.png" /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Choose your backup and click &lt;em&gt;Next.&lt;br /&gt;
&lt;img src="http://community.submain.com/files/Images/Tutorials/VSSettings-Import3.png" /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;To include ALL settings make sure the &lt;em&gt;All Settings&lt;/em&gt; box is checked. Then click &lt;em&gt;Finish.&lt;br /&gt;
&lt;img src="http://community.submain.com/files/Images/Tutorials/VSSettings-Import4.png" /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;The wizard will restore settings from the backup.&lt;br /&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;&lt;img src="http://community.submain.com/aggbug.aspx?PostID=721" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/SubMainCommunity/~4/_NpF8rM7Zig" height="1" width="1"/&gt;</description><category domain="http://community.submain.com/blogs/howto/archive/tags/Howto/default.aspx">Howto</category><category domain="http://community.submain.com/blogs/howto/archive/tags/Settings/default.aspx">Settings</category><category domain="http://community.submain.com/blogs/howto/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://community.submain.com/blogs/howto/archive/tags/GhostDoc/default.aspx">GhostDoc</category><feedburner:origLink>http://community.submain.com/blogs/howto/archive/2009/05/30/how-to-backup-and-restore-visual-studio-settings.aspx</feedburner:origLink></item><item><title>Released: CodeIt.Right version 1.6.09139 - now fully compatible with VS2010 Beta 1!</title><link>http://feedproxy.google.com/~r/SubMainCommunity/~3/sm95fAzvK4c/released-codeit-right-version-1-6-09139-now-fully-compatible-with-vs2010-beta-1.aspx</link><pubDate>Tue, 19 May 2009 10:08:02 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:718</guid><dc:creator>SubMain.Blog()</dc:creator><slash:comments>0</slash:comments><description>As you may know yesterday Microsoft released VS2010 Beta 1 to MSDN Subscribers. The Beta will also be publicly available for the rest of the world on Wednesday. This is long expected and very exciting new version of Visual Studio; and we here at SubMain are fully prepared to support the new shiny version! While some companies make a big deal posting screenshots of the upcoming VS2010 versions and announcing availability of previews for their products within a month, we at SubMain have been working...(&lt;a href="http://community.submain.com/blogs/submain/archive/2009/05/19/released-codeit-right-version-1-6-09139-now-fully-compatible-with-vs2010-beta-1.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.submain.com/aggbug.aspx?PostID=718" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/SubMainCommunity/~4/sm95fAzvK4c" height="1" width="1"/&gt;</description><category domain="http://community.submain.com/blogs/submain/archive/tags/News/default.aspx">News</category><category domain="http://community.submain.com/blogs/submain/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Updates/default.aspx">Updates</category><category domain="http://community.submain.com/blogs/submain/archive/tags/NET/default.aspx">NET</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Rules/default.aspx">Rules</category><category domain="http://community.submain.com/blogs/submain/archive/tags/.NET/default.aspx">.NET</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Releases/default.aspx">Releases</category><feedburner:origLink>http://community.submain.com/blogs/submain/archive/2009/05/19/released-codeit-right-version-1-6-09139-now-fully-compatible-with-vs2010-beta-1.aspx</feedburner:origLink></item></channel></rss>

