lacvet
e0548c52a9
[Phase L18] SQL포맷·TextCase·Aspect·Abbr 핸들러 4종 추가
SqlHandler.cs (신규, ~280줄, prefix=sql, partial class):
- Keywords[]: 50+ SQL 키워드 + NewlineKeywords HashSet
- Format(): Tokenize() 기반 키워드·괄호·쉼표 들여쓰기 포맷
- Minify(): 공백·괄호 주변 최소화
- TransformKeywords(): 키워드 대소문자 일괄 변환
- BuildStatsItems(): DML유형·테이블·JOIN·WHERE·서브쿼리 분석
- ExtractTables(): FROM/JOIN 테이블 추출 (TableRegex)
- sql select <table>: SELECT 쿼리 템플릿 생성
- [GeneratedRegex]: Whitespace/SpaceAroundParens/Table/SelectCols
TextCaseHandler.cs (신규, ~220줄, prefix=text, partial class):
- CaseItem record: Name/Key/Func<string,string> 13가지 케이스
- Tokenize(): CamelBoundaryRegex + SeparatorRegex 단어 분리
- ToCamel/ToPascal/ToSnake/ToConst/ToKebab/ToDot 구현
- ToSlug(): NormalizationForm.FormD → ASCII 변환 + NonSlugRegex
- 인라인 입력: text camel hello world → helloWorld
- 특정 케이스 선택 시 다른 케이스도 함께 표시
AspectHandler.cs (신규, ~260줄, prefix=aspect):
- AspectPreset record: Ratio/Name/(W,H)[] 9개 프리셋
- BuildFromResolution(): GCD 약분 비율 + 배율별 해상도
- BuildFromRatio(): 프리셋 매칭 또는 기준 너비 5개 계산
- BuildFromRatioAndDim(): 너비/높이 단방향 계산
- BuildCropItems(): 크롭 방향 판별 + FFmpeg crop 파라미터
- TryParseRatio(): :·/ 구분자 + 소수 비율 지원
- Gcd(): 재귀 최대공약수
AbbrHandler.cs (신규, ~260줄, prefix=abbr):
- AbbrEntry record: Short/Full/Description/Category
- 150+개 내장 약어 (웹/개발/DB/보안/클라우드/AI/데이터형식/협업)
- 정확 일치 1개: 약어·원문·설명·카테고리 상세 표시
- 부분 일치: 목록 표시 (Short·Full·Description 검색)
- 카테고리명 직접 입력 → 해당 카테고리 전체 목록
App.xaml.cs (수정): Phase L18 핸들러 4종 RegisterHandler 추가
docs/LAUNCHER_ROADMAP.md (수정): Phase L18 섹션 추가 (✅ 완료)
빌드: 경고 0, 오류 0
2026-04-04 16:15:13 +09:00
..
2026-04-03 18:23:52 +09:00
2026-04-03 18:23:52 +09:00
2026-04-03 18:23:52 +09:00
2026-04-04 13:35:49 +09:00
2026-04-03 18:23:52 +09:00
2026-04-03 18:23:52 +09:00
2026-04-03 18:23:52 +09:00
2026-04-03 18:23:52 +09:00
2026-04-03 18:23:52 +09:00
2026-04-04 13:35:49 +09:00
2026-04-03 18:23:52 +09:00
2026-04-03 18:23:52 +09:00
2026-04-04 16:15:13 +09:00
2026-04-03 18:23:52 +09:00
2026-04-04 09:49:44 +09:00
2026-04-03 18:23:52 +09:00
2026-04-03 18:23:52 +09:00
2026-04-03 18:23:52 +09:00
2026-04-03 18:23:52 +09:00
2026-04-03 18:23:52 +09:00
2026-04-03 18:23:52 +09:00