전체 VS 솔루션의 모든 파일에서 탭을 대체하는 도구 / 트릭
내 솔루션 (30 개 이상의 프로젝트)은 탭과 공백을 혼합 할 때 약간 엉망이며 한 번의 쉬운 단계로이 문제를 해결하고 싶습니다.
누구든지 전체 솔루션에 대해 한 단계로이 작업을 수행하는 트릭 / 도구를 알고 있습니까?
편집 : 정확히 내가 의미하는 것은 아닙니다. 문서의 형식이 잘 지정 되었으면합니다. 찾기 / 바꾸기 만하면 안됩니다 .. 문서는 여전히 엉망입니다. 형식-> 고급-> 문서 형식 명령과 같은 것을 원합니다.
파일에 솔루션 전체에 걸쳐 동일한 너비의 탭으로 공백이 포함 된 경우 (예 : 탭당 4 개의 공백) 일반 VS Quick replace
도구 를 사용해야합니다 . StyleCop
의 서식 규칙 을 따르 Quick replace
려면 탭 대신 공백을 사용해야하므로 (CTRL-h) 로 이동하여 선택 Use wildcard
하고 Find what
필드 에서 \t
기호 를 사용 하여 모든 솔루션 ( Look in
필드)에 대해 4 개의 공백으로 대체 할 수 있습니다 .
그러나 솔루션 파일에 너비가 다른 공백으로 구성된 탭이 포함되어 있거나 단일 스타일 형식 을 적용 하려면 Resharper 의 기능을 사용하여 코드를 다시 형식화해야합니다. 이 기능을 코드 정리 라고 합니다. code cleanup
전체 솔루션 또는 선택한 프로젝트에 적용하려면 솔루션 탐색기로 이동하여 Cleanup code
상황에 맞는 메뉴에서 선택 합니다. 그러나 전체 솔루션에서 재 포맷을 시작하기 전에 하나의 파일에서 수정하고 Resharper 설정에 많은 옵션이 있습니다.
당신은 간다 :
using System;
using System.IO;
class _Runner {
static void Main(string[] args) {
var root=args[0];
var filePaths = Directory.GetFiles(root, "*.cs", SearchOption.AllDirectories);
int updated = 0;
foreach (var path in filePaths) {
var content = File.ReadAllText(path);
var replaced = content.Replace(" ", "\t");
if (replaced == content) {
continue;
}
++updated;
Console.WriteLine("fixing " + path);
File.WriteAllText(path, replaced);
}
Console.WriteLine("fixed {0} files", updated);
}
}
으로 저장 spaces-to-tabs.cs
하고 다음을 실행합니다.
C:>c:\Windows\Microsoft.NET\Framework\v3.5\csc spaces-to-tab.cs
C:>spaces-to-tabs.exe C:\path\to\your\solution
Windows에서 작업 할 때 이러한 긴급 상황을 대비하여 유닉스 도구 디렉토리를 내 경로에 보관합니다. 예를 들어, 이것은 c : \ myproject 디렉토리 또는 하위 디렉토리의 모든 .cs 파일에서 모든 탭을 공백 4 개로 대체합니다.
find c:\myproject -name *.cs -exec sed -i -e "\"s/\t/ /g\"" {} ";"
간단하고 빠른 방법은 메모장 ++에서 파일을 열고 수동으로 바꾸거나 ( '모든 문자 표시'를 켜면 탭이 강조 표시됨) 자동으로 바꾸는 것입니다 ( '설정'으로 재생해야 함).
완벽한 솔루션은 아니지만 "Fix Mixed Tabs"확장은 큰 도움이됩니다. https://marketplace.visualstudio.com/items?itemName=VisualStudioProductTeam.FixMixedTabs
기본적으로 탭 / 공백 공백이 혼합 된 파일을 열면 파일 상단에 도구 모음이 팝업되어 정규화 할 수 있습니다.
ctrl-h, "찾아보기 :"를 "전체 솔루션"으로 설정
또한 매크로를 기록 할 수 있습니다.
'developer tip' 카테고리의 다른 글
프로그램이 32 비트 또는 64 비트라는 것은 무엇을 의미합니까? (0) | 2020.12.25 |
---|---|
부울 getter 메소드에 대한 유효한 JavaBeans 이름 (0) | 2020.12.25 |
$ Bundle 설치와 $ Bundle 업데이트의 차이점 (0) | 2020.12.25 |
IntelliJ 자동 저장 끄기 (0) | 2020.12.25 |
APP_INITIALIZER는“순환 종속성을 인스턴스화 할 수 없습니다! (0) | 2020.12.25 |