codecadwallader / codemaid

CodeMaid is an open source Visual Studio extension to cleanup and simplify our C#, C++, F#, VB, PHP, PowerShell, JSON, XAML, XML, ASP, HTML, CSS, LESS, SCSS, JavaScript and TypeScript coding.
http://www.codemaid.net
GNU Lesser General Public License v3.0
1.89k stars 356 forks source link

Re-cleaning linked files #946

Open Looooooka opened 1 year ago

Looooooka commented 1 year ago

Environment

Description

Codemaid goes through every file in the solution(very slowly btw) even though the file is just linked from a library project in the same solution that has already been cleaned.

Steps to recreate

Create solution Add 2-6 library projects(in my case they're all different framework versions if that actually makes any difference). Try cleanup.

Current behavior

Codemaid goes through every file in the solution(very slowly btw) even though the file is just linked from a library project in the same solution that has already been cleaned. It really needs to check the file locations first and simply clean them once(simple distinct selection). For instance I currently have our own internal framework consisting of multiple solutions which all have multiple library projects from net 4 to net 7 (5 versions at least) with 99% of the files simply being linked from one of those projects with specific version changes in separate files for each library. Codemaid literally goes through 155 documents instead of like 35. This would speed up processing by 500% in my specific scenarios.

Now it could be that this is the desired effect if it actually checks if the "using statements" are necessary for each specific framework, but if that's the only reason this could also be optimized some way to just skip doing everything else again and again

Expected behavior

For 30 files which are linked 5 times in 5 different projects in the same solution it should parse and clean only 30 files not 150 or at least skip cleanup tasks which are known not to cause issues between different frameworks specified in each library project.

codecadwallader commented 1 year ago

Thanks for the suggestion, that makes sense.