From e5165663d9fda26a18612b85ec5f56fda3defcfc Mon Sep 17 00:00:00 2001 From: Ladislau Szomoru <3372902+lszomoru@users.noreply.github.com> Date: Mon, 20 Jan 2025 17:58:45 +0100 Subject: [PATCH] Git - add commands to toggle git blame editor decoration/status bar item (#238302) --- extensions/git/package.json | 10 ++++++++++ extensions/git/package.nls.json | 2 ++ extensions/git/src/commands.ts | 17 +++++++++++++++++ 3 files changed, 29 insertions(+) diff --git a/extensions/git/package.json b/extensions/git/package.json index a05c557a2b1..cc06a2f63d1 100644 --- a/extensions/git/package.json +++ b/extensions/git/package.json @@ -933,6 +933,16 @@ "command": "git.copyCommitMessage", "title": "%command.timelineCopyCommitMessage%", "category": "Git" + }, + { + "command": "git.blame.toggleEditorDecoration", + "title": "%command.blameToggleEditorDecoration%", + "category": "Git" + }, + { + "command": "git.blame.toggleStatusBarItem", + "title": "%command.blameToggleStatusBarItem%", + "category": "Git" } ], "continueEditSession": [ diff --git a/extensions/git/package.nls.json b/extensions/git/package.nls.json index 61168a79c34..5cfb2b1a7b2 100644 --- a/extensions/git/package.nls.json +++ b/extensions/git/package.nls.json @@ -128,6 +128,8 @@ "command.graphCherryPick": "Cherry Pick", "command.graphDeleteBranch": "Delete Branch", "command.graphDeleteTag": "Delete Tag", + "command.blameToggleEditorDecoration": "Toggle Git Blame Editor Decoration", + "command.blameToggleStatusBarItem": "Toggle Git Blame Status Bar Item", "command.api.getRepositories": "Get Repositories", "command.api.getRepositoryState": "Get Repository State", "command.api.getRemoteSources": "Get Remote Sources", diff --git a/extensions/git/src/commands.ts b/extensions/git/src/commands.ts index 26d0a1a1c3d..01b9ef29fea 100644 --- a/extensions/git/src/commands.ts +++ b/extensions/git/src/commands.ts @@ -4356,6 +4356,23 @@ export class CommandCenter { env.clipboard.writeText(content); } + @command('git.blame.toggleEditorDecoration') + toggleBlameEditorDecoration(): void { + this._toggleBlameSetting('blame.editorDecoration.enabled'); + } + + @command('git.blame.toggleStatusBarItem') + toggleBlameStatusBarItem(): void { + this._toggleBlameSetting('blame.statusBarItem.enabled'); + } + + private _toggleBlameSetting(setting: string): void { + const config = workspace.getConfiguration('git'); + const enabled = config.get(setting) === true; + + config.update(setting, !enabled, true); + } + private createCommand(id: string, key: string, method: Function, options: ScmCommandOptions): (...args: any[]) => any { const result = (...args: any[]) => { let result: Promise;