CodeMaid

Free

CodeMaid is an open source Visual Studio extension to cleanup, dig through and simplify our C#, C++, F#, VB, XAML, XML, ASP, HTML, CSS and JavaScript coding.

(88) Review
Visual Studio
2012, 2010
Download (179,213)
4/7/2013
0.6.0
View
E-mail Twitter del.icio.us Digg Facebook
Add To Favorites
Description
Reviews (88)
Q and A (65)
Sign in to Write a Review
Sort By:

by NeoN_Roma | Sat 9:34 AM

Good extension, but I have some remarks:
What for in VS2012 there "Find in solution" in context menu and "collapse all recursively" in solution explorer? VS2012 already has this functions.
There would be great if I can configure what buttons to display in context menu and solution explorer.
What do you think about updating icons to make them pixel-clear because thy are blurry?

Steve Cadwallader Sat 12:54 PM
| Edit |
Delete

Thanks for the feedback.

CodeMaid has had and continues support for those commands since earlier editions of Visual Studio (ex: VS2010). You're right that Visual Studio has newly introduced them in VS2012.

I've added a backlog card for voting/comments on configuring toolbar and context menu visibility here: https://trello.com/c/O5ldkODW

I'd be very happy to update the icons, do you know any icon designers who might be interested?

by Kevin_Schilling | May 10 2013

by Stephan_MZ | May 01 2013

As a C# developer, this tool is a pretty good collection of most wanted tools: easy to learn, easy to customize (e.g. the reorganizing tool). I like the code map displaying regions, embedded methods, interfaces etc., so I easily can navigate between them. Congratulations to the developer of CodeMaid!

I have checked CodeMaid against VS10x CodeMap and I have to say that for my daily work and regarding to what I really need: CodeMaid is on the same Level like VS10x CodeMap.

Steve Cadwallader May 02 2013
| Edit |
Delete

Thank you. :)

by Mhmmd | April 21 2013

No more cut-and-paste code reorganization for me. Would happily pay for it if it weren't free.

by casper_wilkes | April 21 2013

by kvishalv | April 18 2013

Steve, This is an awesome extension to my VS. Thank you very much for making it free :)

Steve Cadwallader April 18 2013
| Edit |
Delete

You're very welcome! :)

by MatthewS2077 | April 11 2013

Great extension!

Can you please add an option to turn off Spade if file is larger than configurable threshold?

I have a file (auto-generated classes from XSD) that is 35,000 lines and Spade takes forever! If I could tell Spade to ignore files longer than say 1000 lines it would be helpful.

Steve Cadwallader April 12 2013
| Edit |
Delete

Thanks! :)

Spade should fully run asynchronously - so although it may take a long time for it to load I wouldn't expect a performance hit except on a single core machine. I've created a Trello card for further discussion here: https://trello.com/c/ha1vFRS7

by Lee Gray | April 08 2013

This is a seriously useful extension! I specifically use it to help preserve my sanity against "random whitespace syndrome" suffered by some other devs ;)

I would like to suggest that when you add new Insert/Remove features not to enable them automatically. It can produce unexpected results in the cleanup.

I would prefer using a CheckedListBox for the Insert/Remove items than LinkLabels, but that's a minor nitpick.

Thanks for the great tool!

Steve Cadwallader April 12 2013
| Edit |
Delete

Hehe, it is good to help any dev's sanity stay afloat. ;)

That's a good point for discussion about auto-disabling new features for consistency. The big downside is that users would have to manually search through the configuration on each update to find/enable new features. I think it is fairly common to enable new features, and give the user the option to go in and turn them off if they don't like them. Happy to discuss further, I've created a Trello card here: https://trello.com/c/eoLpxzGI for discussion.

That's good feedback. I was trying to be clever and conserve space because those lists get pretty massive - but I have heard a few times that it is not very intuitive. Created a Trello card for that as well: https://trello.com/c/q4QjOEBe for voting/comments.

Thanks for the feedback points, they're certainly appreciated - and enjoy. :)

by bryanvam | April 08 2013

Thanks for this awesome tool!

Would it be possible to have CodeMaid settings be part of the standard Visual Studio settings. This would allow exporting along with all the standard settings.

Steve Cadwallader April 12 2013
| Edit |
Delete

You're welcome - glad you like it :)

They used to be built in to VS settings, but I took them out several versions ago. The built in settings does not support nested levels for extensions without registry hacks (which was a source of issues) and the size of the configuration window is a fixed small size. Now in v0.6.0 CodeMaid supports exporting settings as well, but it is an independent step.

