c# - tiene - descargar cloc
¿Cómo contar el número de líneas de código en una solución de C#, sin comentarios y líneas vacías, y otras cosas redundantes, etc.? (6)
Ctrl + Shift + f (Buscar en archivos) -> poner ";" en el cuadro de texto "Buscar qué:" -> Presione el botón "Buscar todos".
Este método extremadamente simple hace uso del hecho de que cualquier declaración de C # termina con un punto y coma. Y, al menos no uso el punto y coma en ningún otro lugar (por ejemplo, en los comentarios) ...
Por cosas redundantes, me refiero a los espacios de nombres, ya que sé que son necesarios, pero si hay 10k de ellos, no agrega información valiosa a la tabla.
¿Podría hacerse esto usando Linq?
De: http://rajputyh.blogspot.in/2014/02/counting-number-of-real-lines-in-your-c.html
private int CountNumberOfLinesInCSFilesOfDirectory(string dirPath)
{
FileInfo[] csFiles = new DirectoryInfo(dirPath.Trim())
.GetFiles("*.cs", SearchOption.AllDirectories);
int totalNumberOfLines = 0;
Parallel.ForEach(csFiles, fo =>
{
Interlocked.Add(ref totalNumberOfLines, CountNumberOfLine(fo));
});
return totalNumberOfLines;
}
private int CountNumberOfLine(Object tc)
{
FileInfo fo = (FileInfo)tc;
int count = 0;
int inComment = 0;
using (StreamReader sr = fo.OpenText())
{
string line;
while ((line = sr.ReadLine()) != null)
{
if (IsRealCode(line.Trim(), ref inComment))
count++;
}
}
return count;
}
private bool IsRealCode(string trimmed, ref int inComment)
{
if (trimmed.StartsWith("/*") && trimmed.EndsWith("*/"))
return false;
else if (trimmed.StartsWith("/*"))
{
inComment++;
return false;
}
else if (trimmed.EndsWith("*/"))
{
inComment--;
return false;
}
return
inComment == 0
&& !trimmed.StartsWith("//")
&& (trimmed.StartsWith("if")
|| trimmed.StartsWith("else if")
|| trimmed.StartsWith("using (")
|| trimmed.StartsWith("else if")
|| trimmed.Contains(";")
|| trimmed.StartsWith("public") //method signature
|| trimmed.StartsWith("private") //method signature
|| trimmed.StartsWith("protected") //method signature
);
}
- Los comentarios de // y / * kind son ignorados.
- Una declaración escrita en varias líneas se considera una sola línea.
- los paréntesis son (es decir, ''{'') no se consideran líneas.
- La línea de ''usar espacio de nombres'' se ignora.
- Las líneas que son nombre de clase, etc. se ignoran.
No tengo una idea sólida acerca de ellos, pero puede utilizar los valores de las métricas de código para obtener algunas estadísticas sobre su solución, como las líneas de código.
hemos utilizado el cubo tfs para obtener los datos sobre cuántas líneas agregar / eliminar / cambiar en nuestros tfs. Este se puede ver desde Excel. Pero hay que configurarlo correctamente. Y no creo que excluya los comentarios y las líneas en blanco, etc.
No hay necesidad de reinventar la rueda. Eche un vistazo a Visual Studio Code Metrics PowerTool 11.0
Visión general
Code Metrics PowerTool es una utilidad de línea de comandos que calcula las métricas de código para su código administrado y las guarda en un archivo XML. Esta herramienta permite a los equipos recopilar e informar métricas de código como parte de su proceso de construcción. Las métricas de código calculadas son:
• Índice de mantenibilidad
• Complejidad ciclomática
• Profundidad de herencia
• Acoplamiento de clase
• Líneas de Código (LOC)
Sé que dijiste que no tienes Ultimate, así que solo quería mostrarte lo que te estás perdiendo.
Para todos los demás, hay SourceMonitor
Visual Studio hará esto por ti. Haga clic derecho en su proyecto y elija Calculate Code Metrics
.