ksj09406 26446d5e6b 5차 B-1: XAML 태그·속성·값을 갈라 칠한다
실제 소스에 XAML 이 400개 42,477줄인데 여태 주석과 따옴표만 알아봐서
사실상 평문이었다. 마크업 전용 토크나이저를 따로 뒀다.

기존 토크나이저에 못 얹은 까닭은 규칙이 다르기 때문이다. 그쪽은 낱말을
읽어 예약어 표와 맞춰 보는데, 마크업은 같은 Content 가 꺾쇠 안에서는
속성 이름이고 밖에서는 그냥 글자다. 낱말이 무엇이냐가 아니라 어디에
있느냐로 갈린다.

줄 넘김 상태를 bool 하나에서 깃발 묶음(CarryOver)으로 넓혔다. XAML 은
여는 태그가 여러 줄에 걸치는 것이 보통이라 - 시험에 쓴 실제 파일은 첫
태그 하나가 14줄이다 - "지금 꺾쇠 안이다"를 안 넘기면 이어지는 줄의
속성이 그냥 글자로 보인다. 부르는 자리 다섯을 모두 바꿨다.

색은 새로 만들지 않고 이미 있는 갈래에 얹었다. 태그는 예약어 색,
속성 이름은 메서드 색, 값은 문자열 색, 앞가지는 타입 색이다. 태그
밖의 본문은 일부러 안 칠한다.

붙이는 중에 파일 비교 화면이 통째로 비어서 뜨는 일이 있었다. 의존
속성 타입을 bool 에서 CarryOver 로 바꾸면서 기본값 false 를 같이 안
고쳤다. 빌드도 통과하고 로그에도 안 남는다. 같은 주의를 코드 옆에
적어 뒀다.

실제 저장소 XAML 사본(638줄)으로 화면 확인. C# 색칠은 그대로.
MarkupTest 65건. 전체 688건 통과(하네스 20벌). 경고 0 · 오류 0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-11 16:01:58 +09:00

5.1 KiB

변경 이력

무엇을 왜 바꿨는지 한 줄로 남긴다. 자세한 이야기는 날짜별 파일에 있다.

플랫폼(UbisamPlatform/doc/history/changelog.md)과 형식은 같지만 기준이 다르다. 플랫폼 changelog 의 핵심은 "다른 소비 프로그램에 미치는 영향"인데, MergeHub 는 소비 프로그램이라 그럴 대상이 없다. 여기서는 무엇을 왜 바꿨는지가 중심이다.

