LazowskiAnton · Extensions

TidySmith

C# 코드를 팀이 원하는 순서로: 미리 보기와 한 번의 실행 취소로 멤버를 정렬하고 그룹화, 규칙에 따른 영역, 줄 길이에 맞춘 주석 줄 바꿈 — 그리고 정리할 수 있는 곳에는 편집기에 회색 점이 표시됩니다.

무료 · Visual Studio 2022 및 2026 · UI 14개 언어 · 원격 분석 없음

TidySmith를 쓰는 이유

Order Members 전후의 클래스: 상수와 필드가 먼저, 그다음 생성자, 속성, 메서드

설계부터 안전

Roslyn 구문 트리를 기반으로 합니다. 멤버는 주석, 문서, 특성과 함께 이동하고, #if와 #region 블록을 절대 넘지 않으며, 안전하게 정렬할 수 없는 클래스는 그대로 둡니다. 먼저 미리 보기로 차이를 보여 주고, 적용은 실행 취소 한 번으로 되돌릴 수 있습니다.

팀의 순서

그룹 순서, 액세스 수준, 정적 멤버, 이름 — 옵션 페이지에서 설정하거나 .editorconfig에 넣으면 모두가 같은 결과를 얻습니다. StyleCop과 CodeMaid 사전 설정이 기본 제공됩니다.

설명서 없이도 발견

순서가 맞지 않는 클래스나 너무 긴 주석 아래에 회색 점이 표시되고, Ctrl+.가 Visual Studio 작업 옆에 수정 방법을 제안합니다. 명령을 익히면 힌트를 끄세요.

조건 없는 무료

구독, ‘Pro’ 버전, 데이터 수집이 없고 출력 창이나 시작 시 메시지도 없습니다. 부탁드리는 것은 단 하나, 어느 정도 사용해 보신 뒤 Marketplace에 평가를 남겨 주시는 것뿐입니다. Visual Studio 2022 및 2026, x64 및 ARM64에서 작동합니다.

기능

모든 명령은 편집 › TidySmith와 코드 편집기의 상황에 맞는 메뉴(마우스 오른쪽 클릭 › TidySmith)에 있습니다. Order Members는 솔루션 탐색기의 파일, 폴더, 프로젝트의 상황에 맞는 메뉴에도 있습니다.

멤버 정렬

Order Members…는 클래스의 멤버를 종류(상수, 필드, 생성자, 속성, 메서드…), 액세스 수준(public 먼저), 정적 멤버를 인스턴스 멤버보다 먼저, 원하면 이름순으로 정렬합니다 — 옵션 페이지나 .editorconfig에서 설정한 순서대로.

시작용 사전 설정: TidySmith(오버로드와 인터페이스 구현을 함께 유지), StyleCop(SA1201, SA1202, SA1204 — 엄격하게 액세스 수준순), CodeMaid(CodeMaid 기본값, CodeMaid에서 옮겨 오는 팀용).

편집기의 힌트

TidySmith가 도울 수 있는 곳에서는 이름 아래에 회색 점 세 개가 표시됩니다 — Visual Studio가 자체 제안을 표시하는 방식 그대로입니다. 포인터를 올리면 내용이 표시되고, Ctrl+.가 변경 미리 보기와 함께 수정을 제안합니다.

클래스 이름과 긴 주석 아래의 회색 점, “멤버 정렬”과 그 미리 보기가 표시된 전구
캐럿 위치Ctrl+.가 제안하는 작업
클래스의 이름클래스 또는 파일의 멤버 정렬, 규칙에 따라 영역 추가, 클래스의 영역 제거, 구조 창에서 열기
줄 길이보다 긴 주석주석 줄 바꿈
#region 줄이 영역 제거(코드는 유지)
선택한 여러 줄줄 정렬(평면 목록만), 줄 연결

점은 순서가 맞지 않는 클래스, 줄 길이보다 긴 주석, 규칙과 다른 영역에만 표시됩니다 — 그 밖에는 없습니다. 점과 전구 작업은 각각 따로 켜고 끌 수 있으며, “내가 변경한 파일에서만”을 켜면 오래된 코드에는 아무것도 표시되지 않습니다.

규칙에 따른 영역

Add Regions to This File…는 미리 보기 후 규칙이 정한 곳에 #region 줄을 넣습니다. 영역은 팀이 결정할 일이므로 기본값은 영역 없음입니다. 선택할 때까지 명령은 설정을 엽니다.