by compile | March 19 2013

Seems like a valuable extension to the Visual Studio IDE, but unfortunately it crashes Visual Studio 2013 for me whenever I open a project. It may be conflicting with another extension I have but I'm unware of it causing any issues.

Hopefully Steve can fix my issue.

Steve Cadwallader March 19 2013
| Edit |
Delete

There is a known issue with VS2012 C++ projects that Microsoft is looking into (https://connect.microsoft.com/VisualStudio/feedback/details/770205/accessing-envdte80-codeclass2-c-members-hangs-vs2012). The workaround for now is to close the Spade tool window which is the part of CodeMaid that is accessing an API which is no longer functioning in VS2012.

If your issue is not with C++ projects, please let me know some additional details and I'd be happy to look into it. BitBucket is where we track issues so that would be the best place to report it: https://bitbucket.org/s_cadwallader/codemaid/issues

by Xperiandri | March 09 2013

Very good extension to make code cleaner and more readable. Steve, thank you very much for this tool!

Steve Cadwallader March 09 2013
| Edit |
Delete

You're very welcome, thanks for the review! :)

by manit | March 07 2013

Works as advertised. Gets rid of extra spaces and few nice extras. Simple short cut CTRL+M+SPACE

It is a bit slow for large files but I can live with it.

by gdosborne | February 22 2013

Great extension!

by Stefan Stanescu | February 20 2013

I love it. Keeps the code clean. It would be cool if it wouldn't remove the "using" statements required by code that is commented. I sometimes comment out some lines while debugging and if I decide to use that code I have to add the "using" statement again.

Steve Cadwallader February 22 2013
| Edit |
Delete

Thanks, glad you love it. :) The using statement removal logic comes directly from Microsoft (i.e. CodeMaid just invokes it). You could ask them about it but I suspect they would say it is by design that they don't analyze commented out code.

by Uriah65 | February 16 2013

Steve, you wrote a fantastic tool! We are using it to clean code before running StyleCop and love results. This is one of the best extensions to VS out there. Keep up with a good work!

Steve Cadwallader February 17 2013
| Edit |
Delete

That's awesome - thanks! And on that note, here comes v0.5.7 :)

by John Isaiah Carmona | February 08 2013

Really nice extension. I thing though, the CodeMaid Spade fail to parse the `para` tag of the documentation comment, instead it read it as text. Sorry, I can't find a place to post this bug so I post it here.

http://msdn.microsoft.com/en-us/library/x640hcd2.aspx

Steve Cadwallader February 09 2013
| Edit |
Delete

Hi John -

Thanks for the nice thoughts and feedback. You're right that the para tag was not supported, but I have added support for it and it will be present the next release. Thanks for the suggestion. :)

https://trello.com/c/hoypoIxZ

-Steve Cadwallader

by Dave004 | February 07 2013

Summary: Too difficult to pick up and use, requires some seriously dedicated time to learn what the features are, and how they work.

Installation and uninstallation was problematic and frustrating, requiring installing/uninstalling/restarting VS2012 several times.

With a poorly designed configuration window which uses non standard UI interfaces, it makes it difficult to know what auto formatting options are selected, leaving the developer in a position of not knowing what changes are going to happen to the code files they happen to open and close.

Some suggestions to author:
1) Incorporate your configuration window into the VS Options window.
2) Use the already estabilished layout of a list box with checkboxes to select the options the developer can enable/disable, followed by a preview box of how the code is affected by each option.
3) If there are any options that will do 'code cleanup' in the background then those options should be centralised with a clear indicator of when and how those background processes will function.

by Beetny | January 01 2013

Initially installed this for the formatting options, but it became unusable for me after constantly hanging on "waiting for background operation to complete" when opening the Spade on certain files. Even after disabling _every_ option and creating a new C++ project.

It's a shame, because I really like the Spade layout (sort of like the Code Map extension before it sold out).

Steve Cadwallader January 05 2013
| Edit |
Delete

Sorry for the trouble you're having. Unfortunately that is a known issue with VS2012 that I have been working on with Microsoft. Please feel free to vote up the Microsoft Connect issue and keep an eye on it for when it is resolved: https://connect.microsoft.com/VisualStudio/feedback/details/770205/accessing-envdte80-codeclass2-c-members-hangs-vs2012

The issue shows the last update is on November 9th but I've been talking to them for several weeks past that and am still hoping for a resolution.

