From 9560f4723b090e8e80a0c99ea889c4648485bae3 Mon Sep 17 00:00:00 2001 From: netcon Date: Fri, 6 Feb 2026 13:57:48 +0800 Subject: [PATCH] feat: diff commit file in file history (#659) --- extensions/github1s/package.json | 11 +++++++++++ extensions/github1s/src/commands/commit.ts | 15 +++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/extensions/github1s/package.json b/extensions/github1s/package.json index 9230d11cf..6ffd4e0e5 100644 --- a/extensions/github1s/package.json +++ b/extensions/github1s/package.json @@ -170,6 +170,12 @@ "category": "GitHub1s", "icon": "$(log-in)" }, + { + "command": "github1s.commands.diffCommitFile", + "title": "Diff File", + "category": "GitHub1s", + "icon": "$(diff)" + }, { "command": "github1s.commands.openCommitOnGitHub", "title": "Open on GitHub", @@ -527,6 +533,11 @@ "when": "viewItem == 'github1s:viewItems:commitListItem' && github1s:adapters:default:platformName == 'GitHub'", "group": "inline@2" }, + { + "command": "github1s.commands.diffCommitFile", + "when": "viewItem == 'github1s:viewItems:commitListItem' && view == 'github1s.views.fileHistory'", + "group": "inline@3" + }, { "command": "github1s.commands.openCommitOnGitLab", "when": "viewItem == 'github1s:viewItems:commitListItem' && github1s:adapters:default:platformName == 'GitLab'", diff --git a/extensions/github1s/src/commands/commit.ts b/extensions/github1s/src/commands/commit.ts index 10a559940..1ae1ccdb2 100644 --- a/extensions/github1s/src/commands/commit.ts +++ b/extensions/github1s/src/commands/commit.ts @@ -82,6 +82,20 @@ const commandSwitchToCommit = async (commitItemOrSha?: string | CommitTreeItem) } }; +const commandDiffCommitFile = async (commitItem: CommitTreeItem) => { + const commitSha = commitItem.commit.sha; + if (!commitSha) { + return; + } + const { repo } = await router.getState(); + const activeDocumentUri = vscode.window.activeTextEditor?.document?.uri; + const fileUri = activeDocumentUri?.with({ + authority: `${repo}+${commitSha}`, + query: '', + }); + return vscode.commands.executeCommand('github1s.commands.openFilePreviousRevision', fileUri); +}; + // this command is used in `source control commit list view` const commandOpenCommitOnOfficialPage = async (commitItemOrSha?: string | CommitTreeItem) => { const commitSha = commitItemOrSha @@ -127,6 +141,7 @@ export const registerCommitCommands = (context: vscode.ExtensionContext) => { vscode.commands.registerCommand('github1s.commands.refreshCommitList', commandRefreshCommitList), vscode.commands.registerCommand('github1s.commands.searchCommit', commandSwitchToCommit), vscode.commands.registerCommand('github1s.commands.switchToCommit', commandSwitchToCommit), + vscode.commands.registerCommand('github1s.commands.diffCommitFile', commandDiffCommitFile), vscode.commands.registerCommand('github1s.commands.openCommitOnGitHub', commandOpenCommitOnOfficialPage), vscode.commands.registerCommand('github1s.commands.openCommitOnGitLab', commandOpenCommitOnOfficialPage), vscode.commands.registerCommand('github1s.commands.openCommitOnBitbucket', commandOpenCommitOnOfficialPage),