B-1. 원본 세 칸에 가로 스크롤 막대 신설. 이 칸들은 ScrollViewer 를 가로로 굴리지 않고(줄 번호까지 밀려 나간다) 글자만 SourceShiftX 로 민다. 그래서 ScrollViewer 가 만드는 막대는 움직이지 않는 막대가 되어 감춰 두고 있었고, 긴 줄이 있다는 사실 자체를 알 수 없었다. 막대를 따로 놓고 SourceShiftX 와 값을 서로 맞춘다. B-2. 워드랩을 켠 3-Way 에서 세로 스크롤이 아예 안 되던 문제. 원인이 둘이었다. - 메아리를 막는 자물쇠를 try/finally 로 그 자리에서 풀고 있었다. 목록의 스크롤 알림은 배치가 끝난 다음에 오므로 그때는 이미 열려 있었고, 그 메아리가 다시 편집기를 굴렸다. 이제 그 일로 밀려서 오는 알림이 다 지나간 뒤에 푼다. - 두 좌표계를 픽셀로 환산하고 있었는데, 목록이 가상화라 안 그려진 행의 높이를 알 수 없어 환산이 어긋났다. 워드랩일 때는 행 단위로 굴려 "몇 번째 행이 맨 위인가"만 주고받는다. 곁들여, 편집기 맨 위 행을 스크롤 값 나눗셈이 아니라 좌표로 물어본다. B-3. Take Mine 을 눌러도 남은 충돌이 줄지 않던 문제. "내 것으로 간다"는 결정은 글을 바꾸지 않아 되돌리기 스택에 남지 않는데, RefreshAppliedFlags 가 스택만 보고 반영 표시를 다시 칠하면서 그 표시를 지웠다. 줄 번호로 기억해 둔 결정을 같이 보도록 고치고, 같은 판단을 IsDecidedAsMine 하나로 합쳤다. 확인: 막대 끌기/가로 휠/워드랩 토글, 워드랩 켠 채 네 칸이 같은 행을 맨 위에 놓는 것, 충돌 6개를 Take Mine/Theirs 번갈아 눌러 "충돌 정리 끝"까지. 테스트 399건 그대로 통과. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Description
No description provided
Languages
C#
99.1%
PowerShell
0.9%