by kobac | December 26 2012

Steve you've got 5 stars from me! My favourite extension, no doubt.
Since I'm mostly using Code digging tool (McCabe software quality metric) for QA purposes, I'd like to ask you for a feature of turning off or ignoring switch-case statement for McCabe results.
I know that this statement is included when measurig Cyclomatic complexity, but since most of switch-cases are easily readable, OK for maintaining and sometimes there are no space for introducing new classes for eliminating them with the use of switch-case design pattern (polymorphism), it would be great if not including McCabe results for these type of statements would be configurable.
One more very usable feature would be sorting methods in CodeMain window by McCabe results.
Many thanks for your effort! Keep up the good work

Steve Cadwallader December 28 2012
| Edit |
Delete

Hi kobac -

That's great, I'm really glad to hear the complexity calculations are helping you out.

I have added two new cards to the backlog for your feature requests:
* Customize complexity results: https://trello.com/c/bRagJvzB
* Sort by complexity: https://trello.com/c/mWSOjEvS

Be sure to check those out, add more comments if I missed anything and vote them up.

If you didn't notice, in the latest release I added a tooltip at the class level that will show you the most complex item. I think you may find that handy, here's the card with screenshots: https://trello.com/c/mNhnA7HK

Thanks for the great review and suggestions. :)
-Steve Cadwallader

by Caio Vilas Boas | December 07 2012

Nice tool ... But I had some bugs while using it.

Steve Cadwallader December 08 2012
| Edit |
Delete

