C# 스타일 Default 를 Allman 으로 이름 바꿈 · 웹 문서(매뉴얼·발표·기획안·시연) 원본
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
6bd2bb7619
commit
aed24b9bfa
@ -17,7 +17,7 @@ powershell -ExecutionPolicy Bypass -File demo\make-demo.ps1
|
||||
| 폴더 | 시연 | 볼 것 |
|
||||
|---|---|---|
|
||||
| `plain\left` · `plain\right` | 폴더 비교 | 같음 `Same.cs` · 다름 `CodeDiff.cs` · 주석만 다름 `CommentOnly.cs` · 머지 주석만 다름 `MergeNoteOnly.cs` · C# 스타일만 다름 `StyleOnly.cs` · 한쪽만 `LeftOnly.cs` / `RightOnly.cs` · XAML `Views\Recipe.xaml` · CP949 한글 `한글설명.cs` · 이진 `Logo.png` |
|
||||
| `style\Default.cs` · `style\Aurora.cs` | C# 스타일 맞춤 | 스타일 끔 **남은 차이 39줄** → AURORA 또는 Default **1줄**(`RetryCount` 3 → 5, 진짜 변경) |
|
||||
| `style\Allman.cs` · `style\Aurora.cs` | C# 스타일 맞춤 | 스타일 끔 **남은 차이 39줄** → AURORA 또는 Allman **1줄**(`RetryCount` 3 → 5, 진짜 변경) |
|
||||
| `mergetool\` | `git mergetool` 네 칸 | BASE · LOCAL · REMOTE 세 벌, 결과 `Weld.cs` 는 git 모양 충돌 표시. 충돌 1 · 상대만 고친 줄 1 |
|
||||
| `big\` | 큰 파일 | 7,479줄. 끝까지 줄 번호 · "마지막 차이" 로 멀리 건너뛰기 |
|
||||
| `D:\MergeHubDemo\repo` | 병합 | 아래 |
|
||||
@ -39,7 +39,7 @@ mergetool 네 칸으로 열기:
|
||||
| `Line/Conveyor.cs` | 같은 줄을 양쪽이 다르게 고침 | 충돌 → 네 칸에서 줄 단위로 |
|
||||
| `Line/Laser.cs` | 코드 줄 위에 서로 다른 머지 주석 줄 | **자동으로 풀림**, 두 주석이 다 남음 |
|
||||
| `Line/Camera.cs` | 코드 줄 끝에 서로 다른 머지 주석 | **자동으로 풀림**, 한 줄 끝에 두 주석 |
|
||||
| `Line/Style.cs` | 내 쪽 AURORA + 값 4, 상대 Default + 값 6 | 충돌. C# AURORA 를 고르면 남은 차이 39줄 → 1줄 |
|
||||
| `Line/Style.cs` | 내 쪽 AURORA + 값 4, 상대 Allman + 값 6 | 충돌. C# AURORA 를 고르면 남은 차이 39줄 → 1줄 |
|
||||
| `Line/NewPanel.cs` | 양쪽이 같은 이름으로 새 파일 | 충돌(BASE 없음) |
|
||||
| `Line/ToBeDeleted.cs` | 내가 고침 · 상대가 지움 | [파일 남기기] / [파일 지우기] |
|
||||
| `Line/한글설명.cs` | CP949 한글 파일에서 같은 줄 | 충돌, 저장해도 CP949 유지 |
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
#
|
||||
# 만드는 것
|
||||
# demo\plain\left · right 폴더 비교
|
||||
# demo\style\Default.cs · Aurora.cs C# 스타일 맞춤
|
||||
# demo\style\Allman.cs · Aurora.cs C# 스타일 맞춤
|
||||
# demo\mergetool\... git mergetool 네 칸
|
||||
# demo\big\... 7,479줄 큰 파일
|
||||
# -RepoRoot (기본 D:\MergeHubDemo\repo) 병합 시연 저장소 - 매번 지우고 새로 만든다
|
||||
|
||||
@ -8,7 +8,7 @@ using MergeHub.Services;
|
||||
//
|
||||
// demo 폴더 아래 (저장소에 커밋해 둔다)
|
||||
// plain\left, plain\right 폴더 비교
|
||||
// style\Default.cs, style\Aurora.cs C# 스타일 맞춤
|
||||
// style\Allman.cs, style\Aurora.cs C# 스타일 맞춤
|
||||
// mergetool\Weld_BASE.cs · Weld_LOCAL.cs · Weld_REMOTE.cs · Weld.cs git mergetool 네 칸
|
||||
// big\Big7479_left.cs · Big7479_right.cs 큰 파일
|
||||
// 저장소 경로 (기본 D:\MergeHubDemo\repo, 커밋하지 않는다 - 매번 새로 만든다)
|
||||
@ -86,14 +86,14 @@ void ResetFolder(string dir)
|
||||
ResetFolder(dir);
|
||||
|
||||
var sample = StyleSample();
|
||||
WriteText(Path.Combine(dir, "Default.cs"), sample);
|
||||
WriteText(Path.Combine(dir, "Allman.cs"), sample);
|
||||
|
||||
// AURORA 스타일로 바꾸고 진짜 변경을 한 줄 넣는다 - 스타일을 맞추면 이 한 줄만 남는다.
|
||||
var aurora = CSharpStyle.Format(sample, CSharpBraceStyle.Aurora)
|
||||
.Replace("public int RetryCount { get; set; } = 3;", "public int RetryCount { get; set; } = 5;");
|
||||
WriteText(Path.Combine(dir, "Aurora.cs"), aurora);
|
||||
|
||||
Console.WriteLine($" style\\Default.cs ({sample.Split('\n').Length - 1}줄) · style\\Aurora.cs ({aurora.Split('\n').Length - 1}줄, 진짜 변경 1줄)");
|
||||
Console.WriteLine($" style\\Allman.cs ({sample.Split('\n').Length - 1}줄) · style\\Aurora.cs ({aurora.Split('\n').Length - 1}줄, 진짜 변경 1줄)");
|
||||
}
|
||||
|
||||
// ================= 3. git mergetool 네 칸 =================
|
||||
|
||||
@ -694,7 +694,7 @@ MERGED 는 git 이 충돌 표시를 넣어 둔 파일이라, 두 칸으로는
|
||||
|
||||
## E-1. C# 코드 스타일 맞춤 (2026-09-14, 추가 요청, 완료)
|
||||
|
||||
사용자 요청: Visual Studio [텍스트 편집기 > C# > 코드 스타일 > 서식 > 줄 바꿈] 옵션 그림과 같은 스타일(AURORA)이 아니면 diff 가 많이 뜬다. C# 이면 그 스타일로 자동으로 맞춰 달라. AURORA 와 Default 를 고를 수 있게.
|
||||
사용자 요청: Visual Studio [텍스트 편집기 > C# > 코드 스타일 > 서식 > 줄 바꿈] 옵션 그림과 같은 스타일(AURORA)이 아니면 diff 가 많이 뜬다. C# 이면 그 스타일로 자동으로 맞춰 달라. AURORA 와 Allman 를 고를 수 있게.
|
||||
|
||||
### 그림에서 읽은 AURORA
|
||||
|
||||
@ -705,14 +705,14 @@ MERGED 는 git 이 충돌 표시를 넣어 둔 파일이라, 두 칸으로는
|
||||
| "else" · "catch" · "finally" 새 줄 | 끔(`} else {`) |
|
||||
| 개체 초기화 멤버 · 익명 형식 멤버 · 쿼리 절 새 줄 | ✓ (손대지 않는다) |
|
||||
|
||||
Default 는 Visual Studio 기본 - 모두 새 줄.
|
||||
Allman 은 모두 새 줄(Visual Studio 기본값과 같다). 처음에는 Default 라고 불렀으나 사용자 요청으로 바꿨다 - 팀에서 Default 는 C++ 스타일을 가리킨다.
|
||||
|
||||
### 만든 것
|
||||
|
||||
| 파일 | 무엇 |
|
||||
|---|---|
|
||||
| `Services/CSharpStyle.cs` (새) | 중괄호 · else/catch/finally 의 **줄 위치만** 옮긴다. 주석 · 문자열 · 보간 문자열 · 전처리 줄은 가려서 본다. 중괄호 앞 머리를 거꾸로 읽어 갈래(형식 · 메서드 · 속성 · 접근자 · 익명 메서드 · 제어 · 익명 형식 · 초기화 · 람다)를 정하고 옵션표대로 올리거나 내린다. 앞 줄 끝에 주석이 있으면 올리지 않는다. 판단할 수 없는 블록은 그대로. 바꿀 것이 없으면 받은 글 그대로 |
|
||||
| `ViewModels/HomeViewModel.cs` | 비교 규칙 칸에 [C# 스타일 끔 / C# AURORA / C# Default]. 고르면 원본부터 다시 읽어 BASE · LOCAL · REMOTE 를 맞춘다(Git 두 칸 · 네 칸 · 파일 두 개 · mergetool). 편집 칸 글이 바뀌면 저장할 것이 있는 상태, 저장하면 그 스타일로 파일에 쓴다. **스타일만 바뀐 편집은 파일을 바꿀 때 묻지 않는다**(묻게 두면 파일마다 창이 뜬다). 상태바 요약에 스타일 |
|
||||
| `ViewModels/HomeViewModel.cs` | 비교 규칙 칸에 [C# 스타일 끔 / C# AURORA / C# Allman]. 고르면 원본부터 다시 읽어 BASE · LOCAL · REMOTE 를 맞춘다(Git 두 칸 · 네 칸 · 파일 두 개 · mergetool). 편집 칸 글이 바뀌면 저장할 것이 있는 상태, 저장하면 그 스타일로 파일에 쓴다. **스타일만 바뀐 편집은 파일을 바꿀 때 묻지 않는다**(묻게 두면 파일마다 창이 뜬다). 상태바 요약에 스타일 |
|
||||
| `Services/FolderComparer.cs` · `FolderViewModel.cs` | 스타일만 다른 C# 파일은 **같음**. 줄끝이 다르면 가리지 않는다 |
|
||||
| `MergeHubSettings.cs` | [비교 옵션] "C# 코드 스타일 맞춤", 기본 끔 |
|
||||
|
||||
@ -720,16 +720,16 @@ Default 는 Visual Studio 기본 - 모두 새 줄.
|
||||
|
||||
### 확인한 것
|
||||
|
||||
만든 시연 재료(`demo\style\Default.cs` 132줄, `Aurora.cs` 는 같은 코드를 AURORA 로 맞추고 값 한 줄 `RetryCount` 3 → 5).
|
||||
만든 시연 재료(`demo\style\Allman.cs` 132줄, `Aurora.cs` 는 같은 코드를 AURORA 로 맞추고 값 한 줄 `RetryCount` 3 → 5).
|
||||
|
||||
| 확인 | 남은 차이 | 저장 |
|
||||
|---|---|---|
|
||||
| 스타일 끔 | **39줄** | 꺼짐 |
|
||||
| C# AURORA | **1줄** (RetryCount) | 꺼짐 - 편집 칸이 이미 AURORA |
|
||||
| C# Default | 1줄 | **켜짐** - 편집 칸이 Default 로 바뀜 |
|
||||
| C# Allman | 1줄 | **켜짐** - 편집 칸이 Allman 로 바뀜 |
|
||||
| 다시 끔 | 39줄 | 꺼짐, **확인 창 안 뜸** |
|
||||
|
||||
시연 저장소(`D:\MergeHubDemo\repo`)를 MergeHub 로 병합 → `Line/Style.cs`(내 쪽 AURORA + 값 4, 상대 Default + 값 6) 네 칸: 끔 **남은 충돌 1 · 차이 39줄** → AURORA **충돌 1 · 차이 1줄**.
|
||||
시연 저장소(`D:\MergeHubDemo\repo`)를 MergeHub 로 병합 → `Line/Style.cs`(내 쪽 AURORA + 값 4, 상대 Allman + 값 6) 네 칸: 끔 **남은 충돌 1 · 차이 39줄** → AURORA **충돌 1 · 차이 1줄**.
|
||||
|
||||
설정 화면에 저장된 값은 `"CSharpBraceStyle": 1`. 확인 뒤 설정 파일은 원래 바이트로 되돌렸다.
|
||||
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
|
||||
| 날짜 | 항목 | 커밋 |
|
||||
|---|---|---|
|
||||
| 2026-09-14 | **E-1 C# 코드 스타일 맞춤** — AURORA(형식 · 메서드만 새 줄, `} else {`) / Default(모두 새 줄)로 중괄호 줄바꿈을 맞춘 뒤 비교. 두 칸 · 네 칸 · mergetool · 폴더 비교, 설정. 스타일만 바뀐 편집은 파일을 바꿀 때 묻지 않음. StyleTest 78건 | 아래 |
|
||||
| 2026-09-14 | **E-1 C# 코드 스타일 맞춤** — AURORA(형식 · 메서드만 새 줄, `} else {`) / Allman(모두 새 줄)로 중괄호 줄바꿈을 맞춘 뒤 비교. 두 칸 · 네 칸 · mergetool · 폴더 비교, 설정. 스타일만 바뀐 편집은 파일을 바꿀 때 묻지 않음. StyleTest 78건 | 아래 |
|
||||
| 2026-09-14 | **E-2 시연 재료** — `demo\make-demo.ps1` · `tools\DemoMaker`. 지어낸 코드로 폴더 비교 · 스타일 · mergetool · 큰 파일 · 병합 저장소(`D:\MergeHubDemo\repo`) | 아래 |
|
||||
| 2026-09-14 | **6차 B-6** — 충돌 탭에서 여러 파일을 골라(Ctrl · Shift) Accept 를 한 번에. 작업 하나로 풀고 저장소 다시 읽기는 끝에 한 번. 같은 줄 충돌 15개 22.0초 → 1.2초 | 아래 |
|
||||
| 2026-09-14 | **6차 B-5** — 머지 주석을 비교에서 무시(주석 줄은 거르고 줄 끝 주석은 떼고 견줌). 주석만 다른 git 충돌은 양쪽 주석을 남겨 자동으로 풂. 정렬이 주석 줄과 코드 줄을 짝지으면 떼어 놓음. 폴더 비교도. 설정 [머지 주석] 에서 끔 | 아래 |
|
||||
|
||||
1424
doc/web/index.html
Normal file
1424
doc/web/index.html
Normal file
File diff suppressed because one or more lines are too long
@ -117,7 +117,7 @@
|
||||
|
||||
| 상태 | 항목 |
|
||||
|---|---|
|
||||
| **완료** | E-1 C# 코드 스타일 맞춤 (AURORA · Default) — 비교 전에 중괄호 줄바꿈을 맞춤. 두 칸 · 네 칸 · 폴더 비교, 설정. 스타일만 다른 파일 남은 차이 39줄 → 1줄 |
|
||||
| **완료** | E-1 C# 코드 스타일 맞춤 (AURORA · Allman) — 비교 전에 중괄호 줄바꿈을 맞춤. 두 칸 · 네 칸 · 폴더 비교, 설정. 스타일만 다른 파일 남은 차이 39줄 → 1줄 |
|
||||
| **완료** | E-2 발표 시연 재료 `demo\` — `make-demo.ps1` 한 번으로 폴더 비교 · 스타일 · mergetool · 큰 파일 · 병합 저장소 |
|
||||
| **완료** | E-3 웹 문서 — 사용자 매뉴얼 · 발표 자료 · 남은 일 · 개발 현황 · 기획안 최신화 · 시연 대본 · WinMerge 비교 |
|
||||
|
||||
|
||||
@ -69,11 +69,11 @@ namespace MergeHub
|
||||
|
||||
/// <summary>
|
||||
/// C# 파일을 비교하기 전에 중괄호 줄바꿈을 맞출 스타일(6차 추가).
|
||||
/// AURORA = 형식 · 메서드 중괄호만 새 줄, 나머지와 else/catch/finally 는 같은 줄. Default = Visual Studio 기본(모두 새 줄).
|
||||
/// AURORA = 형식 · 메서드 중괄호만 새 줄, 나머지와 else/catch/finally 는 같은 줄. Allman = 모두 새 줄(Visual Studio 기본값).
|
||||
/// 켜면 편집 칸의 결과도 그 스타일로 저장된다.
|
||||
/// </summary>
|
||||
[Category("비교 옵션")]
|
||||
[DisplayName("C# 코드 스타일 맞춤 (None=끔 · Aurora · Default)")]
|
||||
[DisplayName("C# 코드 스타일 맞춤 (None=끔 · Aurora · Allman)")]
|
||||
public MergeHub.Services.CSharpBraceStyle CSharpBraceStyle { get; set; } = MergeHub.Services.CSharpBraceStyle.None;
|
||||
|
||||
[Category("비교 옵션")]
|
||||
|
||||
@ -19,8 +19,8 @@ namespace MergeHub.Services
|
||||
/// </summary>
|
||||
Aurora = 1,
|
||||
|
||||
/// <summary>Visual Studio 기본. 여는 중괄호는 모두 새 줄, else · catch · finally 도 새 줄.</summary>
|
||||
Default = 2,
|
||||
/// <summary>Allman. 여는 중괄호는 모두 새 줄, else · catch · finally 도 새 줄(Visual Studio 기본값과 같다).</summary>
|
||||
Allman = 2,
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -62,7 +62,7 @@ namespace MergeHub.Services
|
||||
public static string Label(CSharpBraceStyle style) => style switch
|
||||
{
|
||||
CSharpBraceStyle.Aurora => "AURORA",
|
||||
CSharpBraceStyle.Default => "Default",
|
||||
CSharpBraceStyle.Allman => "Allman",
|
||||
_ => "끔",
|
||||
};
|
||||
|
||||
@ -97,7 +97,7 @@ namespace MergeHub.Services
|
||||
|
||||
/// <summary>그 갈래의 여는 중괄호를 새 줄에 둘지.</summary>
|
||||
public static bool OpenBraceOnNewLine(BraceKind kind, CSharpBraceStyle style) =>
|
||||
style == CSharpBraceStyle.Default || kind is BraceKind.Type or BraceKind.Method;
|
||||
style == CSharpBraceStyle.Allman || kind is BraceKind.Type or BraceKind.Method;
|
||||
|
||||
// ================= else · catch · finally =================
|
||||
|
||||
|
||||
@ -2786,7 +2786,7 @@ namespace MergeHub.ViewModels
|
||||
// ================= C# 코드 스타일 맞춤 (6차 추가) =================
|
||||
|
||||
/// <summary>콤보에 보이는 이름. 순서가 <see cref="CSharpBraceStyle"/> 값과 같다.</summary>
|
||||
public IReadOnlyList<string> CSharpStyleNames { get; } = new[] { "C# 스타일 끔", "C# AURORA", "C# Default" };
|
||||
public IReadOnlyList<string> CSharpStyleNames { get; } = new[] { "C# 스타일 끔", "C# AURORA", "C# Allman" };
|
||||
|
||||
/// <summary>
|
||||
/// 고른 스타일. 바꾸면 지금 파일을 <b>원본부터 다시 읽어</b> 그 스타일로 맞춘다.
|
||||
|
||||
@ -1669,7 +1669,7 @@
|
||||
<ComboBox ItemsSource="{Binding CSharpStyleNames}" SelectedIndex="{Binding CSharpStyleIndex}"
|
||||
MinHeight="26" FontSize="11" Margin="2,4,2,0"
|
||||
Visibility="{Binding IsRulesOpen, Converter={StaticResource BoolToVis}}"
|
||||
ToolTip="C# 파일의 여는 중괄호 · else/catch/finally 줄바꿈을 이 스타일로 맞춘 뒤 비교합니다.
AURORA: 형식 · 메서드 중괄호만 새 줄, 나머지는 같은 줄, } else {
Default: Visual Studio 기본 - 모두 새 줄
편집 칸 글이 바뀌면 저장할 때 그 스타일로 저장됩니다."/>
|
||||
ToolTip="C# 파일의 여는 중괄호 · else/catch/finally 줄바꿈을 이 스타일로 맞춘 뒤 비교합니다.
AURORA: 형식 · 메서드 중괄호만 새 줄, 나머지는 같은 줄, } else {
Allman: 모두 새 줄 (Visual Studio 기본값)
편집 칸 글이 바뀌면 저장할 때 그 스타일로 저장됩니다."/>
|
||||
<Button Content="{Binding ReadOnlyLabel}" Click="ToggleReadOnly_Click"
|
||||
MinHeight="28" FontSize="11" Margin="2,4,2,0"
|
||||
Visibility="{Binding IsRulesOpen, Converter={StaticResource BoolToVis}}"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user