diff --git a/src/vs/vscode.d.ts b/src/vs/vscode.d.ts index 5b5cd0a27af..95fd5de30fd 100644 --- a/src/vs/vscode.d.ts +++ b/src/vs/vscode.d.ts @@ -4735,7 +4735,7 @@ declare module 'vscode' { /** * The label of this source control resource group. */ - readonly label: string; + label: string; /** * Whether this source control resource group is hidden when it contains diff --git a/src/vs/workbench/api/node/extHost.protocol.ts b/src/vs/workbench/api/node/extHost.protocol.ts index 8a40eb6f740..ec54f95a437 100644 --- a/src/vs/workbench/api/node/extHost.protocol.ts +++ b/src/vs/workbench/api/node/extHost.protocol.ts @@ -297,6 +297,7 @@ export abstract class MainThreadSCMShape { $registerGroup(sourceControlHandle: number, handle: number, id: string, label: string): void { throw ni(); } $updateGroup(sourceControlHandle: number, handle: number, features: SCMGroupFeatures): void { throw ni(); } + $updateGroupLabel(sourceControlHandle: number, handle: number, label: string): void { throw ni(); } $updateGroupResourceStates(sourceControlHandle: number, groupHandle: number, resources: SCMRawResource[]): void { throw ni(); } $unregisterGroup(sourceControlHandle: number, handle: number): void { throw ni(); } diff --git a/src/vs/workbench/api/node/extHostSCM.ts b/src/vs/workbench/api/node/extHostSCM.ts index 079d623d5dd..9d40839b177 100644 --- a/src/vs/workbench/api/node/extHostSCM.ts +++ b/src/vs/workbench/api/node/extHostSCM.ts @@ -81,6 +81,11 @@ class ExtHostSourceControlResourceGroup implements vscode.SourceControlResourceG return this._label; } + set label(label: string) { + this._label = label; + this._proxy.$updateGroupLabel(this._sourceControlHandle, this._handle, label); + } + private _hideWhenEmpty: boolean | undefined = undefined; get hideWhenEmpty(): boolean | undefined { diff --git a/src/vs/workbench/api/node/mainThreadSCM.ts b/src/vs/workbench/api/node/mainThreadSCM.ts index 42129cde3ec..6223b3e3bc9 100644 --- a/src/vs/workbench/api/node/mainThreadSCM.ts +++ b/src/vs/workbench/api/node/mainThreadSCM.ts @@ -137,6 +137,17 @@ class MainThreadSCMProvider implements ISCMProvider { this._onDidChange.fire(); } + $updateGroupLabel(handle: number, label: string): void { + const group = this._groupsByHandle[handle]; + + if (!group) { + return; + } + + group.label = label; + this._onDidChange.fire(); + } + $updateGroupResourceStates(groupHandle: number, resources: SCMRawResource[]): void { const group = this._groupsByHandle[groupHandle]; @@ -263,6 +274,16 @@ export class MainThreadSCM extends MainThreadSCMShape { provider.$updateGroup(groupHandle, features); } + $updateGroupLabel(sourceControlHandle: number, groupHandle: number, label: string): void { + const provider = this._sourceControls[sourceControlHandle]; + + if (!provider) { + return; + } + + provider.$updateGroupLabel(groupHandle, label); + } + $updateGroupResourceStates(sourceControlHandle: number, groupHandle: number, resources: SCMRawResource[]): void { const provider = this._sourceControls[sourceControlHandle];