[Phase L4] 파일탐색기·QuickLook·단위변환 단축 3종 완료

FileBrowserHandler (185줄) — L4-1 인라인 파일 탐색기:
- Handlers/FileBrowserHandler.cs: Prefix=null, 경로 패턴 감지(C:\, D:\, \, ~\)
- 폴더/파일 나열: 상위폴더(..) + 하위폴더 40개 + 파일 30개
- 확장자별 MDL2 아이콘, 파일 크기 포맷(B/KB/MB/GB), 필터링 지원
- FileBrowserEntry(Path, IsFolder) record 정의
- App.xaml.cs: Phase L4 섹션에 FileBrowserHandler 등록

CommandResolver (18줄 추가) — 경로 쿼리 우선 처리:
- 퍼지 검색 전 IsPathQuery() 감지 → 파일탐색기 단독 결과 반환(항목 수 제한 없음)
- FileBrowserEntry 실행 라우팅 → ExecuteNullPrefixAsync 위임

LauncherWindow.Keyboard.cs (41줄 추가) — 키보드 탐색:
- Key.Right: FileBrowserEntry {IsFolder:true} 선택 시 해당 경로로 InputText 업데이트
- Key.Left: 경로 쿼리 상태에서 상위 폴더로 이동(Path.GetDirectoryName)
- 기존 → 키 액션모드 진입 로직 유지

QuickLookWindow (L4-2 F3 미리보기 강화):
- XAML: 줄번호 열(LineNumBg+LineNumbers), PDF 패널(빨강 배지), Office 패널(파랑 배지) 추가
- Code-behind: PDF(PdfPig), Word(OpenXml), Excel(OpenXml) 미리보기 구현
- ApplyCodeStyle(): 언어별 배경 색조(C#=파랑, Python=녹색, JS=앰버 등)
- 빌드: 경고 0, 오류 0
This commit is contained in:
2026-04-04 11:23:18 +09:00
parent 75cb4ba6e9
commit d4a1532d81
6 changed files with 897 additions and 7 deletions

View File

@@ -1,3 +1,4 @@
using AxCopilot.Handlers;
using AxCopilot.SDK;
using AxCopilot.Services;
using AxCopilot.Themes;
@@ -73,7 +74,15 @@ public class CommandResolver
}
}
// 2. Fuzzy 검색 폴백 + null-prefix 핸들러 병렬 실행
// 2. 경로 쿼리 감지 → 파일 탐색기 단독 처리 (퍼지 검색 우선순위 우회)
if (FileBrowserHandler.IsPathQuery(input))
{
var fb = _fuzzyHandlers.OfType<FileBrowserHandler>().FirstOrDefault();
if (fb != null)
return await fb.GetItemsAsync(input, ct);
}
// 3. Fuzzy 검색 폴백 + null-prefix 핸들러 병렬 실행
var maxResults = _settings.Settings.Launcher.MaxResults;
// Path 기반 중복 제거: 같은 경로의 항목이 여러 키워드로 매칭될 때 첫 번째만 표시
@@ -163,6 +172,13 @@ public class CommandResolver
return;
}
// 파일 탐색기 항목 실행 (FileBrowserEntry)
if (item.Data is FileBrowserEntry)
{
await ExecuteNullPrefixAsync(item, ct);
return;
}
// Fuzzy 결과 실행 (IndexEntry 기반)
if (item.Data is IndexEntry entry)
{