Skip to content

feat(diff): add diff integration features #6

@CalvinAllen

Description

@CalvinAllen

Description

Add comprehensive diff integration for comparing file versions, including revision navigation commands for quickly moving through file history.

Requirements

Core Diff Features

  • Compare with previous revision
  • Compare with any revision (picker dialog)
  • Compare with branch
  • Compare with tag
  • Side-by-side diff view
  • Integration with VS built-in diff tools

Revision Navigation Commands

  • Open Changes with Previous Revision - Compare current with previous commit
  • Open Changes with Next Revision - Compare with next commit (when viewing history)
  • Open Line Changes with Previous Revision - Focus on current line's history
  • Open Changes with Working File - Compare revision with working copy
  • Open Changes with Specific Revision - Pick a commit to compare

Quick Navigation

  • Previous revision shortcut (e.g., Alt+[)
  • Next revision shortcut (e.g., Alt+])
  • Jump to first/last revision
  • Navigation breadcrumb showing position in history

Visual Indicators

  • Current revision indicator in editor title
  • Navigation arrows/buttons in editor toolbar
  • History position (e.g., "3 of 47 revisions")

Comparison Targets

  • HEAD
  • Working copy
  • Specific commit SHA
  • Branch
  • Tag
  • Stash
  • Upstream branch

Configuration Options

  • Default comparison target
  • Keyboard shortcut customization
  • Show navigation controls toggle
  • Diff editor preference (inline vs side-by-side)

Technical Notes

  • Use VS SDK diff APIs where available
  • LibGit2Sharp for retrieving file content at specific commits
  • Consider using VS's IVsDifferenceService

Related Issues

Acceptance Criteria

  • All diff comparison modes work correctly
  • All navigation commands function properly
  • Keyboard shortcuts work
  • Visual indicators update in real-time
  • Performance is acceptable for files with long history

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestphase-2Phase 2: File History & Commit Detailspriority: mediumMedium priority item

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions