3 điểm bởi xguru 4 giờ trước | Chưa có bình luận nào. | Chia sẻ qua WhatsApp
  • So sánh các thực thể mã thay vì từng dòng, cho biết hàm/phương thức/lớp nào đã được thêm/sửa/xóa/di chuyển/đổi tên
    • "dòng x~y đã thay đổi" → "hàm blah đã thay đổi"
  • Hoạt động không cần cấu hình trong bất kỳ repo Git nào, và cũng có thể so sánh các tệp tùy ý bên ngoài Git
  • Bộ nhớ đệm thực thể lưu trong SQLite được đặt ở thư mục cache của OS bên ngoài kho lưu trữ, nên không làm bẩn working tree
  • Phân tích mã bằng tree-sitter, rồi liên kết mã trước/sau thay đổi theo thứ tự ID thực thể → hash cấu trúc AST → độ tương đồng token trên 80% để phát hiện đổi tên và di chuyển
  • Các lệnh được hỗ trợ

    • sem diff: so sánh working tree/staging/commit/khoảng commit/hai tệp bất kỳ, hỗ trợ đầu ra văn bản thường/Markdown/JSON
    • sem impact: tìm mã phụ thuộc/caller/test bị ảnh hưởng khi một hàm cụ thể thay đổi
    • sem blame: hiển thị người sửa cuối cùng ở cấp thực thể của hàm/lớp/phương thức
    • sem log: theo dõi một thực thể đã thay đổi như thế nào qua git history
      • Nếu không chỉ định thực thể, phân tích hotspot (những phần thay đổi nhiều)/co-change pairs (các cặp thường xuyên thay đổi cùng nhau) trong kho lưu trữ ("đụng vào một cái thì đừng quên cái này")
    • sem entities: hiển thị tất cả thực thể bên dưới thư mục hiện tại
    • sem context: dựng chỉ phần mã xung quanh cần thiết cho agent phù hợp với ngân sách token
    • sem setup: khi chạy, git diff hiện có sẽ chuyển sang đầu ra theo đơn vị thực thể, đồng thời cài đặt pre-commit hook hiển thị phạm vi ảnh hưởng của các thay đổi staged
      • Trên macOS và Linux, liên kết với Claude Code một đồ thị phụ thuộc thường trú và context hook khi bắt đầu prompt, giúp giảm chi phí phải phân tích lại kho lưu trữ hoặc đi tìm mã mỗi lần
    • sem mcp: cung cấp diff, impact, context, entities, blame, log dưới dạng công cụ MCP để coding agent chỉ truy vấn các hàm và quan hệ phụ thuộc cần thiết thay vì toàn bộ tệp
  • Khi thêm GitHub Action, mỗi PR sẽ cập nhật các hàm/lớp/phương thức đã thay đổi vào một bình luận cố định, đồng thời phân biệt cả PR chỉ thay đổi định dạng/chú thích
  • Hỗ trợ 32 ngôn ngữ gồm TypeScript, Python, Go, Rust, Java, Swift, SQL, C/C++... cùng JSON/YAML/TOML/CSV/Markdown
    • Các tệp chưa được hỗ trợ sẽ được xử lý bằng diff theo chunk
  • Giấy phép: MIT OR Apache-2.0

Chưa có bình luận nào.

Chưa có bình luận nào.