diff --git a/doc/history/2026-09-18-11차.md b/doc/history/2026-09-18-11차.md
index 9b9ad3b..dc8ff48 100644
--- a/doc/history/2026-09-18-11차.md
+++ b/doc/history/2026-09-18-11차.md
@@ -163,6 +163,7 @@ A-1 에서 값으로 확인한 것 — 지운 파일은 "삭제되어 건너뜀
- F-2: [이 메서드 반영](C# · C/C++, 클래스 멤버 통째, 단추 아래 한 줄에 잡은 범위 · 못 잡은 까닭), 덩어리 · 메서드 반영은 주석 한 줄 · 로그 한 줄 · Undo 한 번. 매뉴얼의 반영 단추 설명에. 숫자 23벌 1,395건.
- F-3: 매뉴얼 "탐색기에서 열기" — 여러 개를 골라 보내면 앞의 둘(3개 이상은 알림), 폴더 둘은 바로 폴더 비교, 260자 넘는 경로는 열지 못함(알림), 배포 묶음을 옮겨도 켜면 보내기 바로가기가 따라옴, 설치 파일 필요 없음. 알아 둘 한계에 "떠 있어도 새 창". 숫자 23벌 1,411건.
- F-4: 매뉴얼 파일 비교 화면 — [ACTIONS 감추기] · F9, 아래 탭 줄 [탭 접기] · 띠 · F11(플랫폼), 단축키 표에 F9 · F11. 숫자 23벌 1,414건 · 플랫폼 31건.
+- F-5: 매뉴얼 설정 표 "보기 > 코드 글자 크기", 파일 비교 화면 Ctrl+휠 · Ctrl++/- · Ctrl+0 · 상태 줄 `글자 N`, 단축키 표. 숫자 24벌 1,538건.
## B-1. 배포 묶음을 다시 만들고 꼭 필요한 파일을 가림 (2026-09-22, 완료)
@@ -691,6 +692,40 @@ libgit2 의 다듬기(`PrettifyMessages`)를 켜면 **손대지 않은 뒤 커
- ~~플랫폼 배포~~ — 사용자 "배포해줘" 뒤 `publish-platform.ps1`(16:22, 경고 0 · 오류 0, 48개 가운데 Core · Shell · README 셋 바뀜). MergeHub Debug 를 다시 빌드해 두 파일 해시가 배포본과 같음, 배포본으로 [탭 접기] → 24px 띠 → 띠로 펴기 확인(`f4-deployed.ps1`, 화면 설정 · MergeHub 설정 바이트 그대로 되돌림).
- F-6(넓게 보기)에서 몇 줄이 늘었는지 1920 × 1080 기준으로 다시 잰다.
+## F-5. 코드 글자 크기 조절 (2026-09-22, 완료)
+
+사용자: "모니터 해상도와 관계없이 모든 모니터에 적용될 수 있도록 하면 좋겠는데".
+
+### 먼저 본 것
+
+- 코드 칸은 `Consolas 12` · 줄 높이 20 으로 박혀 있었다 — 행 템플릿 넷 · 편집기 · `CodeLineHeight` 리소스(StaticResource) · `MergeLine.MinimumRowHeight = 20` 상수. 여백도 번호 46(LOCAL 은 표식 6 + 번호 40) + 단추 20 = 66, 단추 높이 14 · 글자 9 로 박혀 있어 글자만 키우면 번호가 잘리고, 줄이면 단추가 줄보다 커지고 행이 20 아래로 줄지 않는다.
+- 플랫폼은 PerMonitorV2 라 WPF 단위(1/96 인치)의 크기는 창이 있는 모니터의 Windows 배율에 맞춰 다시 그려진다.
+
+### 정한 것 (2026-09-22 사용자)
+
+**한 값을 모든 모니터에**(모니터 배율은 플랫폼이 맞춤), **코드 칸만**(앱 전체는 이미 UI Setting 화면 배율), **Ctrl+휠 · Ctrl++/- · Ctrl+0 + 설정**, 8~24.
+
+### 만든 것
+
+- `CodeFontMetrics`(새) — 글자 크기 하나에서 줄 높이 · 여백 · 번호 칸 · 좁은 번호 칸 · 표식 · 단추 칸 · 단추 높이 · 단추 글자를 같은 비율로. 12 에서 지금 값과 정확히 같다(20 · 66 · 46 · 40 · 6 · 20 · 14 · 9).
+- 화면: 이 값들을 **DynamicResource** 로(행 템플릿 넷 · 편집기 · 줄 컨테이너 · 편집기 여백), `ApplyCodeFont` 가 한 벌로 갈아 끼운다. `MergeLine.MinimumRowHeight` 를 설정할 수 있는 값으로 바꾸고 바뀌면 모든 행을 다시 잰다.
+- 줄 번호에 코드와 같은 줄 높이 규칙(`LineHeight` · `BlockLineHeight`) — 원래 번호가 코드보다 몇 px 위에 떠 있었는데(12 에서 약 6px), 글자를 키우면 그만큼 커져 24 에서 눈에 띄었다. 이제 기준선이 같다.
+- 설정 "보기 > 코드 글자 크기 (8~24, 기본 12)"(`CodeFontSize`). 바꿀 때마다 저장, 설정 화면에서 바꾸고 돌아오면 따라감. 단축키 Ctrl+= · Ctrl+숫자판 + · Ctrl+- · Ctrl+숫자판 - · Ctrl+0 · Ctrl+숫자판 0, Ctrl+휠. 상태 줄 커서 위치 옆에 기본이 아닐 때만 `글자 14`(누르면 기본).
+
+### 확인한 것
+
+- 하네스 **FontTest**(새, 110건 — 8~24 모든 크기에서 여백 합 · 단추 ≤ 줄 · 번호 다섯 자리 · 정수 줄 높이, 끝에서 멈춤, NaN · 0 은 기본) · ShortcutTest +14(85건 — 새 키 · 수식키 없는 +/- 는 편집기 몫). 24벌 **1,538건** · 빌드 경고 0 · 오류 0.
+- 화면(`f5-verify.ps1`, 1440p · 150%, 코드 칸만 창 그림(PrintWindow)으로 — 다른 창이 찍히지 않게):
+
+| 크기 | 두 칸 행 높이(BASE · LOCAL) | 네 칸 행 높이(Mine · BASE · REMOTE · MERGED) | 여백 단추 |
+|---|---|---|---|
+| 8 | 19 · 20 번갈아(13 DIP × 1.5) — 두 칸 같음 | 넷 모두 같은 순서로 19 · 20 | 행 안 |
+| 12 | 30 | — | 행 안 |
+| 24 | 60 | 넷 모두 60 | 행 안 |
+
+ - 상태 줄 `글자 8` · `글자 24`, 12 는 비움. 그림: 줄 번호 · 여백 단추 · 코드 · 편집기 글자가 행마다 맞음(24 에서 번호가 뜨던 것을 고친 뒤 다시 찍음).
+- **키 시험은 못 함** — 시험 도구가 앱 창을 앞으로 올리지 못했다(사용 중인 다른 창이 있으면 Windows 가 막는다). 키 → 명령은 ShortcutTest, 설정 → 화면은 위 표로 확인. Ctrl+휠 · 키로 바꾼 값이 남는지는 사용자가 한 번 눌러 보는 것으로.
+
## F-12. C# 코드 스타일 맞춤의 기본값을 AURORA 로 (2026-09-18, 완료)
사용자: "기본값은 원본형태를 따르고 C#인 경우에 AURORA 스타일로 하자" → 물어서 정한 것은 **제품 기본값 AURORA · C# 파일만 · 저장 동작은 지금 그대로**(켜져 있으면 저장도 그 스타일로 쓴다).
diff --git a/doc/history/changelog.md b/doc/history/changelog.md
index 0eead45..943f71d 100644
--- a/doc/history/changelog.md
+++ b/doc/history/changelog.md
@@ -8,6 +8,7 @@
| 날짜 | 항목 | 커밋 |
|---|---|---|
+| 2026-09-22 | **11차 F-5 (추가 요청)** — 코드 칸 글자 크기 8~24(기본 12). 한 값을 모든 모니터에(사용자 결정 — 모니터마다 다른 Windows 배율은 플랫폼 PerMonitorV2 가 맞춤), 코드 칸만. `CodeFontMetrics` 가 줄 높이 · 번호 칸 · 여백 단추를 같은 비율로 내고(12 에서 지금 값 그대로) 화면이 DynamicResource 로 한 벌 갈아 끼움, `MergeLine.MinimumRowHeight` 도 따라감. Ctrl+휠 · Ctrl++/- · Ctrl+0 · 설정 "보기 > 코드 글자 크기", 상태 줄 `글자 N`. 줄 번호가 코드보다 몇 px 위에 뜨던 것(24 에서 커짐)도 같은 줄 높이 규칙으로 맞춤. 8 · 12 · 24 에서 네 칸 행 높이 같음. FontTest 110 · ShortcutTest +14(1,538건) | 아래 |
| 2026-09-22 | **11차 F-4 (추가 요청)** — 파일 비교 오른쪽 ACTIONS 칸을 감추는 단추 · F9(사용자 결정). 감추면 칸과 구분선 폭을 0 으로 해 코드 칸이 넓어지고, 펴면 끌어 둔 폭 그대로. 설정 `ActionsHidden` 에 기억. 감춘 채 Ctrl+S · Alt+←/→ 그대로. **덧(사용자 요청)**: 아래 탭 줄 접기 — 플랫폼에 [탭 접기] · 띠 · F11 을 넣음(플랫폼 changelog 참고, 사용자 확인 뒤 배포 09-22 16:22). 1440p 150% 에서 코드 칸 폭 +163px · 높이 +71px. ShortcutTest +3 · 플랫폼 PlatformCfgTest +7 | 아래 |
| 2026-09-22 | **11차 F-3 뒤 (사용자 발견)** — 탐색기에서 폴더 둘을 보내면 왼쪽 칸이 설정의 기본 저장소(`plain-compare`)로 덮여 비교가 "왼쪽만" 투성이였다. `FolderViewModel` 이 넘어온 요청을 받은 뒤 "열어 둔 저장소를 왼쪽 기본값으로" 가 덮어쓴 것(비교는 비동기라 덮인 값을 읽음) — 기본값을 먼저, 요청을 나중에. 켤 때 받은 인자를 파일 로그에 남김. 앞선 시험은 로그만 보고 칸 값을 제대로 읽지 않아 지나쳤다 | c35280a |
| 2026-09-22 | **11차 F-3 (추가 요청)** — 탐색기 [보내기] 가 여러 개를 어떻게 넘기는지 셸의 같은 길(바로가기에 Drop)로 일곱 경우를 잼: **프로세스 하나에 인자로 모두**, 폴더 둘은 창 하나에서 폴더 비교까지 됨. 고친 것(사용자 결정): 3개 이상은 앞의 둘 + 알림(예전엔 말없이 버림), 260자 넘는 경로(탐색기가 8.3 이름으로 넘기고 net48 이 긴 이름으로 펼쳐 못 찾음 — 예전엔 아무것도 안 열림)는 열지 않고 까닭 알림, 알림은 이름 창 뒤로 지나가지 않게 본 창이 활성이 된 뒤에. 배포 묶음을 옮기면 켤 때 보내기 바로가기를 지금 실행 파일로 고침(등록한 사람만 · 바로가기 파일만 · 레지스트리 안 씀). 설치 파일 필요 없음 확인. 떠 있을 때 새 창은 그대로(플랫폼 일). ArgsTest +16(1,411건) | 아래 |
diff --git a/doc/진행상황.md b/doc/진행상황.md
index dd283df..8c143ca 100644
--- a/doc/진행상황.md
+++ b/doc/진행상황.md
@@ -374,7 +374,7 @@
| **완료** | F-2 메서드 단위로 골라 반영 — [이 메서드 반영](C# + C/C++, 클래스 멤버 전부 · 사용자 결정), 캐럿이 놓인 멤버를 반영해 올 쪽에서 중괄호 짝으로 잡음(`MemberRanges` — 문자열 · 주석 · raw · `#if` 갈래에 안 속음, 못 잡으면 단추 끄고 까닭 한 줄). 덩어리 · 메서드 반영은 주석 한 줄(메서드 이름 위) · 로그 한 줄 · Undo 한 번 — 덩어리가 줄마다 주석을 달던 것도 고침. 메서드 반영 = 같은 줄 줄 단위 반영 바이트 같음. MemberTest 83건(C# 29 · C++ 13 멤버) · 1,395건 |
| **완료** | F-3 탐색기 [보내기] 로 폴더 두 개 바로 비교 — 탐색기는 여러 개를 프로세스 하나에 인자로 모두 넘김(일곱 경우 값으로 잼), 폴더 둘은 창 하나에서 폴더 비교까지. 사용자 결정대로 3개 이상은 앞의 둘 + 알림, 260자 넘는 경로(탐색기가 8.3 이름으로 넘김 · net48 이 못 찾음)는 열지 않고 알림, 옮긴 배포 묶음은 켤 때 보내기 바로가기를 저절로 고침(바로가기 파일만 · 레지스트리 안 씀), 떠 있을 때는 새 창 그대로. 설치 파일 필요 없음. ArgsTest +16 · 1,411건. **사용자가 실제 탐색기에서 찾은 것**: 보낸 왼쪽 폴더를 기본 저장소가 덮어써 "왼쪽만" 투성이 → 기본값을 먼저 두고 요청을 나중에 받게 고침, 켤 때 받은 인자를 파일 로그에 남김 |
| **완료** | F-4 ACTIONS 칸 감추기(단추 · F9, 끌어 둔 폭 기억, 감춰도 Ctrl+S · Alt+←/→ 그대로) + **덧: 아래 탭 줄 접기**(사용자 요청 — 플랫폼 [탭 접기] · 16 DIP 띠 · F11, 그 항목만 기억, 다른 소비 프로그램도 쓰되 기본 펼침). 1440p 150% 에서 코드 칸 폭 +163px · 높이 +71px. 플랫폼 배포함(09-22 16:22) |
-| 대기 | F-5 글자 크기 조절 (지금은 Consolas 12 고정) |
+| **완료** | F-5 코드 글자 크기(8~24, 기본 12) — 한 값을 모든 모니터에(모니터 배율은 플랫폼), 코드 칸만, Ctrl+휠 · Ctrl++/- · Ctrl+0 + 설정 "보기 > 코드 글자 크기"(사용자 결정). 줄 높이 · 번호 칸 · 여백 단추가 같은 비율로(`CodeFontMetrics`, 12 에서 지금 값 그대로), 줄 번호 기준선을 코드와 맞춤. 8 · 12 · 24 에서 네 칸 행 높이 같음 · 단추 행 안. FontTest 110 · 1,538건. 키로 바꾸기는 사용자 확인 남음 |
| 대기 | F-6 글자를 되도록 많이 보이게 — 넓게 보기 한 단추, 늘어난 줄 수로 잼 |
| 대기 | F-7 어느 모니터에서든 제대로 뜨게 — 증상부터 적고 플랫폼 영향 확인 |
| 대기 | F-8 저장한 뒤에도 되돌리기 (지금은 저장 네 길이 스택을 비움) |
diff --git a/src/MergeHub/MergeHubSettings.cs b/src/MergeHub/MergeHubSettings.cs
index 6416ca6..7e52047 100644
--- a/src/MergeHub/MergeHubSettings.cs
+++ b/src/MergeHub/MergeHubSettings.cs
@@ -94,6 +94,15 @@ namespace MergeHub
[DisplayName("커밋 조회 개수")]
public int CommitPageSize { get; set; } = 200;
+ ///
+ /// 코드 칸 글자 크기(11차 F-5). 코드 · 줄 번호 · 여백 단추 · 줄 높이가 같은 비율로 따라간다.
+ /// 한 값이 모든 모니터에 쓰인다 - 모니터마다 다른 Windows 배율은 플랫폼이 맞춘다.
+ /// 파일 비교 화면에서 Ctrl+휠 · Ctrl++/- · Ctrl+0 으로도 바꾸고, 그 값이 여기 남는다.
+ ///
+ [Category("보기")]
+ [DisplayName("코드 글자 크기 (8~24, 기본 12)")]
+ public int CodeFontSize { get; set; } = 12;
+
[Category("머지 주석")]
[DisplayName("반영한 줄에 주석 남기기")]
public bool InsertMergeComment { get; set; } = true;
diff --git a/src/MergeHub/Models/MergeLine.cs b/src/MergeHub/Models/MergeLine.cs
index 0494697..d593f8c 100644
--- a/src/MergeHub/Models/MergeLine.cs
+++ b/src/MergeHub/Models/MergeLine.cs
@@ -201,8 +201,15 @@ namespace MergeHub.Models
/// 읽기 전용 원본 칸들의 행 높이. 2-Way 에서는 RowHeight 와 같다.
[ObservableProperty] private double _sourceRowHeight = MinimumRowHeight;
- /// 접히지 않은 보통 줄의 높이. HomeView 의 CodeLineHeight 와 같은 값이어야 한다.
- private const double MinimumRowHeight = 20;
+ ///
+ /// 접히지 않은 보통 줄의 높이. HomeView 의 CodeLineHeight 와 같은 값이어야 한다.
+ /// 코드 글자 크기를 바꾸면 화면이 이 값을 함께 바꾸고 를 부른다(11차 F-5) -
+ /// 예전에는 20 으로 박혀 있어 글자를 줄여도 행이 20 아래로 줄지 않았다.
+ ///
+ public static double MinimumRowHeight { get; set; } = 20;
+
+ /// 줄 높이 기준이 바뀌었을 때 알던 글 높이로 다시 잰다.
+ public void RefreshRowHeight() => ApplyRowHeights();
/// 각 패널이 자기 글이 실제로 얼마나 높은지 알려 준다.
public void ReportTextHeight(TextPane pane, double height)
@@ -217,6 +224,11 @@ namespace MergeHub.Models
case TextPane.OriginalLocal: _originalLocalTextHeight = height; break;
}
+ ApplyRowHeights();
+ }
+
+ private void ApplyRowHeights()
+ {
if (IsThreeWay)
{
RowHeight = Math.Max(MinimumRowHeight, _localTextHeight);
diff --git a/src/MergeHub/Services/CodeFontMetrics.cs b/src/MergeHub/Services/CodeFontMetrics.cs
new file mode 100644
index 0000000..1d32d93
--- /dev/null
+++ b/src/MergeHub/Services/CodeFontMetrics.cs
@@ -0,0 +1,57 @@
+using System;
+
+namespace MergeHub.Services
+{
+ ///
+ /// 코드 칸 글자 크기 하나에서 나오는 크기들(11차 F-5). 줄 높이 · 줄 번호 칸 · 여백 단추가 같은 비율로 따라간다.
+ ///
+ /// 기본 12 에서 지금까지의 값(줄 20 · 여백 66 = 번호 46 + 단추 20 · LOCAL 은 표식 6 + 번호 40 + 단추 20 · 단추 14 · 단추 글자 9)과
+ /// 정확히 같다. 네 칸이 모두 이 값을 쓰므로 어느 크기에서나 행이 같은 눈높이에 온다.
+ ///
+ /// 크기는 WPF 단위(1/96 인치)다. 모니터마다 Windows 배율은 플랫폼(PerMonitorV2)이 맞추므로
+ /// 한 값이 어느 모니터에서나 같은 눈 크기로 보인다(사용자 결정 "한 값을 모든 모니터에").
+ ///
+ public sealed record CodeFontMetrics(
+ double FontSize,
+ double LineHeight,
+ double GutterWidth,
+ double NumberWidth,
+ double NarrowNumberWidth,
+ double MarkWidth,
+ double ButtonWidth,
+ double ButtonHeight,
+ double ButtonFontSize)
+ {
+ public const double Default = 12;
+ public const double Min = 8;
+ public const double Max = 24;
+
+ public static double Clamp(double size) =>
+ double.IsNaN(size) || size <= 0 ? Default : Math.Max(Min, Math.Min(Max, Math.Round(size)));
+
+ /// 한 칸(1) 키우거나 줄인다. 끝에서는 그대로.
+ public static double Step(double current, int delta) => Clamp(Math.Round(Clamp(current)) + delta);
+
+ public static CodeFontMetrics For(double size)
+ {
+ var f = Clamp(size);
+ var k = f / Default;
+
+ var mark = Math.Round(6 * k);
+ var narrow = Math.Round(40 * k);
+ var button = Math.Round(20 * k);
+ var number = mark + narrow;
+
+ return new CodeFontMetrics(
+ FontSize: f,
+ LineHeight: Math.Round(20 * k),
+ GutterWidth: number + button,
+ NumberWidth: number,
+ NarrowNumberWidth: narrow,
+ MarkWidth: mark,
+ ButtonWidth: button,
+ ButtonHeight: Math.Round(14 * k),
+ ButtonFontSize: Math.Round(9 * k, 1));
+ }
+ }
+}
diff --git a/src/MergeHub/Services/ShortcutMap.cs b/src/MergeHub/Services/ShortcutMap.cs
index 370f8c6..822194c 100644
--- a/src/MergeHub/Services/ShortcutMap.cs
+++ b/src/MergeHub/Services/ShortcutMap.cs
@@ -35,6 +35,9 @@ namespace MergeHub.Services
CloseFind,
ShowHelp,
ToggleActions,
+ FontBigger,
+ FontSmaller,
+ FontReset,
}
/// 단축키 한 줄. 키 처리와 설명 창이 둘 다 이 목록만 본다.
@@ -147,6 +150,12 @@ namespace MergeHub.Services
new ShortcutEntry(ShortcutAction.Recompare, Key.F5, ModifierKeys.None, "파일·보기", "다시 비교(새로고침)"),
new ShortcutEntry(ShortcutAction.Recompare, Key.R, ModifierKeys.Control, "파일·보기", "다시 비교 (대체 키)"),
new ShortcutEntry(ShortcutAction.Save, Key.S, ModifierKeys.Control, "파일·보기", "저장"),
+ new ShortcutEntry(ShortcutAction.FontBigger, Key.OemPlus, ModifierKeys.Control, "파일·보기", "코드 글자 크게 (Ctrl+휠 위로도)"),
+ new ShortcutEntry(ShortcutAction.FontBigger, Key.Add, ModifierKeys.Control, "파일·보기", "코드 글자 크게 (숫자판)"),
+ new ShortcutEntry(ShortcutAction.FontSmaller, Key.OemMinus, ModifierKeys.Control, "파일·보기", "코드 글자 작게 (Ctrl+휠 아래로도)"),
+ new ShortcutEntry(ShortcutAction.FontSmaller, Key.Subtract, ModifierKeys.Control, "파일·보기", "코드 글자 작게 (숫자판)"),
+ new ShortcutEntry(ShortcutAction.FontReset, Key.D0, ModifierKeys.Control, "파일·보기", "코드 글자 기본 크기(12)"),
+ new ShortcutEntry(ShortcutAction.FontReset, Key.NumPad0, ModifierKeys.Control, "파일·보기", "코드 글자 기본 크기 (숫자판)"),
new ShortcutEntry(ShortcutAction.ToggleActions, Key.F9, ModifierKeys.None, "파일·보기", "오른쪽 ACTIONS 칸 감추기 · 보이기",
"감춰도 저장 · 반영 · 차이 이동 키는 그대로 듣는다. 아래 탭 줄 접기(F11)는 플랫폼 몫이라 이 표에 없다."),
diff --git a/src/MergeHub/ViewModels/HomeViewModel.cs b/src/MergeHub/ViewModels/HomeViewModel.cs
index 1c1926e..18f9a53 100644
--- a/src/MergeHub/ViewModels/HomeViewModel.cs
+++ b/src/MergeHub/ViewModels/HomeViewModel.cs
@@ -49,6 +49,7 @@ namespace MergeHub.ViewModels
_workspace.CommitChosen += OnCommitChosenElsewhere;
_isRulesOpen = _workspace.Settings.ActionsRulesExpanded;
_isActionsHidden = _workspace.Settings.ActionsHidden;
+ _codeFontSize = CodeFontMetrics.Clamp(_workspace.Settings.CodeFontSize);
_reflowTimer.Tick += (_, _) => Reflow();
RefreshRecent();
@@ -409,6 +410,34 @@ namespace MergeHub.ViewModels
/// 단추 글자 - 누르면 무엇이 되는지와 키를 함께(RulesToggleLabel 과 같은 까닭).
public string ActionsToggleLabel => IsActionsHidden ? "◀ ACTIONS 보이기 (F9)" : "ACTIONS 감추기 ▶ (F9)";
+ ///
+ /// 코드 칸 글자 크기(11차 F-5, 8~24). 화면이 줄 높이 · 여백을 함께 맞춘다().
+ /// 바꿀 때마다 설정에 남긴다 - 한 값이 모든 모니터에 쓰인다.
+ ///
+ [ObservableProperty]
+ [NotifyPropertyChangedFor(nameof(CodeFontLabel))]
+ private double _codeFontSize = CodeFontMetrics.Default;
+
+ /// 상태 줄에 보일 글. 기본이면 비운다 - 늘 보이면 자리만 먹는다.
+ public string CodeFontLabel => CodeFontSize == CodeFontMetrics.Default ? string.Empty : $"글자 {CodeFontSize:0}";
+
+ partial void OnCodeFontSizeChanged(double value)
+ {
+ var size = (int)CodeFontMetrics.Clamp(value);
+ if (_workspace.Settings.CodeFontSize == size) return;
+ _workspace.Settings.CodeFontSize = size;
+ _workspace.SaveSettings();
+ }
+
+ [RelayCommand]
+ private void FontBigger() => CodeFontSize = CodeFontMetrics.Step(CodeFontSize, +1);
+
+ [RelayCommand]
+ private void FontSmaller() => CodeFontSize = CodeFontMetrics.Step(CodeFontSize, -1);
+
+ [RelayCommand]
+ private void FontReset() => CodeFontSize = CodeFontMetrics.Default;
+
[RelayCommand]
private void ToggleActions()
{
@@ -3013,6 +3042,9 @@ namespace MergeHub.ViewModels
///
public void RecompareIfSettingsChanged()
{
+ var font = CodeFontMetrics.Clamp(_workspace.Settings.CodeFontSize);
+ if (font != CodeFontSize) CodeFontSize = font;
+
// C# 스타일은 원본부터 다시 읽어야 맞춰진다(편집 칸만 다시 정렬하면 BASE 가 옛 스타일로 남는다).
if (_workspace.Settings.CSharpBraceStyle != _appliedStyle && Lines.Count > 0)
{
diff --git a/src/MergeHub/Views/HomeView.xaml b/src/MergeHub/Views/HomeView.xaml
index 3e72817..856daa2 100644
--- a/src/MergeHub/Views/HomeView.xaml
+++ b/src/MergeHub/Views/HomeView.xaml
@@ -22,6 +22,18 @@
20
+
+ 12
+ 66
+ 46
+ 40
+ 6
+ 20
+ 14
+ 9
+ 66,0,0,0
+
54
@@ -113,7 +125,7 @@