크라우니워드프로세서 기초도구 — 책갈피참조
개요
크라우니워드프로세서 기초도구 시리즈의 신규 도메인 "책갈피참조"(북마크 + 문서내 참조마커) 완전 한선씨 구현. 완전 자기완결(임포트 없음), 기존 10+파일(텍스트버퍼·편집연산·검색치환·문서파일 등)의 검증된 관용구(남음-재슬라이스 스캔, "|"/";" 구분 직렬화, 결과=[] 재구축 불변 패턴)를 이식.
무엇을 했는지
파일: /Users/ef/crowny-word/도구/책갈피참조.한선
데이터: 책갈피목록 = 레코드 문자열 배열("이름|행|열"), 위치=[행,열], 참조마커="{참조:이름}" 리터럴, 편집연산 문자열은 편집연산.한선과 호환 포맷("삽입|행|열|텍스트" / "삭제|시작행|시작열|끝행|끝열")
구현 함수(26개 실질 로직 + 자체시험):
책갈피추가/삭제/이동, 책갈피조회/목록, 이름검증(공백·중복)
책갈피정렬(행,열 오름차순, 선택정렬 — in-place 설정() 대신 안전한 배열값설정 재구축 방식)
참조마커생성/마커이름추출, 참조해석(→"이름@행:열" 또는 "[깨진참조:이름]")
참조마커전체(본문 스캔), 참조전체갱신(본문 내 모든 마커 일괄 치환), 깨진참조검출
책갈피직렬화/역직렬화(";" 구분)
책갈피편집시프트보정 — 삽입/삭제 편집에 따른 책갈피 위치 자동 보정(단일행+멀티행 모두 지원, 삽입시 개행수만큼 행 이동·마지막줄길이로 열 재계산, 삭제시 범위내 스냅/범위밖 당김)
자체시험 43건 전부 PASS (검사: PASS 43/43)실측 발견 버그(수정 완료)
책갈피추가가 최초 구현에서 추가(목록, 레코드)를 호출자의 배열에 직접 호출 → 배열 참조형 별칭 오염(기존 문서화된 feedback_hanseon_array_alias_mutation 함정 실측 재현). 목록1 생성 직후 목록2를 만들면 목록1도 같이 2개로 오염되는 현상 발견(43개 중 1개 FAIL). "새목록=[] 후 루프로 전부 재구축 + 마지막에 추가" 패턴으로 수정 → 43/43 PASS.
관련 파일
/Users/ef/crowny-word/도구/책갈피참조.한선 (신규, 이번 작업)
- 이식 원본:
/Users/ef/crowny-word/도구/편집연산.한선(분리파이프·버퍼같은가 패턴), /Users/ef/crowny-word/도구/문서파일.한선/검색치환.한선(남음-재슬라이스 스캔 관용구)
- 컴파일러:
/Users/ef/CrownyOS/crownyc/hanseonc_high, /Users/ef/CrownyOS/crownyc/crownyc
크라우니코드
- lookup/search: "책갈피" / "참조 마커" 2회 이상 조회 — MISS (신규 도메인, 학습DB에 선례 없음)
- learn add 3건:
책갈피편집시프트보정, 참조마커전체추출, 배열불변추가
잔여 이슈
- 이름에 "|" 또는 ";" 문자가 포함되면 직렬화 규약이 깨짐(사양 명기, 편집연산.한선과 동일한 제약 계승)
- 책갈피편집시프트보정은 텍스트버퍼.한선의 버퍼삽입/버퍼삭제와 좌표계는 호환되지만, 별도 모듈이라 직접 연동 테스트는 하지 않음(추후 통합 시 좌표계 일치 여부 재검증 권장)