날짜 항목 커밋
2026-09-11 5차 B-1 — XAML 태그·속성·값을 갈라 칠함. 여러 줄에 걸친 여는 태그도 이어진다. 줄 넘김 상태를 깃발 묶음으로 넓혔다 아래
2026-09-11 5차 A-2 — Git 작업을 시작하는 자리에서 묻게 함. 가려서 묻는 것은 접고 전부 묻는다. 덤으로 4차 A-1 이 새던 자리 셋을 막음 아래
2026-09-11 5차 A-1 — 실제 저장소 2,091개로 인코딩을 확인(깨짐 0). 판별 코드가 두 군데 복사돼 있던 것을 한 곳으로 모으고, CP949 를 한 이름으로 부르게 함 아래
2026-09-10 4차 C-5 — 한 번 정하는 것들을 한자리에 모아 접고, 차이 이동을 개수 옆으로 아래
2026-09-10 4차 C-4 — 범례를 눌러 그 갈래로 이동. 0건은 흐리게 아래
2026-09-10 4차 C-3 — Git 탭의 원격 칸을 접을 수 있게. 로컬 경로 한 줄만 남고 세로 128px 가 목록으로 간다 아래
2026-09-10 엔터 고침의 되돌이 문제 — TextChanged 안에서 편집기 글을 갈아 끼워 캐럿이 엉켰다. 한 차례 뒤로 물림 아래
2026-09-10 엔터 반응 지연 — 줄 수가 바뀌면 0.6초 타이머만 기다리느라 화면이 비어 있었다. 그 자리에서 다시 맞추게 고침 아래
2026-09-10 4차 C-2 — 아래쪽 세 군데 상태 정보를 창 아래 한 줄로. 두 패널 코드 높이가 저절로 맞는다 아래
2026-09-10 4차 C-1 다시 — 머리글을 파일 이름만으로 줄인 것이 잘못이었다. 두 경로에서 다른 부분만 남기게 고침 아래
2026-09-10 4차 C-1 — 파일 비교에서 같은 경로가 나오던 세 자리를 하나로. 코드가 두 줄 더 보인다 아래
2026-09-10 4차 B-3 — 폴더 비교 목록을 파일 비교 화면에서 이전/다음으로 딛는다 (Ctrl+PageUp/PageDown) 아래
2026-09-10 4차 B-1 — 최근에 견준 파일 짝·폴더 짝을 기억해 위 줄에서 바로 연다. 없는 경로는 흐리게만 하고 지우지 않는다 아래
2026-09-10 4차 A-2 — 내보낸 보고서 머리글에 만든 사람을 넣음. 이름 판단을 머지 주석과 한 함수로 모았다 아래
2026-09-10 4차 A-1 — 저장하지 않은 편집이 말없이 사라지던 길 여덟 군데를 막음. 플랫폼에 세 갈래 확인 창을 새로 넣었다 아래
2026-09-10 4차 D-2 — 항목을 끝내면 상세·상태·한 줄을 각각 어디에 적을지 공통 규칙으로 못박음 아래
2026-09-10 4차 D-1 — 721줄짜리 진행상황을 history/ 의 날짜별 파일로 나누고 지시서를 작업지시/ 로 모음 아래
2026-09-09 3차 A 묶음 — 폴더 고르기 다운 · 화면 이동 결함 3가지 · 저장소 최상위 열기 5e667af af27800 93a507e b5bd06c / 플랫폼 595aa23 f664c31
2026-09-09 3차 B 묶음 — 3-Way 가로·세로 막대 · 행 어긋남 · Take Mine 179dffb
2026-09-09 3차 C·E 묶음 — 코드 툴팁 · 글자 잘림 · 폴더 복사 확인 창 · 세로 막대 · 폭 되돌림 · 머리 빈 공간 · 반영 색 · 코드 겹침 9a9c431 8def1ad 05c74fc 4f33cac / 플랫폼 5522ca0
2026-09-09 3차 D 묶음 — 주석만 다름 · C++ 전처리 · 3-Way 덩어리 반영 · 결과 내보내기 · 폴더 안 전체 검색 · 끌어다 놓기 5c8c942 451b624 32c0146 ee5d34c 373990b 196af0a
2026-09-08 저장소 개설 (MergeHub · UbisamPlatform 각각) 7719094 / 36ee902
2026-09-08 ④ Git 조작 5가지 — amend · stash 목록 · 커밋 간 비교 · blame · 변경분 추출 9956567
2026-09-08 ③ 3-Way — 자동 병합 · 충돌만 이동 · 병합 완료 판정 85c5e9e
2026-09-08 ① 폴더 비교 — 폴더째 복사·삭제 · 보기 필터 · 비교 취소 524a6a7
2026-09-08 ② 파일 비교 — 바꾸기 · 덩어리 반영 · 저장 형식 · 이진/그림 비교 de1a43c 55d9deb
2026-09-08 ⑤ 밖에서 부르기 — 명령줄 인자 · 탐색기 우클릭 아래

날짜별 상세

날짜 문서 내용
2026-09-11 2026-09-11-5차.md 5차 지시서 진행 중
2026-09-10 2026-09-10-4차.md 4차 지시서 열세 항목. 전부 끝
2026-09-09 2026-09-09-3차.md 3차 지시서 A~E 스물세 항목. 항목마다 원인과 판단을 적었다
2026-09-08 2026-09-08-2주차.md 기능 덩어리 다섯 개(①~⑤)를 채운 주