From 81207cddf573e142cd3966934922db34ea091e15 Mon Sep 17 00:00:00 2001 From: Ladislau Szomoru <3372902+lszomoru@users.noreply.github.com> Date: Thu, 14 Dec 2023 23:36:20 +0100 Subject: [PATCH] Git - add command to close other repositories (#200893) --- extensions/git/package.json | 17 ++++++++++++++++- extensions/git/package.nls.json | 1 + extensions/git/src/commands.ts | 10 ++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/extensions/git/package.json b/extensions/git/package.json index e7c316cb07b..e1124062d90 100644 --- a/extensions/git/package.json +++ b/extensions/git/package.json @@ -98,6 +98,12 @@ "category": "Git", "enablement": "!operationInProgress" }, + { + "command": "git.closeOtherRepositories", + "title": "%command.closeOtherRepositories%", + "category": "Git", + "enablement": "!operationInProgress" + }, { "command": "git.refresh", "title": "%command.refresh%", @@ -827,6 +833,10 @@ "command": "git.close", "when": "config.git.enabled && !git.missing && gitOpenRepositoryCount != 0" }, + { + "command": "git.closeOtherRepositories", + "when": "false" + }, { "command": "git.refresh", "when": "config.git.enabled && !git.missing && gitOpenRepositoryCount != 0" @@ -1336,8 +1346,13 @@ "scm/sourceControl": [ { "command": "git.close", - "group": "navigation", + "group": "navigation@1", "when": "scmProvider == git" + }, + { + "command": "git.closeOtherRepositories", + "group": "navigation@2", + "when": "scmProvider == git && gitOpenRepositoryCount > 1" } ], "scm/resourceGroup/context": [ diff --git a/extensions/git/package.nls.json b/extensions/git/package.nls.json index f98527cb5d6..89cbaa5314d 100644 --- a/extensions/git/package.nls.json +++ b/extensions/git/package.nls.json @@ -9,6 +9,7 @@ "command.openRepository": "Open Repository", "command.reopenClosedRepositories": "Reopen Closed Repositories...", "command.close": "Close Repository", + "command.closeOtherRepositories": "Close Other Repositories", "command.refresh": "Refresh", "command.openChange": "Open Changes", "command.openAllChanges": "Open All Changes", diff --git a/extensions/git/src/commands.ts b/extensions/git/src/commands.ts index 6c217c2e871..824ec89ddb3 100644 --- a/extensions/git/src/commands.ts +++ b/extensions/git/src/commands.ts @@ -962,6 +962,16 @@ export class CommandCenter { this.model.close(repository); } + @command('git.closeOtherRepositories', { repository: true }) + async closeOtherRepositories(repository: Repository): Promise { + for (const r of this.model.repositories) { + if (r === repository) { + continue; + } + this.model.close(r); + } + } + @command('git.openFile') async openFile(arg?: Resource | Uri, ...resourceStates: SourceControlResourceState[]): Promise { const preserveFocus = arg instanceof Resource;