Sorry to hear it. If there's anything you'd like for me to look into please open up an issue on BitBucket (https://bitbucket.org/s_cadwallader/codemaid/issues) and I'd be happy to take a look.

1 - 20 of 88 Items   
Sign in to Start a Discussion


  • trailing spaces are not getting removed in VS2012
    2 Posts | Last Post May 02, 2013
    • Hi,
      
      I am using VS 2012 Premium update 2, with python tools for visual studio. When I save the file, the trailing spaces at the end of lines are not getting removed, even though "Remove end of line whitespace" option is checked.
      
      Is there a fix?
      
      thanks!
    • Which kind of file (.html, .js, .xml, etc.) is not removing end of line whitespace?  Are other CodeMaid cleanup operations running successfully on that file?
  • Sort base class and interfaces
    3 Posts | Last Post April 30, 2013
    • Wouldn't it be useful to sort base class and interface names at a class definition to some definitive order? Like base class first, then all interfaces in alphabetical order. Similar to sorting all using statements (which have their own special sorting as well). I usually don't have too many interfaces in my code, what do others think about it?
    • Nobody here? Strange...
    • I didn't have a strong opinion on this one which is why I haven't chimed in.  I turned this concept into a Trello card for you to see if you get any more responses over there: https://trello.com/c/3GqHdVqW
      
  • Seems like spade doesn't work with XAML
    2 Posts | Last Post March 10, 2013
    • It seems like spade doesn't work with XAML
      May be extension conflict?
      Did you test spade from last version to work with XAML?
    • Spade does not have support for XAML files yet.  It currently supports C# and C++.  I have created a card on Trello here: https://trello.com/c/9UdT5NIW
      
      Feel free to vote up the card, and/or fork the code on BitBucket if you want to jump start it faster. :)
  • Code Switch - Partial Classes?
    2 Posts | Last Post February 28, 2013
    • It would be nice if this extension could support code switching between partial classes in C#. We don't need it very much but did some refactoring today and it would been really nice to have.
    • Good idea, I like it.  I've turned it into a Trello backlog card here: https://trello.com/c/lEQ840VZ for voting/comments.
      
      Feel free to vote up the card, and/or fork the code on BitBucket if you want to jump start it faster. :)
  • Would you be willing to support F# as well?
    2 Posts | Last Post February 28, 2013
    • I've got several F# projects and would be interested in this tool supporting them as well.
    • Yep, I have some interest and there is an existing card on the Trello backlog here:  https://trello.com/c/bzZtNrH9
      
      Feel free to vote up the card, and/or fork the code on BitBucket if you want to jump start it faster. :)
  • New Icons for Spade
    2 Posts | Last Post February 22, 2013
    • Are there any plans to update the icons in the Spade to match the new Visual Studio 2012 icons?
    • Thanks for the reminder Brandon.  Microsoft did not originally release the icon library with VS2012, but I went and checked and they have been published now.
      
      I've put in a Trello card for the next release to update the icons accordingly: https://trello.com/c/2N21g0HQ
  • About memory leak
    2 Posts | Last Post February 20, 2013
    • After 16..24 hours of work without reopen VS 2012, memory allocated is over 650MB, this make VS too slow, if I remove CodeMaid, have no trouble.
      I call twice "Cleanup All Code..." over my solution (www.pildra.com.br), about 12K lines, Windows Task Manager report 730 MB VS allocated, before is about 115MB.
      I think have a memory leak.
      CodeMaid is a good tool.
      
      Thanks.
      
    • I'm glad you like the tool, and thanks for reporting the memory usage you are seeing.  I have turned this into a BitBucket issue here: https://bitbucket.org/s_cadwallader/codemaid/issue/185/review-and-improve-memory-usage-during
  • Is it possible to add new file types that codemaid works with?
    2 Posts | Last Post February 12, 2013
    • I have been working with Sandcastle documentation which has an extension of .aml and would love to have codemaid auto format documents, however it does not recognize the extension. 
    • Hi Jim -
      
      I've added your feature request to the Trello backlog here: https://trello.com/c/ULEZa4xF
      
      I'm not familiar with Sandcastle documentation, but if you'd like to email me a small sample via codemaid at gmail I can take a look to see how much work it would be to support it.
      
      -Steve Cadwallader
  • Mistake in skipping files.
    2 Posts | Last Post February 12, 2013
    • I use CodeMaid 0.5.6, on my projet have many source files (in C#) with name ended in Designer, these files is skipped.
    • Thanks for pointing that out.  You can fix it by going to CodeMaid->Configuration->Cleaning->File Types and changing the exclude regular expression from .*.Designer.cs to .*\.Designer\.cs   This is intended to exclude windows forms generated code, but the periods were not being properly escaped so it could improperly ignore similarly named files.
      
      I've checked in the fix for this and it will be present in the next release.  Thanks again for your help finding that. :)
  • Unable to uninstall from VS2012
    5 Posts | Last Post January 22, 2013
    • I downloaded CodeMaid v0.5.6 and installed it.
      
      I've run uninstallation (from Tools>Extensions) and then restarted VS but the CodeMaid menu is still present and I can't open the solution that I'm working on (it's quite large) because CodeMaid hangs (The code maid spade pane just says 'loading <classname>').
      
      I'd be grateful for a workaround as the only way I can open this solution now is to run VS in safe mode!
      
      Thanks
      Ed
    • Key fact that I haven't included above - this was using VS 2012
    • In regards to the hang, is it a C++ solution?  There is a known issue that Microsoft is looking into with the VS2012 C++ API.  The workaround for now is to close the Spade tool window.  Details: https://connect.microsoft.com/VisualStudio/feedback/details/770205/accessing-envdte80-codeclass2-c-members-hangs-vs2012
      
      I haven't heard of that installation difficulty before.  CodeMaid is utilizing the standard VSIX installer for Visual Studio extensions.  Here's a few things to check/try:
      
      * Can you disable the extension?
      * Did you install it under a different Windows user profile?
      * Is it also installed under VS2010?
      * If you run Visual Studio as an administrator, does the uninstall work correctly?
      
      Hope it helps,
      -Steve Cadwallader
    • Thanks for responding Steve,
      
      It's a C# solution (with around 25 sub projects, including MVC4). The hang does look related to the spade tool window - but your link doesn't seem to work. VS only hangs when I open my project. I am able to access the code maid menus before I've opened any project.
      
      -When I first installed CodeMaid, I did so running as administrator. I've tried to uninstall as administrator.
      -Uninstall/Disable both complete (via Extensions & Updates window) but don't remove the CodeMaid menu, although they do seem to remove the functionality behind the menu items. Is there a way to do a manual uninstall?
      -It is also installed under VS2010 but I've not tried running it
      -If I could clean up my installation, I could try installing it as a non-administrator user.
      
      It is now in a state where I've tried to uninstall it but now on VS startup I get an error message: The '... CodeMaidPackage ...' did not load correctly. This at least means I can open my solution and contine working!
      
      
    • Sorry to hear of your ongoing troubles.  I believe you need to uninstall it under both VS2010, and both VS2012 for it to be removed.  I would have expected it to disappear from VS2012 after it was uninstalled there though, so it sounds like something in your install is corrupted.
      
      You could try forcing an uninstall, check out: http://stackoverflow.com/questions/1526733/uninstalling-the-vs2010-extension-without-the-extension-manager
      
      
1 - 10 of 65 Items