[visual-studio] Visual Studio 솔루션에서 코드 줄을 어떻게 계산합니까?

전체 솔루션에서 코드 줄 수를 찾을 수 있습니까? MZ-Tools에 대해 들었지만 오픈 소스에 해당하는 것이 있습니까?



답변

Visual Studio 2010 Ultimate에는 다음과 같은 기본 제공 기능이 있습니다.

분석 → 코드 메트릭 계산


답변

나는 이것에 유용한 powershell을 발견했다 . 어쨌든 LoC는 꽤 가짜 측정 기준이라고 생각하므로 더 공식적인 것이 필요하다고 생각하지 않습니다.

작은 솔루션의 디렉토리에서 :

PS C:\Path> (gci -include *.cs,*.xaml -recurse | select-string .).Count
8396
PS C:\Path>

모든 솔루션의 .cs 및 .xaml 파일에서 공백이 아닌 줄을 계산합니다. 더 큰 프로젝트의 경우 다른 확장 목록을 사용했습니다.

PS C:\Other> (gci -include *.cs,*.cpp,*.h,*.idl,*.asmx -recurse | select-string .).Count
909402
PS C:\Other>

단일 명령 줄에서 전체 앱을 사용하는 이유는 무엇입니까? 🙂


답변

나는 Ctrl+ Shift+를 사용했다 F. 그런 다음 \n검색 창 에 a 를 입력하고 정규식 상자를 활성화합니다. 그런 다음 찾기 결과에서 화면 끝에 검색된 파일 수와 코드 줄이 있습니다.

[^\n\s]\r\n공백 및 공백 전용 줄을 건너 뛰는 데 사용할 수 있습니다 (주석에서 Zach의 크레딧).


답변

VS2005, 2003 및 2002의 오픈 소스 라인 카운터는 다음에서 제공됩니다.

http://www.wndtabs.com/

Codeproject의 코드로 완성 된 라인 카운팅 VS addin 생성에 대한 토론도 있습니다.

http://www.codeproject.com/KB/macros/LineCounterAddin.aspx

또한 매끄러운 편집 가제트에는 멋진 라인 카운터가 있습니다.

http://www.slickedit.com/products/slickedit

Microsoft Visual Studio Team System 2008에는 우수한 라인 카운터가 포함되어 있습니다.

그래도 기억하십시오 :

코드 라인별로 프로그래밍 진행률을 측정하는 것은 무게로 항공기 건물 진행률을 측정하는 것과 같습니다. 빌 게이츠


답변

다음은 “찾기”옵션을 수행하려는 사용자를위한 Visual Studio 2012/2013/2015에 대한 업데이트입니다.이 RegEx는 가장 정확한 결과를 제공하기 위해 여러 제외를 포함하여 모든 비 공백 행을 찾습니다. .

“찾기”상자에 다음 RegEx를 입력하십시오. “정규 표현식 사용”옵션을 선택하십시오. 필요에 따라 검색 옵션을 “현재 프로젝트”또는 “전체 솔루션”으로 변경하십시오. 이제 “모두 찾기”를 선택하십시오. 결과 찾기 창의 맨 아래 에 코드 개수의 줄인 “일치하는 줄”이 표시됩니다.


^(?!(\s*\*))(?!(\s*\-\-\>))(?!(\s*\<\!\-\-))(?!(\s*\n))(?!(\s*\*\/))(?!(\s*\/\*))(?!(\s*\/\/\/))(?!(\s*\/\/))(?!(\s*\}))(?!(\s*\{))(?!(\s(using))).*$

이 RegEx는 다음 항목을 제외합니다.


코멘트

// This is a comment

여러 줄 주석 (줄이 각 줄 앞에 *로 올바르게 주석 처리되었다고 가정)

/* I am a
* multi-line
* comment */

Intellisense 용 XML

/// <summary>
/// I'm a class description for Intellisense
/// </summary>

HTML 의견 :

<!-- I am a HTML Comment -->

문장 사용하기 :

using System;
using System.Web;

중괄호 열기 :

{

중괄호 닫기 :

}

참고 : 중괄호 사이의 모든 항목이 검색에 포함되지만이 예제에서는 18 개의 실제 비 공백 행 대신 4 행의 코드 만 계산됩니다.

        public class Test
        {
            /// <summary>
            /// Do Stuff
            /// </summary>
            public Test()
            {
                TestMe();
            }
            public void TestMe()
            {
                //Do Stuff Here
                /* And
                 * Do
                 * Stuff
                 * Here */
            }
        }

이전 옵션보다 훨씬 정확한 LOC 수를 제공하기 위해 이것을 만들었고 공유 할 것이라고 생각했습니다. 상사는 LOC 수를 좋아하므로 잠시 동안 붙어 있습니다. 다른 사람이 도움이 될 수 있기를 바랍니다. 궁금한 점이 있거나 도움이 필요하면 알려주십시오.


답변

이 팁을 찾았습니다.
LOC with VS 찾기 및 바꾸기

당신이 찾고있는 것이지만 플러그인이 아닙니다.


답변

cloc 은 탁월한 명령 줄, Perl 기반의 Windows 실행 파일로, 파일 형식별로 그룹화 된 빈 줄, 주석 처리 된 줄 및 코드 소스 줄을 분류합니다.

이제는 VS 솔루션 파일에서 구체적으로 실행되지 않지만 디렉토리를 통해 재귀 할 수 있으며 파일 이름 필터를 적절하게 설정할 수 있습니다.

웹 페이지의 샘플 출력은 다음과 같습니다.

프롬프트> cloc perl-5.10.0.tar.gz
    4076 개의 텍스트 파일.
    3883 개의 고유 한 파일.
    1521 파일이 무시되었습니다.

http://cloc.sourceforge.net v 1.07 T = 10.0 초 (251.0 파일 / 초, 84566.5 라인 / 초)
-------------------------------------------------- -----------------------------
언어 파일 빈 주석 코드 스케일 3 세대 equiv
-------------------------------------------------- -----------------------------
펄 2052 110356 112521 309778 x 4.00 = 1239112.00
C 135 18718 22862 140483 x 0.77 = 108171.91
C / C ++ 헤더 147 7650 1209344042 x 1.00 = 44042.00
Bourne Shell 116 3402 5789 36882 x 3.81 = 140520.42
리스프 1684 2242 7515 x 1.25 = 9393.75
7 498473 2044 x 2.50 = 5110.00 만들기
C ++ 1031277 2000 x 1.51 = 3020.00
XML 26231 1972 x 1.90 = 3746.80
yacc 2128 97 1549 x 1.51 = 2338.99
YAML 200 489 x 0.90 = 440.10
DOS 배치 11 85 50322 x 0.63 = 202.86
HTML 1 98 98 x 1.90 = 186.20
-------------------------------------------------- -----------------------------
합 : 2510 142085 156406547174 x 2.84 = 1556285.03
-------------------------------------------------- -----------------------------

3 세대 등가 척도는 3 세대 언어 에서 얼마나 많은 코드가 필요한지 대략적인 추정치입니다 . 별로 유용하지는 않지만 어쨌든 재미 있습니다.