@codingame/monaco-vscode-scm-service-override 2.2.1 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/vscode/src/vs/workbench/contrib/scm/browser/activity.js +60 -2
- package/vscode/src/vs/workbench/contrib/scm/browser/media/scm.css.js +1 -1
- package/vscode/src/vs/workbench/contrib/scm/browser/menus.js +16 -6
- package/vscode/src/vs/workbench/contrib/scm/browser/scm.contribution.js +3 -1
- package/vscode/src/vs/workbench/contrib/scm/browser/scmRepositoriesViewPane.js +1 -1
- package/vscode/src/vs/workbench/contrib/scm/browser/scmViewPane.js +270 -49
- package/vscode/src/vs/workbench/contrib/scm/browser/util.js +5 -5
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codingame/monaco-vscode-scm-service-override",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"keywords": [],
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "CodinGame",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"module": "index.js",
|
|
19
19
|
"types": "index.d.ts",
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"vscode": "npm:@codingame/monaco-vscode-api@
|
|
21
|
+
"vscode": "npm:@codingame/monaco-vscode-api@3.0.0",
|
|
22
22
|
"vscode-marked": "npm:marked@=3.0.2"
|
|
23
23
|
}
|
|
24
24
|
}
|
|
@@ -5,7 +5,7 @@ import { Disposable, MutableDisposable, DisposableStore, combinedDisposable, dis
|
|
|
5
5
|
import { Event } from 'vscode/vscode/vs/base/common/event';
|
|
6
6
|
import { VIEW_PANE_ID, ISCMService, ISCMViewService } from 'vscode/vscode/vs/workbench/contrib/scm/common/scm';
|
|
7
7
|
import { NumberBadge, IActivityService } from 'vscode/vscode/vs/workbench/services/activity/common/activity';
|
|
8
|
-
import { IContextKeyService } from 'vscode/vscode/vs/platform/contextkey/common/contextkey';
|
|
8
|
+
import { RawContextKey, IContextKeyService } from 'vscode/vscode/vs/platform/contextkey/common/contextkey';
|
|
9
9
|
import { IStatusbarService } from 'vscode/vscode/vs/workbench/services/statusbar/browser/statusbar';
|
|
10
10
|
import { IEditorService } from 'vscode/vscode/vs/workbench/services/editor/common/editorService';
|
|
11
11
|
import { IConfigurationService } from 'vscode/vscode/vs/platform/configuration/common/configuration';
|
|
@@ -13,6 +13,7 @@ import { EditorResourceAccessor } from 'vscode/vscode/vs/workbench/common/editor
|
|
|
13
13
|
import { IUriIdentityService } from 'vscode/vscode/vs/platform/uriIdentity/common/uriIdentity';
|
|
14
14
|
import { Schemas } from 'vscode/vscode/vs/base/common/network';
|
|
15
15
|
import { Iterable } from 'vscode/vscode/vs/base/common/iterator';
|
|
16
|
+
import { ITitleService } from 'vscode/vscode/vs/workbench/services/title/browser/titleService';
|
|
16
17
|
|
|
17
18
|
function getCount(repository) {
|
|
18
19
|
if (typeof repository.provider.count === 'number') {
|
|
@@ -186,6 +187,63 @@ SCMStatusController = ( __decorate([
|
|
|
186
187
|
( __param(5, IConfigurationService)),
|
|
187
188
|
( __param(6, IUriIdentityService))
|
|
188
189
|
], SCMStatusController));
|
|
190
|
+
const ActiveRepositoryContextKeys = {
|
|
191
|
+
ActiveRepositoryName: ( new RawContextKey('scmActiveRepositoryName', '')),
|
|
192
|
+
ActiveRepositoryBranchName: ( new RawContextKey('scmActiveRepositoryBranchName', '')),
|
|
193
|
+
};
|
|
194
|
+
let SCMActiveRepositoryContextKeyController = class SCMActiveRepositoryContextKeyController {
|
|
195
|
+
constructor(contextKeyService, editorService, scmViewService, titleService, uriIdentityService) {
|
|
196
|
+
this.editorService = editorService;
|
|
197
|
+
this.scmViewService = scmViewService;
|
|
198
|
+
this.uriIdentityService = uriIdentityService;
|
|
199
|
+
this.focusedRepository = undefined;
|
|
200
|
+
this.focusDisposable = Disposable.None;
|
|
201
|
+
this.disposables = ( new DisposableStore());
|
|
202
|
+
this.activeRepositoryNameContextKey = ActiveRepositoryContextKeys.ActiveRepositoryName.bindTo(contextKeyService);
|
|
203
|
+
this.activeRepositoryBranchNameContextKey = ActiveRepositoryContextKeys.ActiveRepositoryBranchName.bindTo(contextKeyService);
|
|
204
|
+
titleService.registerVariables([
|
|
205
|
+
{ name: 'activeRepositoryName', contextKey: ActiveRepositoryContextKeys.ActiveRepositoryName.key },
|
|
206
|
+
{ name: 'activeRepositoryBranchName', contextKey: ActiveRepositoryContextKeys.ActiveRepositoryBranchName.key, }
|
|
207
|
+
]);
|
|
208
|
+
editorService.onDidActiveEditorChange(this.onDidActiveEditorChange, this, this.disposables);
|
|
209
|
+
scmViewService.onDidFocusRepository(this.onDidFocusRepository, this, this.disposables);
|
|
210
|
+
this.onDidFocusRepository(scmViewService.focusedRepository);
|
|
211
|
+
}
|
|
212
|
+
onDidActiveEditorChange() {
|
|
213
|
+
const activeResource = EditorResourceAccessor.getOriginalUri(this.editorService.activeEditor);
|
|
214
|
+
if (activeResource?.scheme !== Schemas.file && activeResource?.scheme !== Schemas.vscodeRemote) {
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
const repository = Iterable.find(this.scmViewService.repositories, r => Boolean(r.provider.rootUri && this.uriIdentityService.extUri.isEqualOrParent(activeResource, r.provider.rootUri)));
|
|
218
|
+
this.onDidFocusRepository(repository);
|
|
219
|
+
}
|
|
220
|
+
onDidFocusRepository(repository) {
|
|
221
|
+
if (!repository || this.focusedRepository === repository) {
|
|
222
|
+
return;
|
|
223
|
+
}
|
|
224
|
+
this.focusDisposable.dispose();
|
|
225
|
+
this.focusedRepository = repository;
|
|
226
|
+
if (repository && repository.provider.onDidChangeStatusBarCommands) {
|
|
227
|
+
this.focusDisposable = repository.provider.onDidChangeStatusBarCommands(() => this.updateContextKeys(repository));
|
|
228
|
+
}
|
|
229
|
+
this.updateContextKeys(repository);
|
|
230
|
+
}
|
|
231
|
+
updateContextKeys(repository) {
|
|
232
|
+
this.activeRepositoryNameContextKey.set(repository?.provider.name ?? '');
|
|
233
|
+
this.activeRepositoryBranchNameContextKey.set(repository?.provider.historyProvider?.currentHistoryItemGroup?.label ?? '');
|
|
234
|
+
}
|
|
235
|
+
dispose() {
|
|
236
|
+
this.focusDisposable.dispose();
|
|
237
|
+
this.disposables.dispose();
|
|
238
|
+
}
|
|
239
|
+
};
|
|
240
|
+
SCMActiveRepositoryContextKeyController = ( __decorate([
|
|
241
|
+
( __param(0, IContextKeyService)),
|
|
242
|
+
( __param(1, IEditorService)),
|
|
243
|
+
( __param(2, ISCMViewService)),
|
|
244
|
+
( __param(3, ITitleService)),
|
|
245
|
+
( __param(4, IUriIdentityService))
|
|
246
|
+
], SCMActiveRepositoryContextKeyController));
|
|
189
247
|
let SCMActiveResourceContextKeyController = class SCMActiveResourceContextKeyController {
|
|
190
248
|
constructor(contextKeyService, editorService, scmService, uriIdentityService) {
|
|
191
249
|
this.editorService = editorService;
|
|
@@ -247,4 +305,4 @@ SCMActiveResourceContextKeyController = ( __decorate([
|
|
|
247
305
|
( __param(3, IUriIdentityService))
|
|
248
306
|
], SCMActiveResourceContextKeyController));
|
|
249
307
|
|
|
250
|
-
export { SCMActiveResourceContextKeyController, SCMStatusController };
|
|
308
|
+
export { SCMActiveRepositoryContextKeyController, SCMActiveResourceContextKeyController, SCMStatusController };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import n from '../../../../../../../../external/rollup-plugin-styles/dist/runtime/inject-css.js';
|
|
2
2
|
|
|
3
|
-
var css = ".scm-view{height:100%;position:relative}.scm-overflow-widgets-container{height:0;left:0;overflow:visible;position:absolute;top:0;width:0;z-index:5000}.scm-view .monaco-tl-contents>div{overflow:hidden;padding-right:12px}.scm-view .count{display:flex;margin-left:6px}.scm-view .count.hidden{display:none}.scm-view .scm-provider{align-items:center;display:flex;flex-direction:column;flex-flow:nowrap;height:100%}.scm-view.auto-provider-counts .scm-provider>.count[data-count=\"0\"],.scm-view.hide-provider-counts .scm-provider>.count{display:none}.scm-view .scm-provider>.label{flex:1;min-width:50px;overflow:hidden;text-overflow:ellipsis}.scm-view .scm-provider>.label>.name{font-weight:700}.scm-view .scm-provider>.label>.description{font-size:.9em;margin-left:.5em;opacity:.7}.scm-view .scm-provider>.actions{justify-content:flex-end;overflow:hidden}.scm-view .monaco-editor .selected-text{border-radius:0}.scm-view .scm-provider>.actions>.monaco-toolbar>.monaco-action-bar>.actions-container>.action-item{align-items:center;display:flex;padding-left:4px}.scm-view .scm-provider>.actions>.monaco-toolbar>.monaco-action-bar>.actions-container>.action-item:first-child{min-width:20px}.scm-view .scm-provider>.actions>.monaco-toolbar>.monaco-action-bar>.actions-container>.action-item>.action-label,.scm-view .scm-provider>.actions>.monaco-toolbar>.monaco-action-bar>.actions-container>.action-item>.monaco-dropdown>.dropdown-label>.action-label{align-items:center;display:flex;line-height:16px;overflow:hidden}.scm-view .scm-provider>.actions>.monaco-toolbar>.monaco-action-bar>.actions-container>.action-item>.action-label>.codicon{font-size:12px;justify-content:center}.scm-view .scm-provider>.actions>.monaco-toolbar>.monaco-action-bar>.actions-container>.action-item:last-of-type{padding-right:0}.scm-view .scm-provider>.body{flex-grow:1}.scm-view .scm-provider>.status>.monaco-action-bar>.actions-container{border-color:var(--vscode-sideBar-border)}.scm-view .monaco-list-row{line-height:22px}.scm-view .monaco-list-row .history,.scm-view .monaco-list-row .history-item-group,.scm-view .monaco-list-row .resource-group{align-items:center;display:flex;height:100%}.scm-view .monaco-list-row .history-item .monaco-icon-label,.scm-view .monaco-list-row .history-item-group .monaco-icon-label{align-items:center;flex-grow:1}.scm-view .monaco-list-row .history-item{align-items:center;display:flex}.scm-view .monaco-list-row .history-item .stats-container{border:1px solid var(--vscode-scm-historyItemStatisticsBorder);border-radius:2px;display:flex;font-size:11px;gap:4px;line-height:11px;margin-left:6px;min-height:18px;padding:0 4px}.scm-view .monaco-list-row.focused .history-item .stats-container,.scm-view .monaco-list-row.selected .history-item .stats-container{border:1px solid var(--vscode-scm-historyItemSelectedStatisticsBorder)}.scm-view .monaco-list-row .history-item .stats-container>.deletions-label,.scm-view .monaco-list-row .history-item .stats-container>.files-label,.scm-view .monaco-list-row .history-item .stats-container>.insertions-label{align-items:center;display:flex;opacity:.75}.scm-view .monaco-list-row .history-item .stats-container>.insertions-label{color:var(--vscode-scm-historyItemAdditionsForeground)}.scm-view .monaco-list-row .history-item .stats-container>.deletions-label{color:var(--vscode-scm-historyItemDeletionsForeground)}.scm-view .monaco-list-row .history-item .stats-container.hidden,.scm-view .monaco-list-row .history-item .stats-container>.deletions-label.hidden,.scm-view .monaco-list-row .history-item .stats-container>.insertions-label.hidden{display:none}.scm-view .monaco-list-row .history-item .monaco-icon-label .icon-container,.scm-view .monaco-list-row .history-item-group .monaco-icon-label .icon-container{display:flex;padding-right:4px}.scm-view .monaco-list-row .history-item .monaco-icon-label .avatar{border-radius:14px;height:14px;width:14px}.scm-view .monaco-list-row .separator-container{align-items:center;display:flex;padding-left:11px}.scm-view .monaco-list-row .separator-container .label-name{font-size:10px}.scm-view .monaco-list-row.focused .separator-container .label-name,.scm-view .monaco-list-row.selected .separator-container .label-name{color:var(--vscode-foreground)}.scm-view .monaco-list-row .separator-container .separator{border-top:1px solid var(--vscode-sideBar-border);display:flex;flex-grow:1;height:0;margin-left:6px}.scm-view .monaco-list-row .history-item-group>.name,.scm-view .monaco-list-row .history>.name,.scm-view .monaco-list-row .resource-group>.name{flex:1;overflow:hidden;text-overflow:ellipsis}.scm-view .monaco-list-row .resource{display:flex;height:100%}.scm-view .monaco-list-row .resource.faded{opacity:.7}.scm-view .monaco-list-row .resource>.name{flex:1;overflow:hidden}.scm-view .monaco-list-row .resource>.name>.monaco-icon-label:after{margin-right:3px}.scm-view .monaco-list-row .resource>.decoration-icon{background-position:50% 50%;background-repeat:no-repeat;height:100%;margin-right:8px;width:16px}.scm-view .monaco-list-row .resource>.decoration-icon.codicon{margin-right:0;margin-top:3px}.scm-view .monaco-list .monaco-list-row .resource>.name>.monaco-icon-label>.actions{flex-grow:100}.scm-view .monaco-list .monaco-list-row .history-item-group>.actions,.scm-view .monaco-list .monaco-list-row .history-item>.actions,.scm-view .monaco-list .monaco-list-row .resource-group>.actions,.scm-view .monaco-list .monaco-list-row .resource>.name>.monaco-icon-label>.actions{display:none;max-width:fit-content}.scm-view .monaco-list .monaco-list-row.focused .history-item-group>.actions,.scm-view .monaco-list .monaco-list-row.focused .history-item>.actions,.scm-view .monaco-list .monaco-list-row.focused .resource-group>.actions,.scm-view .monaco-list .monaco-list-row.focused .resource>.name>.monaco-icon-label>.actions,.scm-view .monaco-list .monaco-list-row.selected .history-item-group>.actions,.scm-view .monaco-list .monaco-list-row.selected .history-item>.actions,.scm-view .monaco-list .monaco-list-row.selected .resource-group>.actions,.scm-view .monaco-list .monaco-list-row.selected .resource>.name>.monaco-icon-label>.actions,.scm-view .monaco-list .monaco-list-row:hover .history-item-group>.actions,.scm-view .monaco-list .monaco-list-row:hover .history-item>.actions,.scm-view .monaco-list .monaco-list-row:hover .resource-group>.actions,.scm-view .monaco-list .monaco-list-row:hover .resource>.name>.monaco-icon-label>.actions,.scm-view .monaco-list:not(.selection-multiple) .monaco-list-row .resource:hover>.actions{display:block}.scm-view .monaco-list .monaco-list-row.focused.force-no-hover,.scm-view .monaco-list .monaco-list-row.force-no-hover,.scm-view .monaco-list .monaco-list-row.selected.force-no-hover,.scm-view .monaco-list .monaco-list-row:hover.force-no-hover{background:transparent!important}.scm-view .monaco-list .monaco-list-row.cursor-default{cursor:default}.scm-view.show-actions .scm-provider>.actions,.scm-view.show-actions>.monaco-list .monaco-list-row .history-item-group>.actions,.scm-view.show-actions>.monaco-list .monaco-list-row .history-item>.actions,.scm-view.show-actions>.monaco-list .monaco-list-row .resource-group>.actions,.scm-view.show-actions>.monaco-list .monaco-list-row .resource>.name>.monaco-icon-label>.actions,.scm-view.show-actions>.monaco-list .monaco-list-row .scm-input>.scm-editor>.actions{display:block}.scm-view .monaco-list-row .actions .action-label{padding:2px}.scm-view .scm-input{align-items:center;display:flex;height:100%;padding-left:11px}.scm-view .scm-input .scm-editor .scm-editor-toolbar{padding:1px 3px 1px 1px}.scm-view .scm-input .scm-editor .scm-editor-toolbar.hidden{display:none}.scm-view .scm-input .scm-editor .scm-editor-toolbar.scroll-decoration{box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset}.scm-view .scm-input .scm-editor .scm-editor-toolbar .action-label.codicon.codicon-debug-stop{color:var(--vscode-icon-foreground)!important}.scm-view .scm-editor-container .monaco-editor{border-radius:2px}.scm-view .scm-editor-container .monaco-editor .focused .selected-text{background-color:var(--vscode-editor-selectionBackground)}.scm-view .scm-editor{align-items:flex-start;background-color:var(--vscode-input-background);border:1px solid var(--vscode-input-border,transparent);border-radius:2px;box-sizing:border-box;display:flex;width:100%}.scm-view .button-container{align-items:center;display:flex;height:100%;padding-left:11px}.scm-view .button-container .codicon.codicon-cloud-upload,.scm-view .button-container .codicon.codicon-sync{margin:0 4px 0 0}.scm-view .button-container .codicon.codicon-arrow-down,.scm-view .button-container .codicon.codicon-arrow-up{font-size:small!important;margin:0 4px 0 0}.scm-view .button-container>.monaco-button-dropdown{flex-grow:1;overflow:hidden}.scm-view .button-container>.monaco-button-dropdown>.monaco-dropdown-button{align-items:center;display:flex;padding:0 4px}.scm-view .button-container>.monaco-button-dropdown>.monaco-button.monaco-text-button{min-width:0}.scm-view .button-container>.monaco-button-dropdown>.monaco-button.monaco-text-button>span:not(.codicon){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scm-view .scm-editor.hidden{display:none}.monaco-workbench .part.panel .scm-view .scm-editor-container{outline:1px solid var(--vscode-panelInput-border)}.monaco-workbench .part.panel .scm-view .scm-editor.synthetic-focus,.scm-view .scm-editor.synthetic-focus{outline:1px solid var(--vscode-focusBorder);outline-offset:-1px}.scm-view .scm-editor.validation-info{outline:1px solid var(--vscode-inputValidation-infoBorder)!important;outline-offset:-1px}.scm-view .scm-editor.validation-warning{outline:1px solid var(--vscode-inputValidation-warningBorder)!important;outline-offset:-1px}.scm-view .scm-editor.validation-error{outline:1px solid var(--vscode-inputValidation-errorBorder)!important;outline-offset:-1px}.scm-editor-validation-container{border-bottom-left-radius:2px;border-bottom-right-radius:2px;border-style:solid;border-width:1px;border-top:none;box-sizing:border-box;display:flex;padding:2px}.scm-editor-validation-container.validation-info{background-color:var(--vscode-inputValidation-infoBackground);border-color:var(--vscode-inputValidation-infoBorder);color:var(--vscode-inputValidation-infoForeground)}.scm-editor-validation-container.validation-warning{background-color:var(--vscode-inputValidation-warningBackground);border-color:var(--vscode-inputValidation-warningBorder);color:var(--vscode-inputValidation-warningForeground)}.scm-editor-validation-container.validation-error{background-color:var(--vscode-inputValidation-errorBackground);border-color:var(--vscode-inputValidation-errorBorder);color:var(--vscode-inputValidation-errorForeground)}.scm-editor-validation{border-style:none;box-sizing:border-box;display:block;flex:auto;font-size:.9em;padding:1px 3px}.scm-editor-validation p{margin:0;padding:0}.scm-editor-validation a{color:var(--vscode-textLink-foreground);-webkit-user-select:none;user-select:none}.scm-editor-validation a:active,.scm-editor-validation a:hover{color:var(--vscode-textLink-activeForeground)}.scm-editor-validation-actions{align-self:start;margin-top:1px}.scm-view .scm-editor-placeholder{box-sizing:border-box;color:var(--vscode-input-placeholderForeground);overflow:hidden;padding:2px 6px;pointer-events:none;position:absolute;text-overflow:ellipsis;white-space:nowrap;z-index:1}.scm-view .scm-editor-placeholder.hidden{display:none}.monaco-workbench .part.basepanel>.content .scm-view .scm-editor-container .monaco-editor,.monaco-workbench .part.basepanel>.content .scm-view .scm-editor-container .monaco-editor .margin,.monaco-workbench .part.basepanel>.content .scm-view .scm-editor-container .monaco-editor .monaco-editor-background,.scm-view .scm-editor-container .monaco-editor,.scm-view .scm-editor-container .monaco-editor .margin,.scm-view .scm-editor-container .monaco-editor-background{background-color:var(--vscode-input-background);color:inherit}.scm-view .scm-editor-container .mtk1{color:var(--vscode-input-foreground)}.scm-repositories-view .scm-provider{margin:0 12px 0 20px;overflow:hidden}.scm-repositories-view .scm-provider>.label>.name{font-weight:400}";
|
|
3
|
+
var css = ".scm-view{height:100%;position:relative}.scm-overflow-widgets-container{height:0;left:0;overflow:visible;position:absolute;top:0;width:0;z-index:5000}.scm-view .monaco-tl-contents>div{overflow:hidden;padding-right:12px}.scm-view .count{display:flex;margin-left:6px}.scm-view .count.hidden{display:none}.scm-view .scm-provider{align-items:center;display:flex;flex-direction:column;flex-flow:nowrap;height:100%}.scm-view.auto-provider-counts .scm-provider>.count[data-count=\"0\"],.scm-view.hide-provider-counts .scm-provider>.count{display:none}.scm-view .scm-provider>.label{flex:1;min-width:50px;overflow:hidden;text-overflow:ellipsis}.scm-view .scm-provider>.label>.name{font-weight:700}.scm-view .scm-provider>.label>.description{font-size:.9em;margin-left:.5em;opacity:.7}.scm-view .scm-provider>.actions{justify-content:flex-end;overflow:hidden}.scm-view .monaco-editor .selected-text{border-radius:0}.scm-view .scm-provider>.actions>.monaco-toolbar>.monaco-action-bar>.actions-container>.action-item{align-items:center;display:flex;padding-left:4px}.scm-view .scm-provider>.actions>.monaco-toolbar>.monaco-action-bar>.actions-container>.action-item:first-child{min-width:20px}.scm-view .scm-provider>.actions>.monaco-toolbar>.monaco-action-bar>.actions-container>.action-item>.action-label,.scm-view .scm-provider>.actions>.monaco-toolbar>.monaco-action-bar>.actions-container>.action-item>.monaco-dropdown>.dropdown-label>.action-label{align-items:center;display:flex;line-height:16px;overflow:hidden}.scm-view .scm-provider>.actions>.monaco-toolbar>.monaco-action-bar>.actions-container>.action-item>.action-label>.codicon{font-size:12px;justify-content:center}.scm-view .scm-provider>.actions>.monaco-toolbar>.monaco-action-bar>.actions-container>.action-item:last-of-type{padding-right:0}.scm-view .scm-provider>.body{flex-grow:1}.scm-view .scm-provider>.status>.monaco-action-bar>.actions-container{border-color:var(--vscode-sideBar-border)}.scm-view .monaco-list-row{line-height:22px}.scm-view .monaco-list-row .history,.scm-view .monaco-list-row .history-item-group,.scm-view .monaco-list-row .resource-group{align-items:center;display:flex;height:100%}.scm-view .monaco-list-row .history-item .monaco-icon-label,.scm-view .monaco-list-row .history-item-group .monaco-icon-label{align-items:center;flex-grow:1}.scm-view .monaco-list-row .history-item{align-items:center;display:flex}.scm-view .monaco-list-row .history-item .stats-container{border:1px solid var(--vscode-scm-historyItemStatisticsBorder);border-radius:2px;display:flex;font-size:11px;gap:4px;line-height:11px;margin-left:6px;min-height:18px;padding:0 4px}.scm-view .monaco-list-row.focused .history-item .stats-container,.scm-view .monaco-list-row.selected .history-item .stats-container{border:1px solid var(--vscode-scm-historyItemSelectedStatisticsBorder)}.scm-view .monaco-list-row .history-item .stats-container>.deletions-label,.scm-view .monaco-list-row .history-item .stats-container>.files-label,.scm-view .monaco-list-row .history-item .stats-container>.insertions-label{align-items:center;display:flex;opacity:.75}.scm-view .monaco-list-row .history-item .stats-container>.insertions-label{color:var(--vscode-scm-historyItemAdditionsForeground)}.scm-view .monaco-list-row .history-item .stats-container>.deletions-label{color:var(--vscode-scm-historyItemDeletionsForeground)}.scm-view .monaco-list-row .history-item .stats-container.hidden,.scm-view .monaco-list-row .history-item .stats-container>.deletions-label.hidden,.scm-view .monaco-list-row .history-item .stats-container>.insertions-label.hidden{display:none}.scm-view .monaco-list-row .history-item .monaco-icon-label .icon-container,.scm-view .monaco-list-row .history-item-group .monaco-icon-label .icon-container{display:flex;padding-right:4px}.scm-view .monaco-list-row .history-item .monaco-icon-label .avatar{border-radius:14px;height:14px;width:14px}.scm-view .monaco-list-row .separator-container{align-items:center;display:flex;padding-left:11px}.scm-view .monaco-list-row .separator-container .label-name{font-size:10px}.scm-view .monaco-list-row.focused .separator-container .label-name,.scm-view .monaco-list-row.selected .separator-container .label-name{color:var(--vscode-foreground)}.scm-view .monaco-list-row .separator-container .separator{border-top:1px solid var(--vscode-sideBar-border);display:flex;flex-grow:1;height:0;margin-left:6px}.scm-view .monaco-list-row .separator-container .actions{padding-left:6px}.scm-view .monaco-list-row .history-item-group>.name,.scm-view .monaco-list-row .history>.name,.scm-view .monaco-list-row .resource-group>.name{flex:1;overflow:hidden;text-overflow:ellipsis}.scm-view .monaco-list-row .resource{display:flex;height:100%}.scm-view .monaco-list-row .resource.faded{opacity:.7}.scm-view .monaco-list-row .resource>.name{flex:1;overflow:hidden}.scm-view .monaco-list-row .resource>.name>.monaco-icon-label:after{margin-right:3px}.scm-view .monaco-list-row .resource>.decoration-icon{background-position:50% 50%;background-repeat:no-repeat;height:100%;margin-right:8px;width:16px}.scm-view .monaco-list-row .resource>.decoration-icon.codicon{margin-right:0;margin-top:3px}.scm-view .monaco-list .monaco-list-row .resource>.name>.monaco-icon-label>.actions{flex-grow:100}.scm-view .monaco-list .monaco-list-row .history-item-group>.actions,.scm-view .monaco-list .monaco-list-row .history-item>.actions,.scm-view .monaco-list .monaco-list-row .resource-group>.actions,.scm-view .monaco-list .monaco-list-row .resource>.name>.monaco-icon-label>.actions,.scm-view .monaco-list .monaco-list-row .separator-container>.actions{display:none;max-width:fit-content}.scm-view .monaco-list .monaco-list-row.focused .history-item-group>.actions,.scm-view .monaco-list .monaco-list-row.focused .history-item>.actions,.scm-view .monaco-list .monaco-list-row.focused .resource-group>.actions,.scm-view .monaco-list .monaco-list-row.focused .resource>.name>.monaco-icon-label>.actions,.scm-view .monaco-list .monaco-list-row.focused .separator-container>.actions,.scm-view .monaco-list .monaco-list-row:hover .history-item-group>.actions,.scm-view .monaco-list .monaco-list-row:hover .history-item>.actions,.scm-view .monaco-list .monaco-list-row:hover .resource-group>.actions,.scm-view .monaco-list .monaco-list-row:hover .resource>.name>.monaco-icon-label>.actions,.scm-view .monaco-list .monaco-list-row:hover .separator-container>.actions,.scm-view .monaco-list:not(.selection-multiple) .monaco-list-row .resource:hover>.actions{display:block}.scm-view .monaco-list .monaco-list-row.focused.force-no-hover,.scm-view .monaco-list .monaco-list-row.force-no-hover,.scm-view .monaco-list .monaco-list-row.selected.force-no-hover,.scm-view .monaco-list .monaco-list-row:hover.force-no-hover{background:transparent!important}.scm-view .monaco-list .monaco-list-row.cursor-default{cursor:default}.scm-view.show-actions .scm-provider>.actions,.scm-view.show-actions>.monaco-list .monaco-list-row .history-item-group>.actions,.scm-view.show-actions>.monaco-list .monaco-list-row .history-item>.actions,.scm-view.show-actions>.monaco-list .monaco-list-row .resource-group>.actions,.scm-view.show-actions>.monaco-list .monaco-list-row .resource>.name>.monaco-icon-label>.actions,.scm-view.show-actions>.monaco-list .monaco-list-row .scm-input>.scm-editor>.actions,.scm-view.show-actions>.monaco-list .monaco-list-row .separator-container>.actions{display:block}.scm-view .monaco-list-row .actions .action-label{padding:2px}.scm-view .scm-input{align-items:center;display:flex;height:100%;padding-left:11px}.scm-view .scm-input .scm-editor .scm-editor-toolbar{padding:1px 3px 1px 1px}.scm-view .scm-input .scm-editor .scm-editor-toolbar.hidden{display:none}.scm-view .scm-input .scm-editor .scm-editor-toolbar.scroll-decoration{box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset}.scm-view .scm-input .scm-editor .scm-editor-toolbar .action-label.codicon.codicon-debug-stop{color:var(--vscode-icon-foreground)!important}.scm-view .scm-editor-container .monaco-editor{border-radius:2px}.scm-view .scm-editor-container .monaco-editor .focused .selected-text{background-color:var(--vscode-editor-selectionBackground)}.scm-view .scm-editor{align-items:flex-start;background-color:var(--vscode-input-background);border:1px solid var(--vscode-input-border,transparent);border-radius:2px;box-sizing:border-box;display:flex;width:100%}.scm-view .button-container{align-items:center;display:flex;height:100%;padding-left:11px}.scm-view .button-container .codicon.codicon-cloud-upload,.scm-view .button-container .codicon.codicon-sync{margin:0 4px 0 0}.scm-view .button-container .codicon.codicon-arrow-down,.scm-view .button-container .codicon.codicon-arrow-up{font-size:small!important;margin:0 4px 0 0}.scm-view .button-container>.monaco-button-dropdown{flex-grow:1;overflow:hidden}.scm-view .button-container>.monaco-button-dropdown>.monaco-dropdown-button{align-items:center;display:flex;padding:0 4px}.scm-view .button-container>.monaco-button-dropdown>.monaco-button.monaco-text-button{min-width:0}.scm-view .button-container>.monaco-button-dropdown>.monaco-button.monaco-text-button>span:not(.codicon){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scm-view .scm-editor.hidden{display:none}.monaco-workbench .part.panel .scm-view .scm-editor-container{outline:1px solid var(--vscode-panelInput-border)}.monaco-workbench .part.panel .scm-view .scm-editor.synthetic-focus,.scm-view .scm-editor.synthetic-focus{outline:1px solid var(--vscode-focusBorder);outline-offset:-1px}.scm-view .scm-editor.validation-info{outline:1px solid var(--vscode-inputValidation-infoBorder)!important;outline-offset:-1px}.scm-view .scm-editor.validation-warning{outline:1px solid var(--vscode-inputValidation-warningBorder)!important;outline-offset:-1px}.scm-view .scm-editor.validation-error{outline:1px solid var(--vscode-inputValidation-errorBorder)!important;outline-offset:-1px}.scm-editor-validation-container{border-bottom-left-radius:2px;border-bottom-right-radius:2px;border-style:solid;border-width:1px;border-top:none;box-sizing:border-box;display:flex;padding:2px}.scm-editor-validation-container.validation-info{background-color:var(--vscode-inputValidation-infoBackground);border-color:var(--vscode-inputValidation-infoBorder);color:var(--vscode-inputValidation-infoForeground)}.scm-editor-validation-container.validation-warning{background-color:var(--vscode-inputValidation-warningBackground);border-color:var(--vscode-inputValidation-warningBorder);color:var(--vscode-inputValidation-warningForeground)}.scm-editor-validation-container.validation-error{background-color:var(--vscode-inputValidation-errorBackground);border-color:var(--vscode-inputValidation-errorBorder);color:var(--vscode-inputValidation-errorForeground)}.scm-editor-validation{border-style:none;box-sizing:border-box;display:block;flex:auto;font-size:.9em;padding:1px 3px}.scm-editor-validation p{margin:0;padding:0}.scm-editor-validation a{color:var(--vscode-textLink-foreground);-webkit-user-select:none;user-select:none}.scm-editor-validation a:active,.scm-editor-validation a:hover{color:var(--vscode-textLink-activeForeground)}.scm-editor-validation-actions{align-self:start;margin-top:1px}.scm-view .scm-editor-placeholder{box-sizing:border-box;color:var(--vscode-input-placeholderForeground);overflow:hidden;padding:2px 6px;pointer-events:none;position:absolute;text-overflow:ellipsis;white-space:nowrap;z-index:1}.scm-view .scm-editor-placeholder.hidden{display:none}.monaco-workbench .part.basepanel>.content .scm-view .scm-editor-container .monaco-editor,.monaco-workbench .part.basepanel>.content .scm-view .scm-editor-container .monaco-editor .margin,.monaco-workbench .part.basepanel>.content .scm-view .scm-editor-container .monaco-editor .monaco-editor-background,.scm-view .scm-editor-container .monaco-editor,.scm-view .scm-editor-container .monaco-editor .margin,.scm-view .scm-editor-container .monaco-editor-background{background-color:var(--vscode-input-background);color:inherit}.scm-view .scm-editor-container .mtk1{color:var(--vscode-input-foreground)}.scm-repositories-view .scm-provider{margin:0 12px 0 20px;overflow:hidden}.scm-repositories-view .scm-provider>.label>.name{font-weight:400}";
|
|
4
4
|
n(css,{});
|
|
5
5
|
|
|
6
6
|
export { css, css as default };
|
|
@@ -181,21 +181,25 @@ SCMRepositoryMenus = ( __decorate([
|
|
|
181
181
|
( __param(3, IMenuService))
|
|
182
182
|
], SCMRepositoryMenus));
|
|
183
183
|
let SCMHistoryProviderMenus = class SCMHistoryProviderMenus {
|
|
184
|
-
get incomingHistoryItemGroupMenu() { return this._incomingHistoryItemGroupMenu; }
|
|
185
|
-
get outgoingHistoryItemGroupMenu() { return this._outgoingHistoryItemGroupMenu; }
|
|
186
184
|
constructor(contextKeyService, menuService) {
|
|
187
185
|
this.contextKeyService = contextKeyService;
|
|
188
186
|
this.menuService = menuService;
|
|
189
187
|
this.historyItemMenus = ( new Map());
|
|
190
188
|
this.disposables = ( new DisposableStore());
|
|
191
|
-
this._incomingHistoryItemGroupMenu = this.menuService.createMenu(MenuId.SCMIncomingChanges, this.contextKeyService);
|
|
192
|
-
this.disposables.add(this._incomingHistoryItemGroupMenu);
|
|
193
|
-
this._outgoingHistoryItemGroupMenu = this.menuService.createMenu(MenuId.SCMOutgoingChanges, this.contextKeyService);
|
|
194
|
-
this.disposables.add(this._outgoingHistoryItemGroupMenu);
|
|
195
189
|
}
|
|
196
190
|
getHistoryItemMenu(historyItem) {
|
|
197
191
|
return this.getOrCreateHistoryItemMenu(historyItem);
|
|
198
192
|
}
|
|
193
|
+
getHistoryItemGroupMenu(historyItemGroup) {
|
|
194
|
+
return historyItemGroup.direction === 'incoming' ?
|
|
195
|
+
this.menuService.createMenu(MenuId.SCMIncomingChanges, this.contextKeyService) :
|
|
196
|
+
this.getOutgoingHistoryItemGroupMenu(MenuId.SCMOutgoingChanges, historyItemGroup);
|
|
197
|
+
}
|
|
198
|
+
getHistoryItemGroupContextMenu(historyItemGroup) {
|
|
199
|
+
return historyItemGroup.direction === 'incoming' ?
|
|
200
|
+
this.menuService.createMenu(MenuId.SCMIncomingChangesContext, this.contextKeyService) :
|
|
201
|
+
this.getOutgoingHistoryItemGroupMenu(MenuId.SCMOutgoingChangesContext, historyItemGroup);
|
|
202
|
+
}
|
|
199
203
|
getOrCreateHistoryItemMenu(historyItem) {
|
|
200
204
|
let result = this.historyItemMenus.get(historyItem);
|
|
201
205
|
if (!result) {
|
|
@@ -218,6 +222,12 @@ let SCMHistoryProviderMenus = class SCMHistoryProviderMenus {
|
|
|
218
222
|
}
|
|
219
223
|
return result;
|
|
220
224
|
}
|
|
225
|
+
getOutgoingHistoryItemGroupMenu(menuId, historyItemGroup) {
|
|
226
|
+
const contextKeyService = this.contextKeyService.createOverlay([
|
|
227
|
+
['scmHistoryItemGroupHasUpstream', !!historyItemGroup.repository.provider.historyProvider?.currentHistoryItemGroup?.base],
|
|
228
|
+
]);
|
|
229
|
+
return this.menuService.createMenu(menuId, contextKeyService);
|
|
230
|
+
}
|
|
221
231
|
dispose() {
|
|
222
232
|
this.disposables.dispose();
|
|
223
233
|
}
|
|
@@ -4,7 +4,7 @@ import { Extensions } from 'vscode/vscode/vs/workbench/common/contributions';
|
|
|
4
4
|
import { DirtyDiffWorkbenchController } from 'vscode/vscode/vs/workbench/contrib/scm/browser/dirtydiffDecorator';
|
|
5
5
|
import { VIEWLET_ID, VIEW_PANE_ID, REPOSITORIES_VIEW_PANE_ID, ISCMService } from 'vscode/vscode/vs/workbench/contrib/scm/common/scm';
|
|
6
6
|
import { MenuRegistry, MenuId } from 'vscode/vscode/vs/platform/actions/common/actions';
|
|
7
|
-
import { SCMActiveResourceContextKeyController, SCMStatusController } from './activity.js';
|
|
7
|
+
import { SCMActiveResourceContextKeyController, SCMActiveRepositoryContextKeyController, SCMStatusController } from './activity.js';
|
|
8
8
|
import { Extensions as Extensions$2 } from 'vscode/vscode/vs/platform/configuration/common/configurationRegistry';
|
|
9
9
|
import { ContextKeyExpr, IContextKeyService } from 'vscode/vscode/vs/platform/contextkey/common/contextkey';
|
|
10
10
|
import { ICommandService, CommandsRegistry } from 'vscode/vscode/vs/platform/commands/common/commands';
|
|
@@ -120,6 +120,8 @@ viewsRegistry.registerViews([{
|
|
|
120
120
|
}], viewContainer);
|
|
121
121
|
( Registry.as(Extensions.Workbench))
|
|
122
122
|
.registerWorkbenchContribution(SCMActiveResourceContextKeyController, 3 );
|
|
123
|
+
( Registry.as(Extensions.Workbench))
|
|
124
|
+
.registerWorkbenchContribution(SCMActiveRepositoryContextKeyController, 3 );
|
|
123
125
|
( Registry.as(Extensions.Workbench))
|
|
124
126
|
.registerWorkbenchContribution(SCMStatusController, 3 );
|
|
125
127
|
( Registry.as(Extensions$2.Configuration)).registerConfiguration({
|
|
@@ -32,7 +32,7 @@ class ListDelegate {
|
|
|
32
32
|
}
|
|
33
33
|
let SCMRepositoriesViewPane = class SCMRepositoriesViewPane extends ViewPane {
|
|
34
34
|
constructor(options, scmViewService, keybindingService, contextMenuService, instantiationService, viewDescriptorService, contextKeyService, configurationService, openerService, themeService, telemetryService) {
|
|
35
|
-
super(options, keybindingService, contextMenuService, configurationService, contextKeyService, viewDescriptorService, instantiationService, openerService, themeService, telemetryService);
|
|
35
|
+
super({ ...options, titleMenuId: MenuId.SCMSourceControlTitle }, keybindingService, contextMenuService, configurationService, contextKeyService, viewDescriptorService, instantiationService, openerService, themeService, telemetryService);
|
|
36
36
|
this.scmViewService = scmViewService;
|
|
37
37
|
this.disposables = ( new DisposableStore());
|
|
38
38
|
}
|
|
@@ -5,7 +5,7 @@ import { basename, dirname } from 'vscode/vscode/vs/base/common/resources';
|
|
|
5
5
|
import { Disposable, DisposableStore, toDisposable, combinedDisposable, MutableDisposable, DisposableMap, dispose } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
6
6
|
import { ViewAction, ViewPane } from 'vscode/vscode/vs/workbench/browser/parts/views/viewPane';
|
|
7
7
|
import { append, $, asCSSUrl, prepend, Dimension, trackFocus, clearNode } from 'vscode/vscode/vs/base/browser/dom';
|
|
8
|
-
import { VIEW_PANE_ID, SCMInputChangeReason, ISCMViewService, ISCMService
|
|
8
|
+
import { VIEW_PANE_ID, SCMInputChangeReason, ISCMViewService, ISCMService } from 'vscode/vscode/vs/workbench/contrib/scm/common/scm';
|
|
9
9
|
import { ResourceLabels } from 'vscode/vscode/vs/workbench/browser/labels';
|
|
10
10
|
import { CountBadge } from 'vscode/vscode/vs/base/browser/ui/countBadge/countBadge';
|
|
11
11
|
import { IEditorService } from 'vscode/vscode/vs/workbench/services/editor/common/editorService';
|
|
@@ -14,7 +14,7 @@ import { IContextMenuService, IContextViewService } from 'vscode/vscode/vs/platf
|
|
|
14
14
|
import { RawContextKey, ContextKeyExpr, IContextKeyService } from 'vscode/vscode/vs/platform/contextkey/common/contextkey';
|
|
15
15
|
import { ICommandService } from 'vscode/vscode/vs/platform/commands/common/commands';
|
|
16
16
|
import { IKeybindingService } from 'vscode/vscode/vs/platform/keybinding/common/keybinding';
|
|
17
|
-
import { MenuId, MenuRegistry, registerAction2, MenuItemAction, IMenuService
|
|
17
|
+
import { MenuId, MenuRegistry, registerAction2, Action2, MenuItemAction, IMenuService } from 'vscode/vscode/vs/platform/actions/common/actions';
|
|
18
18
|
import { Action, Separator, ActionRunner } from 'vscode/vscode/vs/base/common/actions';
|
|
19
19
|
import { ActionBar } from 'vscode/vscode/vs/base/browser/ui/actionbar/actionbar';
|
|
20
20
|
import { IThemeService } from 'vscode/vscode/vs/platform/theme/common/themeService';
|
|
@@ -40,6 +40,7 @@ import { IModelService } from 'vscode/vscode/vs/editor/common/services/model';
|
|
|
40
40
|
import { EditorExtensionsRegistry } from 'vscode/vscode/vs/editor/browser/editorExtensions';
|
|
41
41
|
import { MenuPreventer } from 'vscode/vscode/vs/workbench/contrib/codeEditor/browser/menuPreventer';
|
|
42
42
|
import { SelectionClipboardContributionID } from 'vscode/vscode/vs/workbench/contrib/codeEditor/browser/selectionClipboard';
|
|
43
|
+
import { EditorDictation } from 'vscode/vscode/vs/workbench/contrib/codeEditor/browser/dictation/editorDictation';
|
|
43
44
|
import { ContextMenuController } from 'vscode/vscode/vs/editor/contrib/contextmenu/browser/contextmenu';
|
|
44
45
|
import { isMacintosh } from 'vscode/vscode/vs/base/common/platform';
|
|
45
46
|
import { format, compare } from 'vscode/vscode/vs/base/common/strings';
|
|
@@ -81,12 +82,13 @@ import { EditOperation } from 'vscode/vscode/vs/editor/common/core/editOperation
|
|
|
81
82
|
import { stripIcons } from 'vscode/vscode/vs/base/common/iconLabels';
|
|
82
83
|
import { IconLabel } from 'vscode/vscode/vs/base/browser/ui/iconLabel/iconLabel';
|
|
83
84
|
import { registerColor, transparent, foreground, listActiveSelectionForeground } from 'vscode/vscode/vs/platform/theme/common/colorRegistry';
|
|
84
|
-
import { WorkbenchToolBar } from 'vscode/vscode/vs/platform/actions/browser/toolbar';
|
|
85
|
+
import { WorkbenchToolBar, MenuWorkbenchToolBar } from 'vscode/vscode/vs/platform/actions/browser/toolbar';
|
|
85
86
|
import { CancellationTokenSource } from 'vscode/vscode/vs/base/common/cancellation';
|
|
86
87
|
import { DropdownWithPrimaryActionViewItem } from 'vscode/vscode/vs/platform/actions/browser/dropdownWithPrimaryActionViewItem';
|
|
87
88
|
import { clamp } from 'vscode/vscode/vs/base/common/numbers';
|
|
89
|
+
import { ILogService } from 'vscode/vscode/vs/platform/log/common/log';
|
|
88
90
|
|
|
89
|
-
var ActionButtonRenderer_1, InputRenderer_1, ResourceGroupRenderer_1, ResourceRenderer_1, HistoryItemGroupRenderer_1, HistoryItemRenderer_1, HistoryItemChangeRenderer_1, SCMInputWidget_1;
|
|
91
|
+
var ActionButtonRenderer_1, InputRenderer_1, ResourceGroupRenderer_1, ResourceRenderer_1, HistoryItemGroupRenderer_1, HistoryItemRenderer_1, HistoryItemChangeRenderer_1, SeparatorRenderer_1, SCMInputWidget_1;
|
|
90
92
|
registerColor('scm.historyItemAdditionsForeground', {
|
|
91
93
|
dark: 'gitDecoration.addedResourceForeground',
|
|
92
94
|
light: 'gitDecoration.addedResourceForeground',
|
|
@@ -647,10 +649,10 @@ let HistoryItemGroupRenderer = class HistoryItemGroupRenderer {
|
|
|
647
649
|
const repositoryMenus = this.scmViewService.menus.getRepositoryMenus(historyItemGroup.repository.provider);
|
|
648
650
|
const historyProviderMenu = repositoryMenus.historyProviderMenu;
|
|
649
651
|
if (historyProviderMenu) {
|
|
650
|
-
const
|
|
651
|
-
const
|
|
652
|
+
const menu = historyProviderMenu.getHistoryItemGroupMenu(historyItemGroup);
|
|
653
|
+
const resetMenuId = historyItemGroup.direction === 'incoming' ? MenuId.SCMIncomingChanges : MenuId.SCMOutgoingChanges;
|
|
652
654
|
templateData.elementDisposables.add(connectPrimaryMenu(menu, (primary, secondary) => {
|
|
653
|
-
templateData.toolBar.setActions(primary, secondary, [
|
|
655
|
+
templateData.toolBar.setActions(primary, secondary, [resetMenuId]);
|
|
654
656
|
}));
|
|
655
657
|
templateData.toolBar.context = historyItemGroup;
|
|
656
658
|
}
|
|
@@ -851,16 +853,37 @@ let HistoryItemChangeRenderer = class HistoryItemChangeRenderer {
|
|
|
851
853
|
HistoryItemChangeRenderer = HistoryItemChangeRenderer_1 = ( __decorate([
|
|
852
854
|
( __param(2, ILabelService))
|
|
853
855
|
], HistoryItemChangeRenderer));
|
|
854
|
-
class SeparatorRenderer {
|
|
856
|
+
let SeparatorRenderer = class SeparatorRenderer {
|
|
857
|
+
static { SeparatorRenderer_1 = this; }
|
|
855
858
|
static { this.TEMPLATE_ID = 'separator'; }
|
|
856
|
-
get templateId() { return
|
|
859
|
+
get templateId() { return SeparatorRenderer_1.TEMPLATE_ID; }
|
|
860
|
+
constructor(contextKeyService, contextMenuService, keybindingService, menuService, telemetryService) {
|
|
861
|
+
this.contextKeyService = contextKeyService;
|
|
862
|
+
this.contextMenuService = contextMenuService;
|
|
863
|
+
this.keybindingService = keybindingService;
|
|
864
|
+
this.menuService = menuService;
|
|
865
|
+
this.telemetryService = telemetryService;
|
|
866
|
+
}
|
|
857
867
|
renderTemplate(container) {
|
|
858
868
|
container.parentElement.parentElement.querySelector('.monaco-tl-twistie').classList.add('force-no-twistie');
|
|
859
869
|
container.parentElement.parentElement.classList.add('cursor-default', 'force-no-hover');
|
|
870
|
+
const disposables = ( new DisposableStore());
|
|
860
871
|
const element = append(container, $('.separator-container'));
|
|
861
872
|
const label = ( new IconLabel(element, { supportIcons: true, }));
|
|
862
873
|
append(element, $('.separator'));
|
|
863
|
-
|
|
874
|
+
disposables.add(label);
|
|
875
|
+
const toolBar = ( new MenuWorkbenchToolBar(
|
|
876
|
+
append(element, $('.actions')),
|
|
877
|
+
MenuId.SCMChangesSeparator,
|
|
878
|
+
{ moreIcon: Codicon.gear },
|
|
879
|
+
this.menuService,
|
|
880
|
+
this.contextKeyService,
|
|
881
|
+
this.contextMenuService,
|
|
882
|
+
this.keybindingService,
|
|
883
|
+
this.telemetryService
|
|
884
|
+
));
|
|
885
|
+
disposables.add(toolBar);
|
|
886
|
+
return { label, disposables };
|
|
864
887
|
}
|
|
865
888
|
renderElement(element, index, templateData, height) {
|
|
866
889
|
templateData.label.setLabel(element.element.label, undefined, { title: element.element.ariaLabel });
|
|
@@ -869,9 +892,16 @@ class SeparatorRenderer {
|
|
|
869
892
|
throw new Error('Should never happen since node is incompressible');
|
|
870
893
|
}
|
|
871
894
|
disposeTemplate(templateData) {
|
|
872
|
-
|
|
895
|
+
templateData.disposables.dispose();
|
|
873
896
|
}
|
|
874
|
-
}
|
|
897
|
+
};
|
|
898
|
+
SeparatorRenderer = SeparatorRenderer_1 = ( __decorate([
|
|
899
|
+
( __param(0, IContextKeyService)),
|
|
900
|
+
( __param(1, IContextMenuService)),
|
|
901
|
+
( __param(2, IKeybindingService)),
|
|
902
|
+
( __param(3, IMenuService)),
|
|
903
|
+
( __param(4, ITelemetryService))
|
|
904
|
+
], SeparatorRenderer));
|
|
875
905
|
class ListDelegate {
|
|
876
906
|
constructor(inputRenderer) {
|
|
877
907
|
this.inputRenderer = inputRenderer;
|
|
@@ -1188,6 +1218,7 @@ SCMAccessibilityProvider = ( __decorate([
|
|
|
1188
1218
|
const Menus = {
|
|
1189
1219
|
ViewSort: ( new MenuId('SCMViewSort')),
|
|
1190
1220
|
Repositories: ( new MenuId('SCMRepositories')),
|
|
1221
|
+
ChangesSettings: ( new MenuId('SCMChangesSettings')),
|
|
1191
1222
|
};
|
|
1192
1223
|
const ContextKeys = {
|
|
1193
1224
|
SCMViewMode: ( new RawContextKey('scmViewMode', "list" )),
|
|
@@ -1211,7 +1242,19 @@ MenuRegistry.appendMenuItem(MenuId.SCMTitle, {
|
|
|
1211
1242
|
)),
|
|
1212
1243
|
submenu: Menus.ViewSort,
|
|
1213
1244
|
when: ( ContextKeyExpr.and(( ContextKeyExpr.equals('view', VIEW_PANE_ID)), ( ContextKeys.RepositoryCount.notEqualsTo(0)))),
|
|
1214
|
-
group: '0_view&sort'
|
|
1245
|
+
group: '0_view&sort',
|
|
1246
|
+
order: 1
|
|
1247
|
+
});
|
|
1248
|
+
MenuRegistry.appendMenuItem(MenuId.SCMTitle, {
|
|
1249
|
+
title: ( localizeWithPath(
|
|
1250
|
+
'vs/workbench/contrib/scm/browser/scmViewPane',
|
|
1251
|
+
'scmChanges',
|
|
1252
|
+
"Incoming & Outgoing"
|
|
1253
|
+
)),
|
|
1254
|
+
submenu: Menus.ChangesSettings,
|
|
1255
|
+
when: ( ContextKeyExpr.and(( ContextKeyExpr.equals('view', VIEW_PANE_ID)), ( ContextKeys.RepositoryCount.notEqualsTo(0)))),
|
|
1256
|
+
group: '0_view&sort',
|
|
1257
|
+
order: 2
|
|
1215
1258
|
});
|
|
1216
1259
|
MenuRegistry.appendMenuItem(Menus.ViewSort, {
|
|
1217
1260
|
title: ( localizeWithPath(
|
|
@@ -1220,8 +1263,151 @@ MenuRegistry.appendMenuItem(Menus.ViewSort, {
|
|
|
1220
1263
|
"Repositories"
|
|
1221
1264
|
)),
|
|
1222
1265
|
submenu: Menus.Repositories,
|
|
1266
|
+
when: ContextKeyExpr.greater(ContextKeys.RepositoryCount.key, 1),
|
|
1223
1267
|
group: '0_repositories'
|
|
1224
1268
|
});
|
|
1269
|
+
class SCMChangesSettingAction extends Action2 {
|
|
1270
|
+
constructor(settingKey, settingValue, desc) {
|
|
1271
|
+
super({
|
|
1272
|
+
...desc,
|
|
1273
|
+
f1: false,
|
|
1274
|
+
toggled: ( ContextKeyExpr.equals(`config.${settingKey}`, settingValue)),
|
|
1275
|
+
});
|
|
1276
|
+
this.settingKey = settingKey;
|
|
1277
|
+
this.settingValue = settingValue;
|
|
1278
|
+
}
|
|
1279
|
+
run(accessor) {
|
|
1280
|
+
const configurationService = accessor.get(IConfigurationService);
|
|
1281
|
+
configurationService.updateValue(this.settingKey, this.settingValue);
|
|
1282
|
+
}
|
|
1283
|
+
}
|
|
1284
|
+
MenuRegistry.appendMenuItem(MenuId.SCMChangesSeparator, {
|
|
1285
|
+
title: ( localizeWithPath(
|
|
1286
|
+
'vs/workbench/contrib/scm/browser/scmViewPane',
|
|
1287
|
+
'incomingChanges',
|
|
1288
|
+
"Show Incoming Changes"
|
|
1289
|
+
)),
|
|
1290
|
+
submenu: MenuId.SCMIncomingChangesSetting,
|
|
1291
|
+
group: '1_incoming&outgoing',
|
|
1292
|
+
order: 1
|
|
1293
|
+
});
|
|
1294
|
+
MenuRegistry.appendMenuItem(Menus.ChangesSettings, {
|
|
1295
|
+
title: ( localizeWithPath(
|
|
1296
|
+
'vs/workbench/contrib/scm/browser/scmViewPane',
|
|
1297
|
+
'incomingChanges',
|
|
1298
|
+
"Show Incoming Changes"
|
|
1299
|
+
)),
|
|
1300
|
+
submenu: MenuId.SCMIncomingChangesSetting,
|
|
1301
|
+
group: '1_incoming&outgoing',
|
|
1302
|
+
order: 1
|
|
1303
|
+
});
|
|
1304
|
+
registerAction2(class extends SCMChangesSettingAction {
|
|
1305
|
+
constructor() {
|
|
1306
|
+
super('scm.showIncomingChanges', 'always', {
|
|
1307
|
+
id: 'workbench.scm.action.showIncomingChanges.always',
|
|
1308
|
+
title: ( localizeWithPath('vs/workbench/contrib/scm/browser/scmViewPane', 'always', "Always")),
|
|
1309
|
+
menu: { id: MenuId.SCMIncomingChangesSetting },
|
|
1310
|
+
});
|
|
1311
|
+
}
|
|
1312
|
+
});
|
|
1313
|
+
registerAction2(class extends SCMChangesSettingAction {
|
|
1314
|
+
constructor() {
|
|
1315
|
+
super('scm.showIncomingChanges', 'auto', {
|
|
1316
|
+
id: 'workbench.scm.action.showIncomingChanges.auto',
|
|
1317
|
+
title: ( localizeWithPath('vs/workbench/contrib/scm/browser/scmViewPane', 'auto', "Auto")),
|
|
1318
|
+
menu: {
|
|
1319
|
+
id: MenuId.SCMIncomingChangesSetting,
|
|
1320
|
+
}
|
|
1321
|
+
});
|
|
1322
|
+
}
|
|
1323
|
+
});
|
|
1324
|
+
registerAction2(class extends SCMChangesSettingAction {
|
|
1325
|
+
constructor() {
|
|
1326
|
+
super('scm.showIncomingChanges', 'never', {
|
|
1327
|
+
id: 'workbench.scm.action.showIncomingChanges.never',
|
|
1328
|
+
title: ( localizeWithPath('vs/workbench/contrib/scm/browser/scmViewPane', 'never', "Never")),
|
|
1329
|
+
menu: {
|
|
1330
|
+
id: MenuId.SCMIncomingChangesSetting,
|
|
1331
|
+
}
|
|
1332
|
+
});
|
|
1333
|
+
}
|
|
1334
|
+
});
|
|
1335
|
+
MenuRegistry.appendMenuItem(MenuId.SCMChangesSeparator, {
|
|
1336
|
+
title: ( localizeWithPath(
|
|
1337
|
+
'vs/workbench/contrib/scm/browser/scmViewPane',
|
|
1338
|
+
'outgoingChanges',
|
|
1339
|
+
"Show Outgoing Changes"
|
|
1340
|
+
)),
|
|
1341
|
+
submenu: MenuId.SCMOutgoingChangesSetting,
|
|
1342
|
+
group: '1_incoming&outgoing',
|
|
1343
|
+
order: 2
|
|
1344
|
+
});
|
|
1345
|
+
MenuRegistry.appendMenuItem(Menus.ChangesSettings, {
|
|
1346
|
+
title: ( localizeWithPath(
|
|
1347
|
+
'vs/workbench/contrib/scm/browser/scmViewPane',
|
|
1348
|
+
'outgoingChanges',
|
|
1349
|
+
"Show Outgoing Changes"
|
|
1350
|
+
)),
|
|
1351
|
+
submenu: MenuId.SCMOutgoingChangesSetting,
|
|
1352
|
+
group: '1_incoming&outgoing',
|
|
1353
|
+
order: 2
|
|
1354
|
+
});
|
|
1355
|
+
registerAction2(class extends SCMChangesSettingAction {
|
|
1356
|
+
constructor() {
|
|
1357
|
+
super('scm.showOutgoingChanges', 'always', {
|
|
1358
|
+
id: 'workbench.scm.action.showOutgoingChanges.always',
|
|
1359
|
+
title: ( localizeWithPath('vs/workbench/contrib/scm/browser/scmViewPane', 'always', "Always")),
|
|
1360
|
+
menu: {
|
|
1361
|
+
id: MenuId.SCMOutgoingChangesSetting,
|
|
1362
|
+
}
|
|
1363
|
+
});
|
|
1364
|
+
}
|
|
1365
|
+
});
|
|
1366
|
+
registerAction2(class extends SCMChangesSettingAction {
|
|
1367
|
+
constructor() {
|
|
1368
|
+
super('scm.showOutgoingChanges', 'auto', {
|
|
1369
|
+
id: 'workbench.scm.action.showOutgoingChanges.auto',
|
|
1370
|
+
title: ( localizeWithPath('vs/workbench/contrib/scm/browser/scmViewPane', 'auto', "Auto")),
|
|
1371
|
+
menu: {
|
|
1372
|
+
id: MenuId.SCMOutgoingChangesSetting,
|
|
1373
|
+
}
|
|
1374
|
+
});
|
|
1375
|
+
}
|
|
1376
|
+
});
|
|
1377
|
+
registerAction2(class extends SCMChangesSettingAction {
|
|
1378
|
+
constructor() {
|
|
1379
|
+
super('scm.showOutgoingChanges', 'never', {
|
|
1380
|
+
id: 'workbench.scm.action.showOutgoingChanges.never',
|
|
1381
|
+
title: ( localizeWithPath('vs/workbench/contrib/scm/browser/scmViewPane', 'never', "Never")),
|
|
1382
|
+
menu: {
|
|
1383
|
+
id: MenuId.SCMOutgoingChangesSetting,
|
|
1384
|
+
}
|
|
1385
|
+
});
|
|
1386
|
+
}
|
|
1387
|
+
});
|
|
1388
|
+
registerAction2(class extends Action2 {
|
|
1389
|
+
constructor() {
|
|
1390
|
+
super({
|
|
1391
|
+
id: 'workbench.scm.action.scm.showChangesSummary',
|
|
1392
|
+
title: ( localizeWithPath(
|
|
1393
|
+
'vs/workbench/contrib/scm/browser/scmViewPane',
|
|
1394
|
+
'showChangesSummary',
|
|
1395
|
+
"Show Changes Summary"
|
|
1396
|
+
)),
|
|
1397
|
+
f1: false,
|
|
1398
|
+
toggled: ( ContextKeyExpr.equals('config.scm.showChangesSummary', true)),
|
|
1399
|
+
menu: [
|
|
1400
|
+
{ id: MenuId.SCMChangesSeparator, order: 3 },
|
|
1401
|
+
{ id: Menus.ChangesSettings, order: 3 },
|
|
1402
|
+
]
|
|
1403
|
+
});
|
|
1404
|
+
}
|
|
1405
|
+
run(accessor) {
|
|
1406
|
+
const configurationService = accessor.get(IConfigurationService);
|
|
1407
|
+
const configValue = configurationService.getValue('scm.showChangesSummary') === true;
|
|
1408
|
+
configurationService.updateValue('scm.showChangesSummary', !configValue);
|
|
1409
|
+
}
|
|
1410
|
+
});
|
|
1225
1411
|
class RepositoryVisibilityAction extends Action2 {
|
|
1226
1412
|
constructor(repository) {
|
|
1227
1413
|
super({
|
|
@@ -1381,8 +1567,7 @@ class RepositorySortAction extends ViewAction {
|
|
|
1381
1567
|
group: '1_sort'
|
|
1382
1568
|
},
|
|
1383
1569
|
{
|
|
1384
|
-
id: MenuId.
|
|
1385
|
-
when: ( ContextKeyExpr.equals('view', REPOSITORIES_VIEW_PANE_ID)),
|
|
1570
|
+
id: MenuId.SCMSourceControlTitle,
|
|
1386
1571
|
group: '1_sort',
|
|
1387
1572
|
},
|
|
1388
1573
|
]
|
|
@@ -1893,7 +2078,8 @@ let SCMInputWidget = class SCMInputWidget {
|
|
|
1893
2078
|
SuggestController.ID,
|
|
1894
2079
|
InlineCompletionsController.ID,
|
|
1895
2080
|
CodeActionController.ID,
|
|
1896
|
-
FormatOnType.ID
|
|
2081
|
+
FormatOnType.ID,
|
|
2082
|
+
EditorDictation.ID
|
|
1897
2083
|
])
|
|
1898
2084
|
};
|
|
1899
2085
|
const services = ( new ServiceCollection([IContextKeyService, this.contextKeyService]));
|
|
@@ -1931,11 +2117,11 @@ let SCMInputWidget = class SCMInputWidget {
|
|
|
1931
2117
|
Event.filter(this.configurationService.onDidChangeConfiguration, e => e.affectsConfiguration('scm.showInputActionButton'))(() => this.layout(), this, this.disposables);
|
|
1932
2118
|
this.onDidChangeContentHeight = Event.signal(Event.filter(this.inputEditor.onDidContentSizeChange, e => e.contentHeightChanged, this.disposables));
|
|
1933
2119
|
this.toolbar = instantiationService2.createInstance(SCMInputWidgetToolbar, this.toolbarContainer, {
|
|
1934
|
-
actionViewItemProvider: action => {
|
|
2120
|
+
actionViewItemProvider: (action, options) => {
|
|
1935
2121
|
if (action instanceof MenuItemAction && this.toolbar.dropdownActions.length > 1) {
|
|
1936
|
-
return instantiationService.createInstance(DropdownWithPrimaryActionViewItem, action, this.toolbar.dropdownAction, this.toolbar.dropdownActions, '', this.contextMenuService, { actionRunner: this.toolbar.actionRunner });
|
|
2122
|
+
return instantiationService.createInstance(DropdownWithPrimaryActionViewItem, action, this.toolbar.dropdownAction, this.toolbar.dropdownActions, '', this.contextMenuService, { actionRunner: this.toolbar.actionRunner, hoverDelegate: options.hoverDelegate });
|
|
1937
2123
|
}
|
|
1938
|
-
return createActionViewItem(instantiationService, action);
|
|
2124
|
+
return createActionViewItem(instantiationService, action, options);
|
|
1939
2125
|
},
|
|
1940
2126
|
menuOptions: {
|
|
1941
2127
|
shouldForwardArgs: true
|
|
@@ -1945,8 +2131,8 @@ let SCMInputWidget = class SCMInputWidget {
|
|
|
1945
2131
|
this.disposables.add(this.toolbar);
|
|
1946
2132
|
}
|
|
1947
2133
|
getContentHeight() {
|
|
1948
|
-
const lineHeight = this.inputEditor.getOption(
|
|
1949
|
-
const { top, bottom } = this.inputEditor.getOption(
|
|
2134
|
+
const lineHeight = this.inputEditor.getOption(67 );
|
|
2135
|
+
const { top, bottom } = this.inputEditor.getOption(84 );
|
|
1950
2136
|
const inputMinLinesConfig = this.configurationService.getValue('scm.inputMinLineCount');
|
|
1951
2137
|
const inputMinLines = typeof inputMinLinesConfig === 'number' ? clamp(inputMinLinesConfig, 1, 50) : 1;
|
|
1952
2138
|
const editorMinHeight = inputMinLines * lineHeight + top + bottom;
|
|
@@ -2125,10 +2311,11 @@ let SCMViewPane = class SCMViewPane extends ViewPane {
|
|
|
2125
2311
|
this.storageService.store(`scm.viewSortKey`, sortKey, 1 , 0 );
|
|
2126
2312
|
}
|
|
2127
2313
|
}
|
|
2128
|
-
constructor(options, commandService, editorService, menuService, scmService, scmViewService, storageService, uriIdentityService, keybindingService, themeService, contextMenuService, instantiationService, viewDescriptorService, configurationService, contextKeyService, openerService, telemetryService) {
|
|
2314
|
+
constructor(options, commandService, editorService, logService, menuService, scmService, scmViewService, storageService, uriIdentityService, keybindingService, themeService, contextMenuService, instantiationService, viewDescriptorService, configurationService, contextKeyService, openerService, telemetryService) {
|
|
2129
2315
|
super({ ...options, titleMenuId: MenuId.SCMTitle }, keybindingService, contextMenuService, configurationService, contextKeyService, viewDescriptorService, instantiationService, openerService, themeService, telemetryService);
|
|
2130
2316
|
this.commandService = commandService;
|
|
2131
2317
|
this.editorService = editorService;
|
|
2318
|
+
this.logService = logService;
|
|
2132
2319
|
this.menuService = menuService;
|
|
2133
2320
|
this.scmService = scmService;
|
|
2134
2321
|
this.scmViewService = scmViewService;
|
|
@@ -2418,9 +2605,17 @@ let SCMViewPane = class SCMViewPane extends ViewPane {
|
|
|
2418
2605
|
repositoryDisposables.add(repository.provider.onDidChange(() => this.updateChildren(repository)));
|
|
2419
2606
|
repositoryDisposables.add(repository.input.onDidChangeVisibility(() => this.updateChildren(repository)));
|
|
2420
2607
|
repositoryDisposables.add(repository.provider.onDidChangeResourceGroups(() => this.updateChildren(repository)));
|
|
2421
|
-
|
|
2422
|
-
|
|
2423
|
-
|
|
2608
|
+
repositoryDisposables.add(Event.runAndSubscribe(repository.provider.onDidChangeHistoryProvider, () => {
|
|
2609
|
+
if (!repository.provider.historyProvider) {
|
|
2610
|
+
this.logService.debug('SCMViewPane:onDidChangeVisibleRepositories - no history provider present');
|
|
2611
|
+
return;
|
|
2612
|
+
}
|
|
2613
|
+
repositoryDisposables.add(repository.provider.historyProvider.onDidChangeCurrentHistoryItemGroup(() => {
|
|
2614
|
+
this.updateChildren(repository);
|
|
2615
|
+
this.logService.debug('SCMViewPane:onDidChangeCurrentHistoryItemGroup - update children');
|
|
2616
|
+
}));
|
|
2617
|
+
this.logService.debug('SCMViewPane:onDidChangeVisibleRepositories - onDidChangeCurrentHistoryItemGroup listener added');
|
|
2618
|
+
}));
|
|
2424
2619
|
const resourceGroupDisposables = repositoryDisposables.add(( new DisposableMap()));
|
|
2425
2620
|
const onDidChangeResourceGroups = () => {
|
|
2426
2621
|
for (const [resourceGroup] of resourceGroupDisposables) {
|
|
@@ -2463,10 +2658,12 @@ let SCMViewPane = class SCMViewPane extends ViewPane {
|
|
|
2463
2658
|
const element = e.element;
|
|
2464
2659
|
let context = element;
|
|
2465
2660
|
let actions = [];
|
|
2661
|
+
let actionRunner = ( new RepositoryPaneActionRunner(() => this.getSelectedResources()));
|
|
2466
2662
|
if (isSCMRepository(element)) {
|
|
2467
2663
|
const menus = this.scmViewService.menus.getRepositoryMenus(element.provider);
|
|
2468
2664
|
const menu = menus.repositoryContextMenu;
|
|
2469
2665
|
context = element.provider;
|
|
2666
|
+
actionRunner = ( new RepositoryActionRunner(() => this.getSelectedRepositories()));
|
|
2470
2667
|
actions = collectContextMenuActions(menu);
|
|
2471
2668
|
}
|
|
2472
2669
|
else if (isSCMInput(element) || isSCMActionButton(element)) ;
|
|
@@ -2492,9 +2689,22 @@ let SCMViewPane = class SCMViewPane extends ViewPane {
|
|
|
2492
2689
|
actions = collectContextMenuActions(menu);
|
|
2493
2690
|
}
|
|
2494
2691
|
}
|
|
2495
|
-
|
|
2496
|
-
|
|
2497
|
-
|
|
2692
|
+
else if (isSCMHistoryItemGroupTreeElement(element)) {
|
|
2693
|
+
const menus = this.scmViewService.menus.getRepositoryMenus(element.repository.provider);
|
|
2694
|
+
const menu = menus.historyProviderMenu?.getHistoryItemGroupContextMenu(element);
|
|
2695
|
+
if (menu) {
|
|
2696
|
+
actionRunner = ( new HistoryItemGroupActionRunner());
|
|
2697
|
+
createAndFillInContextMenuActions(menu, { shouldForwardArgs: true }, actions);
|
|
2698
|
+
}
|
|
2699
|
+
}
|
|
2700
|
+
else if (isSCMHistoryItemTreeElement(element)) {
|
|
2701
|
+
const menus = this.scmViewService.menus.getRepositoryMenus(element.historyItemGroup.repository.provider);
|
|
2702
|
+
const menu = menus.historyProviderMenu?.getHistoryItemMenu(element);
|
|
2703
|
+
if (menu) {
|
|
2704
|
+
actionRunner = ( new HistoryItemActionRunner());
|
|
2705
|
+
actions = collectContextMenuActions(menu);
|
|
2706
|
+
}
|
|
2707
|
+
}
|
|
2498
2708
|
actionRunner.onWillRun(() => this.tree.domFocus());
|
|
2499
2709
|
this.contextMenuService.showContextMenu({
|
|
2500
2710
|
getAnchor: () => e.anchor,
|
|
@@ -2653,25 +2863,27 @@ let SCMViewPane = class SCMViewPane extends ViewPane {
|
|
|
2653
2863
|
SCMViewPane = ( __decorate([
|
|
2654
2864
|
( __param(1, ICommandService)),
|
|
2655
2865
|
( __param(2, IEditorService)),
|
|
2656
|
-
( __param(3,
|
|
2657
|
-
( __param(4,
|
|
2658
|
-
( __param(5,
|
|
2659
|
-
( __param(6,
|
|
2660
|
-
( __param(7,
|
|
2661
|
-
( __param(8,
|
|
2662
|
-
( __param(9,
|
|
2663
|
-
( __param(10,
|
|
2664
|
-
( __param(11,
|
|
2665
|
-
( __param(12,
|
|
2666
|
-
( __param(13,
|
|
2667
|
-
( __param(14,
|
|
2668
|
-
( __param(15,
|
|
2669
|
-
( __param(16,
|
|
2866
|
+
( __param(3, ILogService)),
|
|
2867
|
+
( __param(4, IMenuService)),
|
|
2868
|
+
( __param(5, ISCMService)),
|
|
2869
|
+
( __param(6, ISCMViewService)),
|
|
2870
|
+
( __param(7, IStorageService)),
|
|
2871
|
+
( __param(8, IUriIdentityService)),
|
|
2872
|
+
( __param(9, IKeybindingService)),
|
|
2873
|
+
( __param(10, IThemeService)),
|
|
2874
|
+
( __param(11, IContextMenuService)),
|
|
2875
|
+
( __param(12, IInstantiationService)),
|
|
2876
|
+
( __param(13, IViewDescriptorService)),
|
|
2877
|
+
( __param(14, IConfigurationService)),
|
|
2878
|
+
( __param(15, IContextKeyService)),
|
|
2879
|
+
( __param(16, IOpenerService)),
|
|
2880
|
+
( __param(17, ITelemetryService))
|
|
2670
2881
|
], SCMViewPane));
|
|
2671
2882
|
let SCMTreeDataSource = class SCMTreeDataSource {
|
|
2672
|
-
constructor(viewMode, configurationService, scmViewService, uriIdentityService) {
|
|
2883
|
+
constructor(viewMode, configurationService, logService, scmViewService, uriIdentityService) {
|
|
2673
2884
|
this.viewMode = viewMode;
|
|
2674
2885
|
this.configurationService = configurationService;
|
|
2886
|
+
this.logService = logService;
|
|
2675
2887
|
this.scmViewService = scmViewService;
|
|
2676
2888
|
this.uriIdentityService = uriIdentityService;
|
|
2677
2889
|
this.historyProviderCache = ( new Map());
|
|
@@ -2827,7 +3039,7 @@ let SCMTreeDataSource = class SCMTreeDataSource {
|
|
|
2827
3039
|
const historyProviderCacheEntry = this.getHistoryProviderCacheEntry(element);
|
|
2828
3040
|
let incomingHistoryItemGroup = historyProviderCacheEntry?.incomingHistoryItemGroup;
|
|
2829
3041
|
let outgoingHistoryItemGroup = historyProviderCacheEntry?.outgoingHistoryItemGroup;
|
|
2830
|
-
if (!incomingHistoryItemGroup
|
|
3042
|
+
if (!incomingHistoryItemGroup && !outgoingHistoryItemGroup) {
|
|
2831
3043
|
const ancestor = await historyProvider.resolveHistoryItemGroupCommonAncestor(currentHistoryItemGroup.id, currentHistoryItemGroup.base?.id);
|
|
2832
3044
|
if (!ancestor) {
|
|
2833
3045
|
return [];
|
|
@@ -3009,9 +3221,17 @@ let SCMTreeDataSource = class SCMTreeDataSource {
|
|
|
3009
3221
|
onDidChangeVisibleRepositories({ added, removed }) {
|
|
3010
3222
|
for (const repository of added) {
|
|
3011
3223
|
const repositoryDisposables = ( new DisposableStore());
|
|
3012
|
-
|
|
3013
|
-
|
|
3014
|
-
|
|
3224
|
+
repositoryDisposables.add(Event.runAndSubscribe(repository.provider.onDidChangeHistoryProvider, () => {
|
|
3225
|
+
if (!repository.provider.historyProvider) {
|
|
3226
|
+
this.logService.debug('SCMTreeDataSource:onDidChangeVisibleRepositories - no history provider present');
|
|
3227
|
+
return;
|
|
3228
|
+
}
|
|
3229
|
+
repositoryDisposables.add(repository.provider.historyProvider.onDidChangeCurrentHistoryItemGroup(() => {
|
|
3230
|
+
this.historyProviderCache.delete(repository);
|
|
3231
|
+
this.logService.debug('SCMTreeDataSource:onDidChangeCurrentHistoryItemGroup - cache cleared');
|
|
3232
|
+
}));
|
|
3233
|
+
this.logService.debug('SCMTreeDataSource:onDidChangeVisibleRepositories - onDidChangeCurrentHistoryItemGroup listener added');
|
|
3234
|
+
}));
|
|
3015
3235
|
this.repositoryDisposables.set(repository, repositoryDisposables);
|
|
3016
3236
|
}
|
|
3017
3237
|
for (const repository of removed) {
|
|
@@ -3034,8 +3254,9 @@ let SCMTreeDataSource = class SCMTreeDataSource {
|
|
|
3034
3254
|
};
|
|
3035
3255
|
SCMTreeDataSource = ( __decorate([
|
|
3036
3256
|
( __param(1, IConfigurationService)),
|
|
3037
|
-
( __param(2,
|
|
3038
|
-
( __param(3,
|
|
3257
|
+
( __param(2, ILogService)),
|
|
3258
|
+
( __param(3, ISCMViewService)),
|
|
3259
|
+
( __param(4, IUriIdentityService))
|
|
3039
3260
|
], SCMTreeDataSource));
|
|
3040
3261
|
class SCMActionButton {
|
|
3041
3262
|
constructor(container, contextMenuService, commandService, notificationService) {
|
|
@@ -100,8 +100,8 @@ class StatusBarAction extends Action {
|
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
102
|
class StatusBarActionViewItem extends ActionViewItem {
|
|
103
|
-
constructor(action) {
|
|
104
|
-
super(null, action, {});
|
|
103
|
+
constructor(action, options) {
|
|
104
|
+
super(null, action, { ...options, icon: false, label: true });
|
|
105
105
|
}
|
|
106
106
|
updateLabel() {
|
|
107
107
|
if (this.options.label && this.label) {
|
|
@@ -110,11 +110,11 @@ class StatusBarActionViewItem extends ActionViewItem {
|
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
112
|
function getActionViewItemProvider(instaService) {
|
|
113
|
-
return action => {
|
|
113
|
+
return (action, options) => {
|
|
114
114
|
if (action instanceof StatusBarAction) {
|
|
115
|
-
return ( new StatusBarActionViewItem(action));
|
|
115
|
+
return ( new StatusBarActionViewItem(action, options));
|
|
116
116
|
}
|
|
117
|
-
return createActionViewItem(instaService, action);
|
|
117
|
+
return createActionViewItem(instaService, action, options);
|
|
118
118
|
};
|
|
119
119
|
}
|
|
120
120
|
|