c# - studio - ordenar codigo visual code
¿Cómo formatear todos los archivos en Visual Studio 2012? (6)
Abre Tools -> Library Package Manager -> Package Manager Console , y ejecuta el siguiente comando. Al final, todos los documentos estarán abiertos en el IDE. (Las máquinas de baja RAM tendrán problemas con las soluciones grandes.) Los archivos modificados se modificarán en el IDE y no se guardarán en el disco. Puede guardar todo, luego cerrar todo si está listo.
VS2012 eliminó el lenguaje macro similar a VB que existía en la versión anterior de Visual Studio. Sin embargo, la interfaz DTE subyacente todavía está allí, y puede acceder a ella a través de PowerShell, en la consola de Package Manager.
El extraño GUID pasado a ProjectItem.Open
es Constants.vsViewKindCode
.
Normalmente dividiría esto en varias líneas, pero la consola de Package Manager no admite la continuación de línea.
Puede encontrar la última versión en https://gist.github.com/JayBazuzi/9e0de544cdfe0c7a4358
function f($projectItems) { $projectItems | ? { $_.Name.EndsWith( ".cs" ) } | % { $win = $_.Open(''{7651A701-06E5-11D1-8EBD-00A0C90F26EA}'') ; $win.Activate() ; $DTE.ExecuteCommand(''Edit.FormatDocument'') } ; if ($projectItems) { $projectItems | % { f($_.projectItems) } } }
$dte.Solution.Projects | % { f($_.ProjectItems) }
Con las versiones anteriores de Visual Studio, utilicé el guión de Kevin Pilch-Bisson para formatear todos los archivos C # en mi solución.
VS2012 dejó de admitir macro, por lo que ya no funciona.
¿Cómo puedo formatear fácilmente todos mis documentos en VS2012?
Aquí hay otra variante de las dos respuestas anteriores que los usuarios pueden encontrar útiles ... definitivamente podrían mejorarse aún más y simplificarse. Esto no solo formatea archivos .cs
sino también .json
, .cshtml
, .js
y .css
.
function f($projectItems) { $projectItems | ? { $_.Name -ne $null -and $_.Name.EndsWith( ".cs" ) } | % { $win = $_.Open(''{7651A701-06E5-11D1-8EBD-00A0C90F26EA}'') ; $win.Activate() ; $DTE.ExecuteCommand(''Edit.FormatDocument'') } ; if ($projectItems) { $projectItems | % { f($_.projectItems) } } }
$dte.Solution.Projects | % { f($_.ProjectItems) }
function f($projectItems) { $projectItems | ? { $_.Name -ne $null -and $_.Name.EndsWith( ".json" ) } | % { $win = $_.Open(''{7651A701-06E5-11D1-8EBD-00A0C90F26EA}'') ; $win.Activate() ; $DTE.ExecuteCommand(''Edit.FormatDocument'') } ; if ($projectItems) { $projectItems | % { f($_.projectItems) } } }
$dte.Solution.Projects | % { f($_.ProjectItems) }
function f($projectItems) { $projectItems | ? { $_.Name -ne $null -and $_.Name.EndsWith( ".cshtml" ) } | % { $win = $_.Open(''{7651A701-06E5-11D1-8EBD-00A0C90F26EA}'') ; $win.Activate() ; $DTE.ExecuteCommand(''Edit.FormatDocument'') } ; if ($projectItems) { $projectItems | % { f($_.projectItems) } } }
$dte.Solution.Projects | % { f($_.ProjectItems) }
function f($projectItems) { $projectItems | ? { $_.Name -ne $null -and $_.Name.EndsWith( ".js" ) -and (-not $_.Properties.Item("FullPath").Value.Contains("common")) -and (-not $_.Properties.Item("FullPath").Value.Contains("Content")) -and (-not $_.Properties.Item("FullPath").Value.Contains("Scripts")) } | % { $win = $_.Open(''{7651A701-06E5-11D1-8EBD-00A0C90F26EA}'') ; $win.Activate() ; $DTE.ExecuteCommand(''Edit.FormatDocument'') } ; if ($projectItems) { $projectItems | % { f($_.projectItems) } } }
$dte.Solution.Projects | % { f($_.ProjectItems) }
function f($projectItems) { $projectItems | ? { $_.Name -ne $null -and $_.Name.EndsWith( ".css" ) -and (-not $_.Properties.Item("FullPath").Value.Contains("common")) -and (-not $_.Properties.Item("FullPath").Value.Contains("Content")) -and (-not $_.Properties.Item("FullPath").Value.Contains("Scripts")) } | % { $win = $_.Open(''{7651A701-06E5-11D1-8EBD-00A0C90F26EA}'') ; $win.Activate() ; $DTE.ExecuteCommand(''Edit.FormatDocument'') } ; if ($projectItems) { $projectItems | % { f($_.projectItems) } } }
$dte.Solution.Projects | % { f($_.ProjectItems) }
Aquí hay una actualización de la secuencia de comandos existente que funciona en soluciones muy grandes.
Abre cada archivo, lo formatea, luego guarda y cierra el archivo en lugar de dejarlo abierto. También omite ".designer". archivos, ya que estos generalmente deberían dejarse en paz.
Esto funciona en Visual Studio 2012 y 2013. Puede copiarlo y pegarlo directamente en la consola de Package Manager.
SEA ADVERTIDO: al pegar este código en su consola, se abrirá y formateará inmediatamente cada archivo C # en toda su solución, guardando cada archivo modificado sin preguntar. Puede ser una buena idea ramificar primero ...
function FormatItems($projectItems) {
$projectItems |
% {
# Write-Host " Examining item: $($_.Name)";
if ($_.Name -and $_.Name.ToLower().EndsWith(".cs") `
-and (-not $_.Name.ToLower().Contains(".designer."))) {
$win = $_.Open(''{7651A701-06E5-11D1-8EBD-00A0C90F26EA}'');
$win.Activate();
$dte.ExecuteCommand(''Edit.FormatDocument'');
if (!$_.Saved) {
Write-Host " Saving modified file: $($_.Name)";
$dte.ExecuteCommand(''File.SaveSelectedItems'');
}
$dte.ExecuteCommand(''Window.CloseDocumentWindow'');
}
if ($_.ProjectItems -and ($_.ProjectItems.Count -gt 0)) {
# Write-Host " Opening sub-items of $($_.Name)";
FormatItems($_.ProjectItems);
}
};
}
$dte.Solution.Projects | % {
Write-Host "-- Project: $($_.Name)";
FormatItems($_.ProjectItems)
}
;
Ir a -> Herramientas - >> Opción - >> Editor de texto - >> XAML - >> Formatear - >> Espaciar - >> Comprobar la posición de cada atributo en una línea separada! Eso es
Puede usar CodeMaid , un complemento gratuito para VS2012. Eso te permite limpiar, reorganizar tu código. Siempre lo uso antes de verificar mi código con StyleCop
Puede usar la limpieza del código de ReSharper . Parece que esto puede funcionar en una solución completa a la vez.