Files
AX-Copilot/src/AxCopilot/Views/HelpDetailWindow.Shortcuts.cs
lacvet 27bd8de83a [Phase47] 대형 파일 분할 리팩터링 3차 — 8개 신규 파셜 파일 생성
## 분할 대상 및 결과

### ChatWindow.ResponseHandling.cs (741줄 → 269줄)
- ChatWindow.StreamingUI.cs (303줄, 신규): CreateStreamingContainer, FinalizeStreamingContainer, ParseSuggestionChips, FormatTokenCount, EstimateTokenCount, StopGeneration
- ChatWindow.ConversationExport.cs (188줄, 신규): ForkConversation, OpenCommandPalette, ExecuteCommand, ExportConversation, ExportToHtml

### ChatWindow.PreviewAndFiles.cs (709줄 → ~340줄)
- ChatWindow.PreviewPopup.cs (~230줄, 신규): ShowPreviewTabContextMenu, OpenPreviewPopupWindow, _previewTabPopup 필드

### HelpDetailWindow.xaml.cs (673줄 → 254줄)
- HelpDetailWindow.Shortcuts.cs (168줄, 신규): BuildShortcutItems() 정적 메서드 (단축키 항목 160개+ 생성)
- HelpDetailWindow.Navigation.cs (266줄, 신규): 테마 프로퍼티, BuildTopMenu/SwitchTopMenu, BuildCategoryBar, NavigateToPage, 이벤트 핸들러
- partial class 전환: `public partial class HelpDetailWindow : Window`

### SkillService.cs (661줄 → 386줄)
- SkillService.Import.cs (203줄, 신규): ExportSkill, ImportSkills, MapToolNames — 가져오기/내보내기 섹션
- SkillDefinition.cs (81줄, 신규): SkillDefinition 클래스 독립 파일로 분리 (별도 최상위 클래스)
- partial class 전환: `public static partial class SkillService`

## NEXT_ROADMAP.md Phase 46 완료 항목 추가

## 빌드 결과: 경고 0, 오류 0

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 21:02:53 +09:00

