Formatting یا مرتبسازی کد، یکی از امکانات جذاب یه ویرایشگر برای منه. کاری که میکنه اینه که کد رو به شکل خاصی مرتبسازی میکنه. مثلن فاصلهگذاریها و خطوط رو تصحیح میکنه تا کد زیباتر و خواناتر بشه و از اینجور کارها.
توی ویژوال استودیو با زدن Ctrl + K + D ویژوال استودیو کدهای صفحهای که توش هستید رو براتون ویرایش میکنه. حالا اگر بخواید همهی فایلهای solutionای که توش هستید رو مرتبسازی کنید چی؟
برای این کار، Package Manager Console رو از Tools -> Nuget Package Manager -> Package Manager Console باز کنید و کد زیر رو اونجا وارد کنید و اینتر رو بزنید:
function f($projectItems){$projectItems | ForEach-Object {$_.ProjectItems | ForEach-Object { if ($_.Name -ne $null -and $_.Name.EndsWith( ".cs" ) -and -not $_.Name.EndsWith( ".Designer.cs" ) -and -not $_.Name.EndsWith( ".tt.cs" )) {$window = $_.Open('{7651A701-06E5-11D1-8EBD-00A0C90F26EA}'); if ($window){Write-Host $_.Name;[System.Threading.Thread]::Sleep(100);$window.Activate();$_.Document.DTE.ExecuteCommand('Edit.FormatDocument');$_.Document.DTE.ExecuteCommand('Edit.RemoveAndSort');$window.Close(1);}} }}; if ($projectItems){ $projectItems | % { f($_.projectItems) } } }
$dte.Solution.Projects | % { f($_.ProjectItems) }