kfind문서

CLI · 실행

입력과 출력

Native CLI와 npm CLI는 matcher를 공유하지만 파일 순회, 인코딩과 표시 기능의 범위가 다릅니다.

입력 source

Native CLI는 path, directory와 stdin을 받고 ignore 규칙 및 병렬 file scan을 적용합니다. -는 stdin을 명시합니다.

npm CLI는 UTF-8 path를 결정적 순서로 재귀 순회하며 symlink를 따라가지 않습니다. Path가 없으면 TTY에서는 현재 directory, pipe에서는 stdin을 선택합니다.

인코딩

Native CLI의 auto는 UTF-8과 BOM 기반 UTF-16을 판별하고 명시적 euc-kr을 지원합니다. Decode한 text의 match를 원래 source 위치로 다시 매핑합니다.

npm CLI는 UTF-8 전용입니다. NUL이 있거나 strict UTF-8 decode가 실패한 파일은 stderr 진단 뒤 건너뜁니다.

출력 형식

사람용 text는 path, line, column과 surface를 표시합니다. Native TTY에서는 조건에 따라 pager를 사용하고 --no-pager로 bounded stdout stream을 강제할 수 있습니다.

자동화는 JSON Lines를 사용합니다. Match, atom span과 모든 rulePath를 record마다 보존합니다.

npm CLI

npm CLI의 text 좌표는 1부터 시작하는 UTF-16 line·column입니다. --json record는 path, line, column, start, end, surface와 atoms를 포함합니다.

Match가 있으면 0, 없으면 1, 사용법·초기화·I/O 오류면 2로 종료합니다.