▲GN⁺ 2024-03-22 | parent | ★ favorite | on: 구문을 이해하는 구조적 차이 분석 도구 'Difftastic'(difftastic.wilfred.me.uk)Hacker News 의견 Tree-sitter 기반 기술 소개 Tree-sitter는 코드를 AST(Abstract Syntax Tree, 추상 구문 트리)로 변환하고 이를 에디터나 diff 도구 같은 클라이언트에 제공하는 표준 인터페이스를 제공함. 이를 통해 도구들은 수십 개의 언어를 직접 지원할 필요 없이 Tree-sitter를 지원함으로써 자동으로 Tree-sitter가 지원하는 모든 언어를 다룰 수 있음. 새로운 언어 개발 시 Tree-sitter 파서를 만들면 Tree-sitter를 지원하는 모든 도구가 해당 언어를 지원하게 됨. 이러한 혁신은 다양한 언어를 지원하는 도구 개발에 있어 중복 작업을 줄이고 향상된 도구 생태계를 만들어내는 중임. Rust 프로젝트 및 도구 업데이트 방법 Rust 기반의 프로젝트들을 cargo를 통해 설치하고 업데이트하는 방법을 제시함. mise-en-place는 asdf의 대체제로 빠르고 유연함. zoxide는 cd 명령어의 대체제로, 사용자가 이동한 디렉토리를 기억하고 부분 일치 검색을 통해 빠르게 이동할 수 있게 함. dust는 du의 보완 도구로, 가장 많은 디스크 공간을 사용하는 디렉토리를 보여줌. Difftastic 사용 경험 및 의견 Difftastic를 사용한 경험을 공유하며, 다른 diff 도구를 사용할 때 불편함을 느낀다고 언급함. 구문이 변경되어도 의미는 동일할 때를 비교할 수 있는 'semantic' diff 도구에 대한 가능성을 탐구함. Difftastic의 편리성 Difftastic가 실제 파일의 줄 번호를 보여주는 기능을 강조하며, git diff와 함께 사용 시 매우 유용함을 언급함. 관련 도구: diff2html diff2html은 CLI(Command Line Interface)를 통해 HTML 형식의 diff를 브라우저 탭에서 보여주는 도구임. Augeas 라이브러리 사용 경험 Augeas 라이브러리를 사용하여 설정 파일의 차이를 감지하고, 사용자가 구문에 민감하지 않은 세밀한 허용 목록을 작성할 수 있게 한 경험을 공유함. Semantic Merge와 비교 Semantic Merge는 오픈 소스가 아니었지만, Difftastic는 오픈 소스이며 더 나은 diff를 제공함. Difftastic를 merge 기능으로 확장할 계획이 있는지에 대한 궁금증을 표현함. icdiff로의 복귀 Difftastic를 시도했지만, 변경되지 않은 부분에 대해 이상한 포맷팅을 적용하는 등의 문제로 인해 icdiff로 돌아갔다는 의견을 제시함. Difftastic의 시각적 문제 큰 XML 파일을 검사할 때 수정된 라인과 속성을 시각적으로 구분하기 어려움을 지적하며, 스타일 변경 방법에 대한 문서화가 필요함을 언급함. Difftastic의 설치 크기 Arch Linux 패키지의 크기가 7MB이지만 설치 시 80MB로 증가하며, difft 바이너리 자체가 78MB임을 언급함. LZ4 압축을 사용하는 ZFS 데이터셋에서는 17MB로 표시되며, 압축 가능한 내용을 바이너리에 포함시키지 않은 이유에 대한 의문을 제기함.
Hacker News 의견
Tree-sitter 기반 기술 소개
Rust 프로젝트 및 도구 업데이트 방법
mise-en-place는asdf의 대체제로 빠르고 유연함.zoxide는cd명령어의 대체제로, 사용자가 이동한 디렉토리를 기억하고 부분 일치 검색을 통해 빠르게 이동할 수 있게 함.dust는du의 보완 도구로, 가장 많은 디스크 공간을 사용하는 디렉토리를 보여줌.Difftastic 사용 경험 및 의견
Difftastic의 편리성
관련 도구: diff2html
Augeas 라이브러리 사용 경험
Semantic Merge와 비교
icdiff로의 복귀
Difftastic의 시각적 문제
Difftastic의 설치 크기
difft바이너리 자체가 78MB임을 언급함.