IntroductionSmokey Add-in is a MonoDevelop IDE add-in that integrates commands like 'Inspect with Smokey' into the solution and project context menus to run a tool called Smokey analyzing your .NET assembly against a set of rules (which are, basically, 'bad code' patterns) and showing the rule violations directly in the IDE.
Implemented Featuressolution and project context menu item 'Inspect with Smokey' running the inspection; option page in MonoDevelop options currently only implementing --exclude-name Smokey command line option; results of the inspection output into the Task View pad, just like build errors or warnings Install How-ToFirst, check out the SVN to obtain the latest version of sources. Then, compile it (there is an .mds file in the root directory, which is MonoDevelop solution file) and copy SmokeyAddin.addin.xml, SmokeyAddin.dll, smokey.exe and Mono.Cecil.dll (Smokey needs it to run) from the output directory to your MonoDevelop AddIns folder (e.g. /usr/lib/monodevelop/AddIns/). Run MonoDevelop again — and Smokey will already be integrated into IDE. Hint: instead of copying files, you can create symbolic links to the same files in your local copy output directory to be able to test new version of the add-in right after each build.
TODOImprove the parser; Refactor some spaghetti-code (especially in the parser); Use MonoDevelop's core process-running API rather than Process.Start; Use a web browser obtained from MonoDevelop.Core.Gui.WebBrowserService to display the pretty HTML output (will need to rewrite the filenames into links and handle them);
Make the options panel per-project, with a list of rules to ignore Add the capability to execute the check after compilation Cache smokey's output so it doesn't have to be re-run when reloading the project; Use MonoDevelop's asych/IMonitor API rather than launching a thread manually; Add correct exception handling mechanism;
Contributors Needed!If you wish to make this add-in working more correctly, implement some missing functionality from the TODO or just fix a bug in the add-in — you are very welcome! E-mail me at dan.abramov / gmail / com. Thanks!