영역 규칙과 Fields, Methods, IDisposable 영역이 있는 클래스

StyleCop 규칙 SA1124는 영역을 금지합니다. 그래서 기본값이 영역 없음이고, 이 설정에서는 저장 시 정리가 영역을 제거합니다.

줄에 맞는 주석

Format Comment는 캐럿 위치의 // 또는 /// 주석(또는 파일의 모든 주석)을 줄 길이 — .editorconfig의 max_line_length 또는 120 — 에 맞춰 줄 바꿈합니다. 긴 줄은 나누고, 짧은 줄은 합치며, 긴 <summary>는 별도 줄에 둡니다. 코드 샘플(<code>), 목록, 구분선, 주석 처리된 코드는 그대로 유지됩니다.

Format Comment 전후의 문서 주석

저장 시 정리

C# 파일을 저장할 때 TidySmith는 멤버를 정렬하고, 규칙에 따라 영역을 지정하고, 주석을 줄 바꿈하고, 후행 공백과 불필요한 빈 줄을 제거할 수 있습니다 — 각 단계마다 스위치가 따로 있습니다. 저장하는 파일만 대상이며 생성된 파일은 절대 건드리지 않습니다. 변경 내용은 상태 표시줄에 표시되고, Ctrl+Z로 되돌릴 수 있습니다. Tidy This File은 같은 단계를 필요할 때 실행합니다.

기본값은 꺼짐입니다. Order Members가 팀이 원하는 결과를 낸 다음에 켜세요 — 그렇지 않으면 오래된 파일을 처음 저장할 때 전체가 재정렬됩니다.

구조 창

보기 › 다른 창 › TidySmith Structure: 활성 C# 파일의 형식과 멤버. 캐럿을 따라가고, 클릭하면 멤버로 이동하며, 검색으로 필터링하고, 멤버를 다른 멤버 위로 끌면 그 자리로 이동합니다 — Order Members와 같은 안전한 이동입니다. 메서드에는 길이와 순환 복잡도가 표시되고, 옵션 페이지의 한도를 넘으면 주황색이 됩니다.

클래스의 멤버와 주황색으로 표시된 긴 메서드가 있는 구조 창

작은 도우미

CodeMaid에서 아쉬웠던 명령들을 편집 › TidySmith와 편집기의 상황에 맞는 메뉴에.

Switch File

현재 파일에 딸린 파일 — 마크업과 그 코드, 리소스 파일과 그 디자이너, 코드와 그 테스트 — 을 솔루션 탐색기에서 찾지 않고 엽니다.

원본대상(및 반대로)
MainWindow.xamlMainWindow.xaml.cs
Order.razorOrder.razor.cs
Index.cshtmlIndex.cshtml.cs
Strings.resxStrings.Designer.cs
MainForm.csMainForm.Designer.cs
OrderService.csOrderServiceTests.cs — 솔루션의 테스트 프로젝트에서도, …Test.cs와 ….Tests.cs도

메뉴에 대상 이름(“Switch to OrderServiceTests.cs”)이 표시되고, 갈 곳이 없으면 비활성화됩니다. 바로 가기 키를 직접 지정하면 빛을 발합니다 — 아래를 참조하세요.

Sort Selected Lines

using, 열거형 멤버, 목록 항목을 정렬합니다. 쉼표는 목록에 필요한 위치에 남습니다. 평면 목록 — 한 줄에 항목 하나, 같은 들여쓰기, 빈 줄 없음, 문 없음 — 만 정렬하므로 실수로 메서드나 파일 전체를 선택해도 뒤섞이지 않습니다. 이유는 상태 표시줄에 표시됩니다.

Join Lines

선택한 줄을 한 줄로 합치거나, 캐럿이 있는 줄을 다음 줄과 합칩니다.

Find This File in Solution Explorer

편집기의 파일을 솔루션 탐색기에서 선택합니다.

Collapse All Regions 및 Expand All Regions

#region 블록만 축소하거나 확장합니다. 메서드는 그대로입니다. Ctrl+M, Ctrl+O(메서드도 축소)나 Ctrl+M, Ctrl+L(모두)과 다릅니다.

기본적으로 바로 가기 키를 차지하지 않습니다 — Visual Studio의 키는 그대로입니다. 도구 › 옵션 › 환경 › 키보드에서 원하는 명령에 키를 지정하세요. “다음 문자열을 포함하는 명령 표시”에 TidySmith.를 입력하면 됩니다.

