Вот обновление для Visual Studio 2012/2013/2015 для тех, кто хочет использовать опцию «Найти» (что я считаю самым простым): этот RegEx найдет все непустые строки с несколькими исключениями, чтобы дать самые точные результаты.
Введите следующий RegEx в поле «Найти». Пожалуйста, не забудьте выбрать опцию «Использовать регулярные выражения». Измените параметр поиска на «Текущий проект» или «Полное решение» в зависимости от ваших потребностей. Теперь выберите «Найти все». В нижней части окна Find Results вы увидите «Matching Lines», который представляет собой строки кода.
^(?!(\s*\*))(?!(\s*\-\-\>))(?!(\s*\<\!\-\-))(?!(\s*\n))(?!(\s*\*\/))(?!(\s*\/\*))(?!(\s*\/\/\/))(?!(\s*\/\/))(?!(\s*\}))(?!(\s*\{))(?!(\s(using))).*$
Этот Регламент исключает следующие позиции:
Комментарии
// This is a comment
Многострочные комментарии (при условии, что строки правильно прокомментированы с * перед каждой строкой)
/* I am a
* multi-line
* comment */
XML для Intellisense
/// <summary>
/// I'm a class description for Intellisense
/// </summary>
HTML комментарии:
<!-- I am a HTML Comment -->
Использование операторов:
using System;
using System.Web;
Открытие фигурных скобок:
{
Закрывающие фигурные скобки:
}
Примечание: все, что находится между фигурными скобками, будет включено в поиск, но в этом примере будет учитываться только 4 строки кода вместо 18 фактических непустых строк:
public class Test
{
/// <summary>
/// Do Stuff
/// </summary>
public Test()
{
TestMe();
}
public void TestMe()
{
//Do Stuff Here
/* And
* Do
* Stuff
* Here */
}
}
Я создал это, чтобы дать мне гораздо более точный подсчет LOC, чем некоторые предыдущие варианты, и решил, что поделюсь. Боссы любят LOC, так что я застрял на некоторое время. Я надеюсь, что кто-то еще может найти это полезным, дайте мне знать, если у вас есть какие-либо вопросы или вам нужна помощь, чтобы заставить его работать.