Add SCM graph commit-file context menus
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 52/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Ít trao đổi
- Công nghệ
- typescript, vscode
- Lĩnh vực
- developer-experience, tooling
Hướng nghiên cứu
Start in an Extension Development Host by verifying the existing scm/historyItem/context contribution and contribSourceControlHistoryItemMenu, then inspect the current history and file command entry points. Implement and test historyFileContext with real, provider-first, and malformed arguments, followed by E2E coverage for modified, added, deleted, and renamed files. Done means the three actions appear on graph file rows and each opens one expected TabInputTextDiff.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Problem
VSCode's standard SCM graph lets a commit expand to show the files changed in that commit. Diffr currently covers commit-row context menus and file context menus in SCM Changes, editor tabs, and Explorer, but it does not expose the primary compare actions on the nested file rows inside an expanded graph commit.
That leaves a gap: a user should be able to drill into a file inside a commit and compare that exact historical file path against another commit, a branch, a tag, the index, or the working copy.
Desired behavior
Right-clicking a file inside an expanded SCM graph commit should show the primary three Diffr actions:
Diffr: Compare with...Diffr: Compare with Working CopyDiffr: Compare with Previous
Command behavior:
- Side A is always the selected file at the containing commit.
Compare with...opens the existing SideB picker and supports commit, branch/tag, index, and working copy targets.Compare with Working Copyopens one native VSCode diff against the current workspace file.Compare with Previousopens one native VSCode diff against the containing commit's first parent, using the previous path for renames when VSCode exposes it.- The flow must not open the changed-file picker, because the selected graph row already fixes the path.
Implementation notes
- First verify the exact VSCode menu contribution point and command argument shape in a real Extension Development Host. Commit rows currently use
scm/historyItem/contextwithcontribSourceControlHistoryItemMenu; nested commit-file rows must be proven rather than guessed. - Add a pure
historyFileContextextractor that scans all command args, ignores a provider-firstSourceControlarg, and returns the containing SHA plus selected relative path. - Add separate history-file commands so commit-row and normal workspace-file commands keep their current behavior.
- Deleted files should render a deterministic empty side. Renames should use the old path on the parent side when the SCM graph payload provides it.
Acceptance criteria
- Right-clicking a file inside an expanded SCM graph commit shows the three Diffr actions.
- Each action opens exactly one
TabInputTextDifffor the selected file. - Compare-with can target another commit, branch, tag, index, or working copy.
- Unit tests cover argument extraction, including provider-first and malformed payloads.
- E2E tests invoke the commands with the captured real SCM graph file-row args and assert expected URIs and human-readable diff titles.
- Manual smoke covers modified, added, deleted, and renamed files.
Docs updated
docs/specs/spec.mddocs/plans/plan.md
- Ngôn ngữ chính
- TypeScript
- Star
- 2
- Fork
- 1
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Không có hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue tương tự
-
area:plugins area:security area:skills bug has repro
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
anthropics/claude-code#105911 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
openspec-apply-change skill: when blocked, may select a ready artifact unrelated to missingArtifactsĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Fission-AI/OpenSpec#2165 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
🐞 bug 🧐 unconfirmed
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
Tencent/tdesign-vue-next#7032 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
gnosis/gnosis_vpn#661 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
content-freshness: staleOwnedContent doc comments still say 'complete receipt' (follow-up to #7912)Đang mởtriage:bug-verified
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 92/100
Maintainer thường phản hồi trong vòng 1 ngày