전체 솔루션에서 코드 줄 수를 찾을 수 있습니까? MZ-Tools에 대해 들었지만 오픈 소스에 해당하는 것이 있습니까?
전체 솔루션에서 코드 줄 수를 찾을 수 있습니까? 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>
단일 명령 줄에서 전체 앱을 사용하는 이유는 무엇입니까? :)
(dir -exclude *.g.cs -include *.cs,*.xaml -recurse | select-string .).Count
나는 Ctrl+ Shift+를 사용했다 F. 그런 다음 \n
검색 창 에 a 를 입력하고 정규식 상자를 활성화합니다. 그런 다음 찾기 결과에서 화면 끝에 검색된 파일 수와 코드 줄이 있습니다.
[^\n\s]\r\n
공백 및 공백 전용 줄을 건너 뛰는 데 사용할 수 있습니다 (주석에서 Zach의 크레딧).
Look at these file types:
아래의 옵션 드롭 다운을 선택하여 특정 파일 형식을 선택할 수도 있습니다 enable regular expressions box
.
[^\n\s]\r\n
공백이 있어도 빈 줄을 건너 뜁니다.
VS2005, 2003 및 2002의 오픈 소스 라인 카운터는 다음에서 제공됩니다.
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 세대 언어 에서 얼마나 많은 코드가 필요한지 대략적인 추정치입니다 . 별로 유용하지는 않지만 어쨌든 재미 있습니다.
choco install cloc
다음 cloc .
솔루션의 디렉토리입니다. 작업 완료!
여기에 대한 답변은 약간 오래된 것입니다 .2008 년과 비교했을 수 있습니다. 최신 Visual Studio 버전 2010/2012에서는이 기능이 이미 내장되어 있습니다. 따라서 확장 기능이나 도구를 사용할 이유가 없습니다.
코드 줄 수를 계산하는 기능-지표 계산. 이를 통해 각 프로젝트 또는 솔루션에 대한 메트릭 (LOC, 유지 관리 인덱스, 순환 인덱스, 상속 심도)을 계산할 수 있습니다.
솔루션 탐색기에서 솔루션 또는 프로젝트를 마우스 오른쪽 버튼으로 클릭하면
'계산 계산'을 선택하십시오.
분석 및 집계에 대한 최신 데이터를 Excel로 가져올 수 있습니다. 또한 Excel에서는 생성 된 클래스 또는 기타 메트릭에서 노이즈를 필터링 할 수 있습니다. 코드 라인 LOC를 포함한 이러한 메트릭은 빌드 프로세스 중에 수집되어 빌드 보고서에 포함될 수 있습니다.
VS2010과 2012 사이에서 정규 표현식이 변경되었으므로 여기에서 대부분의 정규 표현식 솔루션이 더 이상 작동하지 않습니다.
(^(?!(\s*//.+)))+(^(?!(#.+)))+(^(?!(\s*\{.+)))+(^(?!(\s*\}.+)))+(^(?!(\s*\r?$)))+
공백이 아닌 #include 또는 기타 전처리 기가 아닌 단일 괄호 ( '{'또는 '}')가 아닌 모든 행을 찾습니다.
사용 Ctrl- shift- f있는지 정규 표현식가 활성화되어 있는지 확인하십시오.
VS 2010 이상에 해당하는 정규식은
^~(:Wh@//.+)~(:Wh@\{:Wh@)~(:Wh@\}:Wh@)~(:Wh@/#).+
향후 독자들을 위해 Visual Studio 2010 용 DPack 확장 기능 을 조언하고 싶습니다 .
얼마나 많은 라인이 비어 있는지, 코드 등을 나타내는 라인 카운터를 포함하여 내장 된 유틸리티가 많이 있습니다.
당신은 사용할 수 있습니다 :
OxyProject Metrics VS Addin을 선호합니다 .
분명히 도구가 더 쉽지만 powershell 에서이 작업을 수행하는 것이 좋습니다. :)
이 스크립트는 .sln 파일에서 모든 .csproj 참조를 찾은 다음 각 csproj 파일 내에서 컴파일에 포함 된 파일을 찾습니다. 컴파일에 포함 된 각 파일에 대해 솔루션, 프로젝트, 파일, 라인 등의 속성을 가진 객체를 만듭니다. 이러한 모든 개체를 목록에 저장 한 다음 필요에 따라 데이터를 그룹화하고 투사합니다.
#path to the solution file e.g. "D:\Code\Test.sln"
$slnFile = "D:\Code\Test.sln"
#results
$results = @()
#iterate through .csproj references in solution file
foreach($projLines in get-item $slnFile | Get-Content | Select-String '".*csproj')
{
$projFile = [System.IO.Path]::Combine([System.IO.Path]::GetDirectoryName($slnFile), [regex]::Match($projLines,'[^"]*csproj').Value)
$projFolder = [System.IO.Path]::GetDirectoryName($projFile)
#from csproj file: get lines for files to compile <Compile Include="..."/>
$includeLines = get-item $projFile | Get-Content | Select-String '<Compile Include'
#count of all files lines in project
$linesInProject = 0;
foreach($fileLine in $includeLines)
{
$includedFilePath = [System.IO.Path]::Combine($projFolder, [Regex]::Match($fileLine, '"(?<file>.*)"').Groups["file"].Value)
$lineCountInFile = (Get-Content $includedFilePath).Count
$results+=New-Object PSObject -Property @{ Solution=$slnFile ;Project=$projFile; File=$includedFilePath; Lines=$lineCountInFile }
}
}
#filter out any files we dont need
$results = $results | ?{!($_.File -match "Designer")}
#print out:
"---------------lines per solution--------------"
$results | group Solution | %{$_.Name + ": " + ($_.Group | Measure-Object Lines -Sum).Sum}
"---------------lines per peoject--------------"
$results | group Project | %{$_.Name + ": " + ($_.Group | Measure-Object Lines -Sum).Sum}
VS2008의 다른 간단한 도구 (오픈 소스) : http://www.accendo.sk/Download/SourceStat.zip
Visual Studio Code Metrics PowerTool 10.0을 사용할 수 있습니다 . 관리되는 코드 (코드 라인 포함)의 몇 가지 메트릭을 계산하는 명령 줄 유틸리티입니다. 도구를 Visual Studio로 가져 와서 메뉴 항목을 선택하고 "솔루션 분석"을 클릭하는 것보다 빠른 VS 2010 플러그인을 얻을 수 있습니다 .
Ali Parr에 동의하십시오. WndTab Line Counter 애드 인은 그러한 도구입니다. http://www.codeproject.com/KB/macros/linecount.aspx
다운로드 사이트에서 검색하여 관련 도구를 찾는 것이 좋습니다. http://www.cnet.com/1770-5_1-0.html?query=code+counter&tag=srch
여기는 트릭입니다. Js 파일도 계산합니다.
http://www.spoiledtechie.com/post/2011/11/22/How-To-Count-Lines-of-Code-in-Visual-Studio.aspx
Visual Studio 2010에서 Project Line Counter 추가 기능을 사용할 수 있습니다. 일반적으로 Visual Studio 2010에서는 작동하지 않지만 http://www.onemanmmo.com/index 의 유용한 .reg 파일에서는 작동 합니다. php? cmd = newsitem & comment = news.1.41.0
폴더 구조에서 줄을 세는 빠르고 더러운 powershell 스크립트를 생각해 냈습니다. 다른 답변에서 참조 된 다른 도구와 거의 같은 기능은 아니지만 프로젝트 또는 솔루션에서 코드 파일의 크기를 서로 비교할 수 있으면 충분하다고 생각합니다.
스크립트는 여기에서 찾을 수 있습니다.
넵튠을 사용해보십시오. 또한 LoC 외에도 공백, 탭, 주석 줄과 같은 내용을 제공합니다. http://neptuner.googlecode.com/files/neptuner_0_30_windows.zip