169 lines
11 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
namespace AxCopilot.Views;
public partial class HelpDetailWindow
{
// ─── 단축키 항목 빌드 ─────────────────────────────────────────────────────
private static List<HelpItemModel> BuildShortcutItems(string globalHotkey = "Alt+Space")
{
var items = new List<HelpItemModel>();
// 설정에서 변경된 글로벌 단축키를 표시에 맞게 포맷 (예: "Alt+Space" → "Alt + Space")
var hotkeyDisplay = globalHotkey.Replace("+", " + ");
// ── 전역 단축키 ──────────────────────────────────────────────────────
items.Add(MakeShortcut("전역", hotkeyDisplay,
"AX Commander 열기/닫기",
"어느 창에서든 눌러 AX Commander를 즉시 호출하거나 닫습니다. 설정 일반에서 원하는 키 조합으로 변경할 수 있습니다.",
"\uE765", "#4B5EFC"));
items.Add(MakeShortcut("전역", "PrintScreen",
"화면 캡처 즉시 실행",
"AX Commander를 열지 않고 곧바로 캡처를 시작합니다. 설정 캡처 탭에서 '글로벌 단축키 활성화'를 켜야 동작합니다.",
"\uE722", "#BE185D"));
// ── 런처 탐색 ────────────────────────────────────────────────────────
items.Add(MakeShortcut("AX Commander 탐색", "Escape",
"창 닫기 / 이전 단계로",
"액션 모드(→ 로 진입)에 있을 때는 일반 검색 화면으로 돌아갑니다. 일반 화면이면 AX Commander를 숨깁니다.",
"\uE711", "#999999"));
items.Add(MakeShortcut("AX Commander 탐색", "Enter",
"선택 항목 실행",
"파일·앱이면 열기, URL이면 브라우저 열기, 시스템 명령이면 즉시 실행, 계산기 결과면 클립보드에 복사합니다.",
"\uE768", "#107C10"));
items.Add(MakeShortcut("AX Commander 탐색", "Shift + Enter",
"대형 텍스트(Large Type) 표시 / 클립보드 병합 실행",
"선택된 텍스트·검색어를 화면 전체에 크게 띄웁니다. 클립보드 병합 항목이 있을 때는 선택한 항목들을 줄바꿈으로 합쳐 클립보드에 복사합니다.",
"\uE8C1", "#8764B8"));
items.Add(MakeShortcut("AX Commander 탐색", "↑ / ↓",
"결과 목록 위/아래 이동",
"목록 끝에서 계속 누르면 처음/끝으로 순환합니다.",
"\uE74A", "#0078D4"));
items.Add(MakeShortcut("AX Commander 탐색", "PageUp / PageDown",
"목록 5칸 빠른 이동",
"한 번에 5항목씩 건너뜁니다. 빠른 목록 탐색에 유용합니다.",
"\uE74A", "#0078D4"));
items.Add(MakeShortcut("AX Commander 탐색", "Home / End",
"목록 처음 / 마지막 항목으로 점프",
"입력창 커서가 맨 앞(또는 입력이 없을 때)이면 첫 항목으로, 맨 끝이면 마지막 항목으로 선택이 이동합니다.",
"\uE74A", "#0078D4"));
items.Add(MakeShortcut("AX Commander 탐색", "→ (오른쪽 화살표)",
"액션 모드 진입",
"파일·앱 항목을 선택한 상태에서 → 를 누르면 경로 복사, 탐색기 열기, 관리자 실행, 터미널, 속성, 이름 변경, 삭제 메뉴가 나타납니다.",
"\uE76C", "#44546A"));
items.Add(MakeShortcut("AX Commander 탐색", "Tab",
"선택 항목 제목으로 자동완성",
"현재 선택된 항목의 이름을 입력창에 채웁니다. 이후 계속 타이핑하거나 Enter로 실행합니다.",
"\uE748", "#006EAF"));
items.Add(MakeShortcut("AX Commander 탐색", "Shift + ↑/↓",
"클립보드 병합 선택",
"클립보드 히스토리(# 모드) 에서 여러 항목을 이동하면서 선택/해제합니다. Shift+Enter로 선택한 항목들을 한 번에 붙여넣을 수 있습니다.",
"\uE8C1", "#B7791F"));
// ── 런처 기능 단축키 ─────────────────────────────────────────────────
items.Add(MakeShortcut("런처 기능", "F1",
"도움말 창 열기",
"이 화면을 직접 엽니다. 'help' 를 입력하는 것과 동일합니다.",
"\uE897", "#6B7280"));
items.Add(MakeShortcut("런처 기능", "F2",
"선택 파일 이름 변경",
"파일·폴더 항목을 선택한 상태에서 누르면 rename [경로] 형태로 입력창에 채워지고 이름 변경 핸들러가 실행됩니다.",
"\uE70F", "#6B2C91"));
items.Add(MakeShortcut("런처 기능", "F5",
"파일 인덱스 즉시 재구축",
"백그라운드에서 파일·앱 인덱싱을 다시 실행합니다. 새 파일을 추가했거나 목록이 오래됐을 때 사용합니다.",
"\uE72C", "#059669"));
items.Add(MakeShortcut("런처 기능", "Delete",
"최근 실행 목록에서 항목 제거",
"recent 목록에 있는 항목을 제거합니다. 확인 다이얼로그가 표시되며 OK를 눌러야 실제로 제거됩니다.",
"\uE74D", "#DC2626"));
items.Add(MakeShortcut("런처 기능", "Ctrl + ,",
"설정 창 열기",
"AX Copilot 설정 창을 엽니다. 런처가 자동으로 숨겨집니다.",
"\uE713", "#44546A"));
items.Add(MakeShortcut("런처 기능", "Ctrl + L",
"입력창 전체 초기화",
"현재 입력된 검색어·예약어를 모두 지우고 커서를 빈 입력창으로 돌립니다.",
"\uE894", "#4B5EFC"));
items.Add(MakeShortcut("런처 기능", "Ctrl + C",
"선택 항목 파일 이름 복사",
"파일·앱 항목이 선택된 경우 확장자를 제외한 파일 이름을 클립보드에 복사하고 토스트로 알립니다.",
"\uE8C8", "#8764B8"));
items.Add(MakeShortcut("런처 기능", "Ctrl + Shift + C",
"선택 항목 전체 경로 복사",
"선택된 파일·폴더의 절대 경로(예: C:\\Users\\...)를 클립보드에 복사합니다.",
"\uE8C8", "#C55A11"));
items.Add(MakeShortcut("런처 기능", "Ctrl + Shift + E",
"파일 탐색기에서 선택 항목 열기",
"Windows 탐색기가 열리고 해당 파일·폴더가 하이라이트 선택된 상태로 표시됩니다.",
"\uE838", "#107C10"));
items.Add(MakeShortcut("런처 기능", "Ctrl + Enter",
"관리자(UAC) 권한으로 실행",
"선택된 파일·앱을 UAC 권한 상승 후 실행합니다. 설치 프로그램이나 시스템 설정 앱에 유용합니다.",
"\uE7EF", "#C50F1F"));
items.Add(MakeShortcut("런처 기능", "Alt + Enter",
"파일 속성 대화 상자 열기",
"Windows의 '파일 속성' 창(크기·날짜·권한 등)을 엽니다.",
"\uE946", "#6B2C91"));
items.Add(MakeShortcut("런처 기능", "Ctrl + T",
"선택 항목 위치에서 터미널 열기",
"선택된 파일이면 해당 폴더에서, 폴더이면 그 경로에서 Windows Terminal(wt.exe)이 열립니다. wt가 없으면 cmd로 대체됩니다.",
"\uE756", "#323130"));
items.Add(MakeShortcut("런처 기능", "Ctrl + P",
"즐겨찾기 즉시 추가 / 제거 (핀)",
"파일·폴더 항목을 선택한 상태에서 누르면 favorites.json 에 추가하거나 이미 있으면 제거합니다. 토스트로 결과를 알립니다.",
"\uE734", "#D97706"));
items.Add(MakeShortcut("런처 기능", "Ctrl + B",
"즐겨찾기 목록 보기 / 닫기 토글",
"입력창이 'fav' 이면 초기화하고, 아니면 'fav' 를 입력해 즐겨찾기 목록을 표시합니다.",
"\uE735", "#D97706"));
items.Add(MakeShortcut("런처 기능", "Ctrl + R",
"최근 실행 목록 보기 / 닫기 토글",
"'recent' 를 입력해 최근 실행 항목을 표시합니다.",
"\uE81C", "#0078D4"));
items.Add(MakeShortcut("런처 기능", "Ctrl + H",
"클립보드 히스토리 목록 열기",
"'#' 를 입력해 클립보드에 저장된 최근 복사 항목 목록을 표시합니다.",
"\uE77F", "#8B2FC9"));
items.Add(MakeShortcut("런처 기능", "Ctrl + D",
"다운로드 폴더 바로가기",
"사용자 홈의 Downloads 폴더 경로를 입력창에 채워 탐색기로 열 수 있게 합니다.",
"\uE8B7", "#107C10"));
items.Add(MakeShortcut("런처 기능", "Ctrl + F",
"파일 검색 모드로 전환",
"입력창을 초기화하고 포커스를 이동합니다. 이후 파일명을 바로 타이핑해 검색할 수 있습니다.",
"\uE71E", "#4B5EFC"));
items.Add(MakeShortcut("런처 기능", "Ctrl + W",
"런처 창 즉시 닫기",
"현재 입력 내용에 관계없이 런처를 즉시 숨깁니다.",
"\uE711", "#9999BB"));
items.Add(MakeShortcut("런처 기능", "Ctrl + K",
"단축키 참조 모달 창 열기",
"모든 단축키와 설명을 보여주는 별도 모달 창이 열립니다. Esc 또는 닫기 버튼으로 닫습니다.",
"\uE8FD", "#4B5EFC"));
items.Add(MakeShortcut("런처 기능", "Ctrl + 1 ~ 9",
"N번째 결과 항목 바로 실행",
"목록에 번호 배지(1~9)가 표시된 항목을 해당 숫자 키로 즉시 실행합니다. 마우스 없이 빠른 실행에 유용합니다.",
"\uE8C4", "#107C10"));
// ── 기타 창 단축키 ────────────────────────────────────────────────────
items.Add(MakeShortcut("기타 창", "← / →",
"헬프 창 카테고리 이동",
"이 도움말 창에서 하위 카테고리 탭을 왼쪽/오른쪽으로 이동합니다.",
"\uE76B", "#4455AA"));
items.Add(MakeShortcut("기타 창", "1 / 2 / 3",
"헬프 창 상단 메뉴 전환",
"이 도움말 창에서 개요(1), 단축키 현황(2), 예약어 현황(3)을 키보드로 전환합니다.",
"\uE8BD", "#4455AA"));
items.Add(MakeShortcut("기타 창", "방향키 (캡처 중)",
"영역 선택 경계 1px 미세 조정",
"화면 캡처의 영역 선택 모드에서 선택 영역 경계를 1픽셀씩 정밀 조정합니다.",
"\uE745", "#BE185D"));
items.Add(MakeShortcut("기타 창", "Shift + 방향키 (캡처 중)",
"영역 선택 경계 10px 이동",
"화면 캡처의 영역 선택 모드에서 선택 영역 경계를 10픽셀씩 빠르게 이동합니다.",
"\uE745", "#BE185D"));
return items;
}
}