설정

도구 → 옵션 → SmithWorks → TidySmith. 모든 옵션에 설명이 있습니다.

옵션기본값
전구(Ctrl+.)의 TidySmith 작업켜짐
정리할 수 있는 곳의 회색 점켜짐
멤버 순서TidySmith 사전 설정
정렬하기 전에 미리 보기켜짐
영역영역 없음
주석 줄 길이120
저장 시 정리꺼짐
긴 메서드(줄 수) · 복잡한 메서드60 · 10
Marketplace 평가 요청켜짐

설정은 %LocalAppData%\TidySmith에 저장됩니다. .editorconfig에 값이 있으면 그 값이 우선합니다.

TidySmith 옵션 페이지
옵션 페이지.

리포지토리별: .editorconfig

규칙을 코드 옆에 두면 팀 전체가 같은 결과를 얻습니다. .editorconfig의 값은 옵션 페이지보다 우선합니다(“.editorconfig의 순서 사용”이 꺼져 있는 경우 제외).

[*.cs]
tidysmith_member_order = stylecop
tidysmith_regions = kind
tidysmith_region_min = 2
max_line_length = 120
키값
tidysmith_member_ordertidysmith, stylecop, codemaid 또는 순서대로 나열한 그룹: constants, fields, constructors, properties, methods…
tidysmith_regionsnone, kind, access, kind_access
tidysmith_region_min영역을 만드는 최소 멤버 수: 2
max_line_length주석을 줄 바꿈하는 줄 길이

자주 묻는 질문

CodeMaid와 무엇이 다른가요?

TidySmith는 오래된 코드 모델 대신 Roslyn 구문 트리에서 작동하므로 #if, 주석, 특성이 제자리에 남습니다. 미리 보기를 보여 주고 실행 취소 한 번이면 됩니다. 순서를 .editorconfig에 둘 수 있습니다. x64 및 ARM64의 Visual Studio 2022 및 2026에서 실행됩니다. C#만 지원하며, 이제 Visual Studio가 자체적으로 하는 기능(코드 정리, 빌드 진행률)은 빠져 있습니다.

클래스가 정렬되지 않은 이유는 무엇인가요?

정렬하면 클래스가 깨지거나 엉망이 될 수 있을 때 TidySmith는 그 클래스를 건드리지 않습니다: 구문 오류, 중괄호와 같은 줄의 멤버, 한 줄에 멤버 둘. #if 또는 #region 안의 멤버는 해당 블록 안에서만 이동합니다. 생성된 파일은 절대 건드리지 않습니다.

변경을 되돌릴 수 있나요?

예. 모든 명령과 모든 저장은 한 번의 편집이므로 Ctrl+Z 한 번으로 되돌릴 수 있습니다. 솔루션 탐색기에서 처리할 때 열려 있지 않은 파일은 디스크에 기록됩니다 — 그 경우에는 버전 관리를 사용하세요.

Sort Selected Lines가 아무것도 하지 않은 이유는 무엇인가요?

평면 목록만 정렬하므로, 코드인 선택 영역 — 문, 블록, 들여쓰기가 다른 줄이나 사이에 빈 줄이 있는 줄 — 은 절대 뒤섞이지 않습니다. 상태 표시줄에 그렇게 표시됩니다.

Add Regions가 아무것도 하지 않습니다.

기본 규칙은 영역 없음입니다. 설정의 [영역] 그룹(명령이 열어 줌)에서 나누는 방법을 선택하거나 .editorconfig에서 tidysmith_regions를 설정하세요.

VB, C++, XAML은요?

TidySmith는 C#용입니다. 요청이 있으면 다른 언어도 지원할 수 있습니다 — Feedback 리포지토리에서 알려 주세요.

TidySmith는 데이터를 전송하나요?

아니요. 모든 작업은 Visual Studio 안에서 사용자의 파일에 대해 실행되며, 어디에도 아무것도 전송되지 않습니다 — 원격 분석도, 요청도 없습니다.

문제를 보고하거나 기능을 제안하려면 어디로 가야 하나요?

GitHub의 Feedback 리포지토리에 이슈를 등록하세요. 버그와 아이디어를 위한 양식이 있습니다(비공개 이름은 바꿔 주세요). Marketplace의 Q&A 탭을 이용할 수도 있습니다.

변경 내역

1.0.2

1.0.1

1.0.0