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
검색 창에 입력하고 정규식 상자를 활성화합니다. 그런 다음 검색 결과의 화면 끝에 검색된 파일 수와 코드 줄이 있습니다.
VS2005, 2003 및 2002 용 오픈 소스 라인 카운터는 여기에서 사용할 수 있습니다.
Codeproject의 코드로 완성 된 라인 카운팅 VS 애드 인 생성에 대한 논의도 있습니다.
http://www.codeproject.com/KB/macros/LineCounterAddin.aspx
또한 Slick Edit Gadgets에는 멋진 라인 카운터가 있습니다.
http://www.slickedit.com/products/slickedit
Microsoft Visual Studio Team System 2008에는 좋은 라인 카운터가 포함되어 있습니다.
그래도 기억하십시오.
코드 줄로 프로그래밍 진행률을 측정하는 것은 항공기 제작 진행률을 무게로 측정하는 것과 같습니다. 빌 게이츠
이 팁을 찾았 습니다. VS 찾기 및 사용하는 LOC
그것이 당신이 찾고있는 것이라면 그것이 아닙니다.
다음은 "찾기"옵션을 수행하려는 사용자를위한 Visual Studio 2012/2013/2015 업데이트입니다 (가장 쉬운 방법 임).이 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 발표를 좋아하기 때문에 잠시 동안 갇혀 있습니다. 다른 사람이 도움이 되셨기를 바랍니다. 질문이 있거나 작동하는 데 도움이 필요하면 알려주세요.
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 세대. 동등 -------------------------------------------------- ----------------------------- 펄 2052 110356 112521 309778 x 4.00 = 1239112.00 C 135 18718 22862 140483 x 0.77 = 108171.91 C / C ++ 헤더 147 7650 12093 44042 x 1.00 = 44042.00 본 쉘 116 3402 5789 36882 x 3.81 = 140520.42 리스프 1684 2242 7515 x 1.25 = 9393.75 7498473 2044 x 2.50 = 5110.00 만들기 C ++ 10312277 2000 x 1.51 = 3020.00 XML 26231 0 1972 x 1.90 = 3746.80 yacc 2128 97 1549 x 1.51 = 2338.99 YAML 2 20 489 x 0.90 = 440.10 DOS 배치 11 85 50322 x 0.63 = 202.86 HTML 1 19 2 98 x 1.90 = 186.20 -------------------------------------------------- ----------------------------- 합계 : 2510 142085 156406 547174 x 2.84 = 1556285.03 -------------------------------------------------- -----------------------------
3 세대에 해당하는 척도는 3 세대 언어 에서 얼마나 많은 코드가 소요 될지 대략적인 추정치입니다 . 별로 유용하지는 않지만 어쨌든 흥미 롭습니다.
여기에 대한 답변은 약간 구식이며 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 Team System 2008에서는 메뉴 분석-> '솔루션에 대한 코드 메트릭 계산'에서 수행 할 수 있으며 전체 솔루션의 줄 수를 제공합니다 (그 중에서도 g ).
미래의 독자를 위해 Visual Studio 2010 용 DPack 확장에 대해 조언하고 싶습니다 .
빈 줄, 코드 등을 알려주는 줄 카운터를 포함하여 많은 유틸리티가 내장되어 있습니다.
간단한 해결책은 모든 파일을 검색하는 것입니다. 와일드 카드를 사용하는 동안 "*"를 입력합니다. 모든 라인과 일치합니다. 찾기 결과 창 끝에 다음과 같은 정렬 된 행이 표시됩니다.
Matching lines: 563 Matching files: 17 Total files searched: 17
물론 이것은 큰 프로젝트에는 그다지 좋지 않습니다. 모든 라인은 결과 찾기 창에서 표시 될 수 있도록 메모리에 저장되고로드되기 때문입니다.
참고:
다음을 사용할 수 있습니다.
- SCLOCCount http://www.dwheeler.com/sloccount/- 오픈 소스
- loc 메트릭, http://www.locmetrics.com/- 오픈 소스는 아니지만 사용하기 쉽습니다.
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 2010 Ultimate에서 메뉴-> 분석-> 코드 메트릭 계산 옵션을 사용합니다.
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
무료 도구 SourceMonitor를 사용할 수 있습니다.
코드 줄, 문 수, 복잡성, 블록 깊이 등 많은 측정 값을 제공합니다.
차트를 통해 그래픽 출력이 있음
Visual Studio 2010에서 Project Line Counter 추가 기능을 사용할 수 있습니다. 일반적으로 Visual Studio 2010에서는 작동하지 않지만 http://www.onemanmmo.com/index 에서 유용한 .reg 파일을 사용합니다 . php? cmd = newsitem & comment = news.1.41.0
폴더 구조에서 줄을 세는 빠르고 더러운 powershell 스크립트를 생각해 냈습니다. 다른 답변에서 참조 된 다른 도구 중 일부만큼 완전한 기능은 아니지만 프로젝트 또는 솔루션에서 서로 상대적인 코드 파일의 크기를 대략적으로 비교하는 데 충분하다고 생각합니다.
스크립트는 여기에서 찾을 수 있습니다.
https://gist.github.com/1674457
neptuner를 사용해보십시오. 또한 LoC 외에도 공백, 탭, 주석 줄과 같은 항목을 제공합니다. http://neptuner.googlecode.com/files/neptuner_0_30_windows.zip
Visual Studio 2015에서 분석 메뉴로 이동하여 "코드 메트릭 계산"을 선택합니다.
'ProgramingTip' 카테고리의 다른 글
딜레마 : 프래그먼트와 활동을 사용하는 경우 : (0) | 2020.09.29 |
---|---|
목록 이해력에 권한이 있습니까? (0) | 2020.09.29 |
WebSockets vs. Server-Sent 이벤트 / EventSource (0) | 2020.09.29 |
Visual Studio에서 전체 디렉터리 구조를 "기존 항목 추가"어디에서 있습니까? (0) | 2020.09.29 |
Node.js의 console.log ()에서 '[Object]'대신 전체 객체를 얻으려면 어떻게해야합니까? (0) | 2020.09.29 |