@codingame/monaco-vscode-scm-service-override 23.2.2 → 24.1.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 -14
- package/vscode/src/vs/workbench/contrib/scm/browser/activity.js +7 -7
- package/vscode/src/vs/workbench/contrib/scm/browser/media/scm.css +44 -23
- package/vscode/src/vs/workbench/contrib/scm/browser/menus.js +1 -1
- package/vscode/src/vs/workbench/contrib/scm/browser/quickDiffDecorator.js +4 -4
- package/vscode/src/vs/workbench/contrib/scm/browser/quickDiffModel.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/scm/browser/quickDiffModel.js +2 -2
- package/vscode/src/vs/workbench/contrib/scm/browser/quickDiffWidget.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/scm/browser/quickDiffWidget.js +14 -14
- package/vscode/src/vs/workbench/contrib/scm/browser/scm.contribution.js +94 -94
- package/vscode/src/vs/workbench/contrib/scm/browser/scmAccessibilityHelp.js +23 -23
- package/vscode/src/vs/workbench/contrib/scm/browser/scmHistoryViewPane.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/scm/browser/scmHistoryViewPane.js +151 -110
- package/vscode/src/vs/workbench/contrib/scm/browser/scmRepositoriesViewPane.d.ts +9 -2
- package/vscode/src/vs/workbench/contrib/scm/browser/scmRepositoriesViewPane.js +139 -50
- package/vscode/src/vs/workbench/contrib/scm/browser/scmRepositoryRenderer.js +2 -5
- package/vscode/src/vs/workbench/contrib/scm/browser/scmViewPane.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/scm/browser/scmViewPane.js +71 -47
- package/vscode/src/vs/workbench/contrib/scm/browser/scmViewPaneContainer.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/scm/browser/scmViewPaneContainer.js +1 -1
- package/vscode/src/vs/workbench/contrib/scm/browser/scmViewService.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/scm/browser/scmViewService.js +13 -19
- package/vscode/src/vs/workbench/contrib/scm/browser/workingSet.js +1 -1
|
@@ -5,12 +5,12 @@ import * as scm from './media/scm.css';
|
|
|
5
5
|
import { Emitter, Event } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
|
|
6
6
|
import { basename, dirname } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
|
|
7
7
|
import { Disposable, DisposableStore, toDisposable, combinedDisposable, MutableDisposable, dispose, DisposableMap } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
8
|
-
import { ViewAction, ViewPane } from '@codingame/monaco-vscode-
|
|
8
|
+
import { ViewAction, ViewPane } from '@codingame/monaco-vscode-api/vscode/vs/workbench/browser/parts/views/viewPane';
|
|
9
9
|
import { append, $, Dimension, trackFocus, isPointerEvent, isActiveElement, clearNode } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
|
|
10
10
|
import { asCSSUrl } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/cssValue';
|
|
11
11
|
import { ViewMode, VIEW_PANE_ID, ISCMRepositorySortKey, ISCMRepositorySelectionMode, InputValidationType, SCMInputChangeReason } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/scm/common/scm';
|
|
12
12
|
import { ISCMViewService, ISCMService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/scm/common/scm.service';
|
|
13
|
-
import { ResourceLabels } from '@codingame/monaco-vscode-
|
|
13
|
+
import { ResourceLabels } from '@codingame/monaco-vscode-api/vscode/vs/workbench/browser/labels';
|
|
14
14
|
import { CountBadge } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/countBadge/countBadge';
|
|
15
15
|
import { IEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service';
|
|
16
16
|
import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
@@ -24,12 +24,12 @@ import { IMenuService } from '@codingame/monaco-vscode-api/vscode/vs/platform/ac
|
|
|
24
24
|
import { ActionRunner, Action, toAction, Separator } from '@codingame/monaco-vscode-api/vscode/vs/base/common/actions';
|
|
25
25
|
import { ActionBar } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/actionbar/actionbar';
|
|
26
26
|
import { IThemeService } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/themeService.service';
|
|
27
|
-
import { isSCMResource, connectPrimaryMenu, isSCMResourceGroup, isSCMInput, isSCMActionButton, isSCMRepository, isSCMResourceNode, getActionViewItemProvider, collectContextMenuActions, isSCMViewService } from '@codingame/monaco-vscode-
|
|
27
|
+
import { isSCMResource, connectPrimaryMenu, isSCMResourceGroup, isSCMInput, isSCMActionButton, isSCMRepository, isSCMResourceNode, getActionViewItemProvider, collectContextMenuActions, isSCMViewService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/scm/browser/util';
|
|
28
28
|
import { WorkbenchCompressibleAsyncDataTree } from '@codingame/monaco-vscode-api/vscode/vs/platform/list/browser/listService';
|
|
29
29
|
import { ConfigurationTarget } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration';
|
|
30
30
|
import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
|
|
31
31
|
import { disposableTimeout, ThrottledDelayer, Sequencer, Throttler } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
|
|
32
|
-
import { ResourceTree } from '@codingame/monaco-vscode-
|
|
32
|
+
import { ResourceTree } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resourceTree';
|
|
33
33
|
import { Iterable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/iterator';
|
|
34
34
|
import { FileKind } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files';
|
|
35
35
|
import { compareFileNames, comparePaths } from '@codingame/monaco-vscode-api/vscode/vs/base/common/comparers';
|
|
@@ -40,7 +40,7 @@ import { StorageScope, StorageTarget } from '@codingame/monaco-vscode-api/vscode
|
|
|
40
40
|
import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
|
|
41
41
|
import { EditorResourceAccessor, SideBySideEditor } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/editor';
|
|
42
42
|
import { CodeEditorWidget } from '@codingame/monaco-vscode-api/vscode/vs/editor/browser/widget/codeEditor/codeEditorWidget';
|
|
43
|
-
import { getSimpleEditorOptions, setupSimpleEditorSelectionStyling } from '@codingame/monaco-vscode-
|
|
43
|
+
import { getSimpleEditorOptions, setupSimpleEditorSelectionStyling } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/codeEditor/browser/simpleEditorOptions';
|
|
44
44
|
import { IModelService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/model.service';
|
|
45
45
|
import { EditorExtensionsRegistry } from '@codingame/monaco-vscode-api/vscode/vs/editor/browser/editorExtensions';
|
|
46
46
|
import { MenuPreventer } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/codeEditor/browser/menuPreventer';
|
|
@@ -64,7 +64,7 @@ import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/th
|
|
|
64
64
|
import { AnchorAlignment } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/contextview/contextview';
|
|
65
65
|
import { RepositoryRenderer, RepositoryActionRunner } from './scmRepositoryRenderer.js';
|
|
66
66
|
import { isDark } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/theme';
|
|
67
|
-
import { API_OPEN_EDITOR_COMMAND_ID, API_OPEN_DIFF_EDITOR_COMMAND_ID } from '@codingame/monaco-vscode-
|
|
67
|
+
import { API_OPEN_EDITOR_COMMAND_ID, API_OPEN_DIFF_EDITOR_COMMAND_ID } from '@codingame/monaco-vscode-api/vscode/vs/workbench/browser/parts/editor/editorCommands';
|
|
68
68
|
import { getFlatActionBarActions, createActionViewItem, getFlatContextMenuActions } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/browser/menuEntryActionViewItem';
|
|
69
69
|
import { openLinkFromMarkdown } from '@codingame/monaco-vscode-api/vscode/vs/platform/markdown/browser/markdownRenderer';
|
|
70
70
|
import { IMarkdownRendererService } from '@codingame/monaco-vscode-api/vscode/vs/platform/markdown/browser/markdownRenderer.service';
|
|
@@ -79,7 +79,7 @@ import { defaultCountBadgeStyles, defaultButtonStyles } from '@codingame/monaco-
|
|
|
79
79
|
import { InlineCompletionsController } from '@codingame/monaco-vscode-api/vscode/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController';
|
|
80
80
|
import { CodeActionController } from '@codingame/monaco-vscode-api/vscode/vs/editor/contrib/codeAction/browser/codeActionController';
|
|
81
81
|
import { Schemas } from '@codingame/monaco-vscode-api/vscode/vs/base/common/network';
|
|
82
|
-
import { fillEditorsDragData } from '@codingame/monaco-vscode-
|
|
82
|
+
import { fillEditorsDragData } from '@codingame/monaco-vscode-api/vscode/vs/workbench/browser/dnd';
|
|
83
83
|
import { CodeDataTransfers } from '@codingame/monaco-vscode-api/vscode/vs/platform/dnd/browser/dnd';
|
|
84
84
|
import { FormatOnType } from '@codingame/monaco-vscode-api/vscode/vs/editor/contrib/format/browser/formatActions';
|
|
85
85
|
import { EditorOptions, EditorOption } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/config/editorOptions';
|
|
@@ -87,10 +87,10 @@ import { IUriIdentityService } from '@codingame/monaco-vscode-api/vscode/vs/plat
|
|
|
87
87
|
import { EditOperation } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/editOperation';
|
|
88
88
|
import { WorkbenchToolBar, HiddenItemStrategy } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/browser/toolbar';
|
|
89
89
|
import { CancellationTokenSource } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
|
|
90
|
-
import { DropdownWithPrimaryActionViewItem } from '@codingame/monaco-vscode-
|
|
90
|
+
import { DropdownWithPrimaryActionViewItem } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/browser/dropdownWithPrimaryActionViewItem';
|
|
91
91
|
import { clamp, rot } from '@codingame/monaco-vscode-api/vscode/vs/base/common/numbers';
|
|
92
92
|
import { IHoverService } from '@codingame/monaco-vscode-api/vscode/vs/platform/hover/browser/hover.service';
|
|
93
|
-
import { OpenScmGroupAction } from '@codingame/monaco-vscode-
|
|
93
|
+
import { OpenScmGroupAction } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/multiDiffEditor/browser/scmMultiDiffSourceResolver';
|
|
94
94
|
import { ContentHoverController } from '@codingame/monaco-vscode-api/vscode/vs/editor/contrib/hover/browser/contentHoverController';
|
|
95
95
|
import { GlyphHoverController } from '@codingame/monaco-vscode-api/vscode/vs/editor/contrib/hover/browser/glyphHoverController';
|
|
96
96
|
import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
|
|
@@ -101,7 +101,7 @@ import { IAccessibilityService } from '@codingame/monaco-vscode-api/vscode/vs/pl
|
|
|
101
101
|
import { AccessibilityCommandId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/accessibility/common/accessibilityCommands';
|
|
102
102
|
import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatContextKeys';
|
|
103
103
|
import product from '@codingame/monaco-vscode-api/vscode/vs/platform/product/common/product';
|
|
104
|
-
import { CHAT_SETUP_SUPPORT_ANONYMOUS_ACTION_ID } from '@codingame/monaco-vscode-
|
|
104
|
+
import { CHAT_SETUP_SUPPORT_ANONYMOUS_ACTION_ID } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
|
|
105
105
|
import { runOnChange } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/utils/runOnChange';
|
|
106
106
|
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
|
|
107
107
|
|
|
@@ -159,7 +159,6 @@ let ActionButtonRenderer = class ActionButtonRenderer {
|
|
|
159
159
|
this.actionButtons = ( new Map());
|
|
160
160
|
}
|
|
161
161
|
renderTemplate(container) {
|
|
162
|
-
container.parentElement.parentElement.querySelector('.monaco-tl-twistie').classList.add('force-no-twistie');
|
|
163
162
|
container.parentElement.parentElement.classList.add('cursor-default', 'force-no-hover');
|
|
164
163
|
const buttonContainer = append(container, $('.button-container'));
|
|
165
164
|
const actionButton = ( new SCMActionButton(
|
|
@@ -257,7 +256,6 @@ let InputRenderer = class InputRenderer {
|
|
|
257
256
|
this.editorSelections = ( new WeakMap());
|
|
258
257
|
}
|
|
259
258
|
renderTemplate(container) {
|
|
260
|
-
container.parentElement.parentElement.querySelector('.monaco-tl-twistie').classList.add('force-no-twistie');
|
|
261
259
|
container.parentElement.parentElement.classList.add('force-no-hover');
|
|
262
260
|
const templateDisposable = ( new DisposableStore());
|
|
263
261
|
const inputElement = append(container, $('.scm-input'));
|
|
@@ -350,7 +348,6 @@ let ResourceGroupRenderer = class ResourceGroupRenderer {
|
|
|
350
348
|
this.telemetryService = telemetryService;
|
|
351
349
|
}
|
|
352
350
|
renderTemplate(container) {
|
|
353
|
-
container.parentElement.parentElement.querySelector('.monaco-tl-twistie').classList.add('force-twistie');
|
|
354
351
|
const element = append(container, $('.resource-group'));
|
|
355
352
|
const name = append(element, $('.name'));
|
|
356
353
|
const actionsContainer = append(element, $('.actions'));
|
|
@@ -761,7 +758,7 @@ let SCMAccessibilityProvider = class SCMAccessibilityProvider {
|
|
|
761
758
|
this.labelService = labelService;
|
|
762
759
|
}
|
|
763
760
|
getWidgetAriaLabel() {
|
|
764
|
-
return localize(
|
|
761
|
+
return localize(10582, "Source Control Management");
|
|
765
762
|
}
|
|
766
763
|
getAriaLabel(element) {
|
|
767
764
|
if (ResourceTree.isResourceNode(element)) {
|
|
@@ -773,17 +770,17 @@ let SCMAccessibilityProvider = class SCMAccessibilityProvider {
|
|
|
773
770
|
else if (isSCMInput(element)) {
|
|
774
771
|
const verbosity = this.configurationService.getValue(AccessibilityVerbositySettingId.SourceControl) === true;
|
|
775
772
|
if (!verbosity || !this.accessibilityService.isScreenReaderOptimized()) {
|
|
776
|
-
return localize(
|
|
773
|
+
return localize(10583, "Source Control Input");
|
|
777
774
|
}
|
|
778
775
|
const kbLabel = this.keybindingService.lookupKeybinding(AccessibilityCommandId.OpenAccessibilityHelp)?.getLabel();
|
|
779
776
|
return kbLabel
|
|
780
777
|
? ( localize(
|
|
781
|
-
|
|
778
|
+
10584,
|
|
782
779
|
"Source Control Input, Use {0} to open Source Control Accessibility Help.",
|
|
783
780
|
kbLabel
|
|
784
781
|
))
|
|
785
782
|
: ( localize(
|
|
786
|
-
|
|
783
|
+
10585,
|
|
787
784
|
"Source Control Input, Run the Open Accessibility Help command for more information."
|
|
788
785
|
));
|
|
789
786
|
}
|
|
@@ -842,14 +839,14 @@ const ContextKeys = {
|
|
|
842
839
|
}
|
|
843
840
|
};
|
|
844
841
|
MenuRegistry.appendMenuItem(MenuId.SCMTitle, {
|
|
845
|
-
title: ( localize(
|
|
842
|
+
title: ( localize(10586, "View & Sort")),
|
|
846
843
|
submenu: Menus.ViewSort,
|
|
847
844
|
when: ( ContextKeyExpr.and(( ContextKeyExpr.equals('view', VIEW_PANE_ID)), ( ContextKeys.RepositoryCount.notEqualsTo(0)))),
|
|
848
845
|
group: '0_view&sort',
|
|
849
846
|
order: 1
|
|
850
847
|
});
|
|
851
848
|
MenuRegistry.appendMenuItem(Menus.ViewSort, {
|
|
852
|
-
title: ( localize(
|
|
849
|
+
title: ( localize(10587, "Repositories")),
|
|
853
850
|
submenu: Menus.Repositories,
|
|
854
851
|
when: ContextKeyExpr.greater(ContextKeys.RepositoryCount.key, 1),
|
|
855
852
|
group: '0_repositories'
|
|
@@ -936,39 +933,63 @@ RepositoryVisibilityActionController = ( __decorate([
|
|
|
936
933
|
( __param(2, ISCMService))
|
|
937
934
|
], RepositoryVisibilityActionController));
|
|
938
935
|
class SetListViewModeAction extends ViewAction {
|
|
939
|
-
constructor() {
|
|
936
|
+
constructor(id = 'workbench.scm.action.setListViewMode', menu = {}) {
|
|
940
937
|
super({
|
|
941
|
-
id
|
|
942
|
-
title: ( localize(
|
|
938
|
+
id,
|
|
939
|
+
title: ( localize(10588, "View as List")),
|
|
943
940
|
viewId: VIEW_PANE_ID,
|
|
944
941
|
f1: false,
|
|
945
942
|
icon: Codicon.listTree,
|
|
946
943
|
toggled: ( ContextKeys.SCMViewMode.isEqualTo(ViewMode.List)),
|
|
947
|
-
menu: { id: Menus.ViewSort, group: '1_viewmode' }
|
|
944
|
+
menu: { id: Menus.ViewSort, group: '1_viewmode', ...menu }
|
|
948
945
|
});
|
|
949
946
|
}
|
|
950
947
|
async runInView(_, view) {
|
|
951
948
|
view.viewMode = ViewMode.List;
|
|
952
949
|
}
|
|
953
950
|
}
|
|
954
|
-
class
|
|
951
|
+
class SetListViewModeNavigationAction extends SetListViewModeAction {
|
|
955
952
|
constructor() {
|
|
953
|
+
super('workbench.scm.action.setListViewModeNavigation', {
|
|
954
|
+
id: MenuId.SCMTitle,
|
|
955
|
+
when: ( ContextKeyExpr.and(( ContextKeyExpr.equals('view', VIEW_PANE_ID)), ( ContextKeys.RepositoryCount.notEqualsTo(0)), ( ContextKeys.SCMViewMode.isEqualTo(ViewMode.Tree)))),
|
|
956
|
+
group: 'navigation',
|
|
957
|
+
isHiddenByDefault: true,
|
|
958
|
+
order: -1e3
|
|
959
|
+
});
|
|
960
|
+
}
|
|
961
|
+
}
|
|
962
|
+
class SetTreeViewModeAction extends ViewAction {
|
|
963
|
+
constructor(id = 'workbench.scm.action.setTreeViewMode', menu = {}) {
|
|
956
964
|
super({
|
|
957
|
-
id
|
|
958
|
-
title: ( localize(
|
|
965
|
+
id,
|
|
966
|
+
title: ( localize(10589, "View as Tree")),
|
|
959
967
|
viewId: VIEW_PANE_ID,
|
|
960
968
|
f1: false,
|
|
961
969
|
icon: Codicon.listFlat,
|
|
962
970
|
toggled: ( ContextKeys.SCMViewMode.isEqualTo(ViewMode.Tree)),
|
|
963
|
-
menu: { id: Menus.ViewSort, group: '1_viewmode' }
|
|
971
|
+
menu: { id: Menus.ViewSort, group: '1_viewmode', ...menu }
|
|
964
972
|
});
|
|
965
973
|
}
|
|
966
974
|
async runInView(_, view) {
|
|
967
975
|
view.viewMode = ViewMode.Tree;
|
|
968
976
|
}
|
|
969
977
|
}
|
|
978
|
+
class SetTreeViewModeNavigationAction extends SetTreeViewModeAction {
|
|
979
|
+
constructor() {
|
|
980
|
+
super('workbench.scm.action.setTreeViewModeNavigation', {
|
|
981
|
+
id: MenuId.SCMTitle,
|
|
982
|
+
when: ( ContextKeyExpr.and(( ContextKeyExpr.equals('view', VIEW_PANE_ID)), ( ContextKeys.RepositoryCount.notEqualsTo(0)), ( ContextKeys.SCMViewMode.isEqualTo(ViewMode.List)))),
|
|
983
|
+
group: 'navigation',
|
|
984
|
+
isHiddenByDefault: true,
|
|
985
|
+
order: -1e3
|
|
986
|
+
});
|
|
987
|
+
}
|
|
988
|
+
}
|
|
970
989
|
registerAction2(SetListViewModeAction);
|
|
971
990
|
registerAction2(SetTreeViewModeAction);
|
|
991
|
+
registerAction2(SetListViewModeNavigationAction);
|
|
992
|
+
registerAction2(SetTreeViewModeNavigationAction);
|
|
972
993
|
class RepositorySortAction extends Action2 {
|
|
973
994
|
constructor(sortKey, title) {
|
|
974
995
|
super({
|
|
@@ -995,17 +1016,17 @@ class RepositorySortAction extends Action2 {
|
|
|
995
1016
|
}
|
|
996
1017
|
class RepositorySortByDiscoveryTimeAction extends RepositorySortAction {
|
|
997
1018
|
constructor() {
|
|
998
|
-
super(ISCMRepositorySortKey.DiscoveryTime, ( localize(
|
|
1019
|
+
super(ISCMRepositorySortKey.DiscoveryTime, ( localize(10590, "Sort by Discovery Time")));
|
|
999
1020
|
}
|
|
1000
1021
|
}
|
|
1001
1022
|
class RepositorySortByNameAction extends RepositorySortAction {
|
|
1002
1023
|
constructor() {
|
|
1003
|
-
super(ISCMRepositorySortKey.Name, ( localize(
|
|
1024
|
+
super(ISCMRepositorySortKey.Name, ( localize(10591, "Sort by Name")));
|
|
1004
1025
|
}
|
|
1005
1026
|
}
|
|
1006
1027
|
class RepositorySortByPathAction extends RepositorySortAction {
|
|
1007
1028
|
constructor() {
|
|
1008
|
-
super(ISCMRepositorySortKey.Path, ( localize(
|
|
1029
|
+
super(ISCMRepositorySortKey.Path, ( localize(10592, "Sort by Path")));
|
|
1009
1030
|
}
|
|
1010
1031
|
}
|
|
1011
1032
|
registerAction2(RepositorySortByDiscoveryTimeAction);
|
|
@@ -1041,12 +1062,12 @@ class RepositorySelectionModeAction extends Action2 {
|
|
|
1041
1062
|
}
|
|
1042
1063
|
class RepositorySingleSelectionModeAction extends RepositorySelectionModeAction {
|
|
1043
1064
|
constructor() {
|
|
1044
|
-
super(ISCMRepositorySelectionMode.Single, ( localize(
|
|
1065
|
+
super(ISCMRepositorySelectionMode.Single, ( localize(10593, "Select Single Repository")), 1);
|
|
1045
1066
|
}
|
|
1046
1067
|
}
|
|
1047
1068
|
class RepositoryMultiSelectionModeAction extends RepositorySelectionModeAction {
|
|
1048
1069
|
constructor() {
|
|
1049
|
-
super(ISCMRepositorySelectionMode.Multiple, ( localize(
|
|
1070
|
+
super(ISCMRepositorySelectionMode.Multiple, ( localize(10594, "Select Multiple Repositories")), 2);
|
|
1050
1071
|
}
|
|
1051
1072
|
}
|
|
1052
1073
|
registerAction2(RepositorySingleSelectionModeAction);
|
|
@@ -1070,17 +1091,17 @@ class SetSortKeyAction extends ViewAction {
|
|
|
1070
1091
|
}
|
|
1071
1092
|
class SetSortByNameAction extends SetSortKeyAction {
|
|
1072
1093
|
constructor() {
|
|
1073
|
-
super(ViewSortKey.Name, ( localize(
|
|
1094
|
+
super(ViewSortKey.Name, ( localize(10595, "Sort Changes by Name")));
|
|
1074
1095
|
}
|
|
1075
1096
|
}
|
|
1076
1097
|
class SetSortByPathAction extends SetSortKeyAction {
|
|
1077
1098
|
constructor() {
|
|
1078
|
-
super(ViewSortKey.Path, ( localize(
|
|
1099
|
+
super(ViewSortKey.Path, ( localize(10596, "Sort Changes by Path")));
|
|
1079
1100
|
}
|
|
1080
1101
|
}
|
|
1081
1102
|
class SetSortByStatusAction extends SetSortKeyAction {
|
|
1082
1103
|
constructor() {
|
|
1083
|
-
super(ViewSortKey.Status, ( localize(
|
|
1104
|
+
super(ViewSortKey.Status, ( localize(10597, "Sort Changes by Status")));
|
|
1084
1105
|
}
|
|
1085
1106
|
}
|
|
1086
1107
|
registerAction2(SetSortByNameAction);
|
|
@@ -1090,7 +1111,7 @@ class CollapseAllRepositoriesAction extends ViewAction {
|
|
|
1090
1111
|
constructor() {
|
|
1091
1112
|
super({
|
|
1092
1113
|
id: `workbench.scm.action.collapseAllRepositories`,
|
|
1093
|
-
title: ( localize(
|
|
1114
|
+
title: ( localize(10598, "Collapse All Repositories")),
|
|
1094
1115
|
viewId: VIEW_PANE_ID,
|
|
1095
1116
|
f1: false,
|
|
1096
1117
|
icon: Codicon.collapseAll,
|
|
@@ -1109,7 +1130,7 @@ class ExpandAllRepositoriesAction extends ViewAction {
|
|
|
1109
1130
|
constructor() {
|
|
1110
1131
|
super({
|
|
1111
1132
|
id: `workbench.scm.action.expandAllRepositories`,
|
|
1112
|
-
title: ( localize(
|
|
1133
|
+
title: ( localize(10599, "Expand All Repositories")),
|
|
1113
1134
|
viewId: VIEW_PANE_ID,
|
|
1114
1135
|
f1: false,
|
|
1115
1136
|
icon: Codicon.expandAll,
|
|
@@ -1139,7 +1160,7 @@ registerAction2(class extends Action2 {
|
|
|
1139
1160
|
constructor() {
|
|
1140
1161
|
super({
|
|
1141
1162
|
id: SCMInputWidgetCommandId.SetupAction,
|
|
1142
|
-
title: ( localize(
|
|
1163
|
+
title: ( localize(10600, "Generate Commit Message")),
|
|
1143
1164
|
icon: Codicon.sparkle,
|
|
1144
1165
|
f1: false,
|
|
1145
1166
|
menu: {
|
|
@@ -1214,10 +1235,10 @@ let SCMInputWidgetToolbar = class SCMInputWidgetToolbar extends WorkbenchToolBar
|
|
|
1214
1235
|
this._onDidChange = ( new Emitter());
|
|
1215
1236
|
this.onDidChange = this._onDidChange.event;
|
|
1216
1237
|
this._disposables = this._register(( new MutableDisposable()));
|
|
1217
|
-
this._dropdownAction = ( new Action('scmInputMoreActions', ( localize(
|
|
1238
|
+
this._dropdownAction = ( new Action('scmInputMoreActions', ( localize(10601, "More Actions...")), 'codicon-chevron-down'));
|
|
1218
1239
|
this._cancelAction = ( new MenuItemAction({
|
|
1219
1240
|
id: SCMInputWidgetCommandId.CancelAction,
|
|
1220
|
-
title: ( localize(
|
|
1241
|
+
title: ( localize(10602, "Cancel")),
|
|
1221
1242
|
icon: Codicon.stopCircle,
|
|
1222
1243
|
}, undefined, undefined, undefined, undefined, contextKeyService, commandService));
|
|
1223
1244
|
}
|
|
@@ -1433,13 +1454,13 @@ let SCMInputWidget = class SCMInputWidget {
|
|
|
1433
1454
|
const kbLabel = this.keybindingService.lookupKeybinding(AccessibilityCommandId.OpenAccessibilityHelp)?.getLabel();
|
|
1434
1455
|
return kbLabel
|
|
1435
1456
|
? ( localize(
|
|
1436
|
-
|
|
1457
|
+
10603,
|
|
1437
1458
|
"{0}, Use {1} to open Source Control Accessibility Help.",
|
|
1438
1459
|
placeholder,
|
|
1439
1460
|
kbLabel
|
|
1440
1461
|
))
|
|
1441
1462
|
: ( localize(
|
|
1442
|
-
|
|
1463
|
+
10604,
|
|
1443
1464
|
"{0}, Run the Open Accessibility Help command for more information.",
|
|
1444
1465
|
placeholder
|
|
1445
1466
|
));
|
|
@@ -1695,7 +1716,7 @@ let SCMInputWidget = class SCMInputWidget {
|
|
|
1695
1716
|
}
|
|
1696
1717
|
const actionsContainer = append(validationContainer, $('.scm-editor-validation-actions'));
|
|
1697
1718
|
const actionbar = ( new ActionBar(actionsContainer));
|
|
1698
|
-
const action = ( new Action('scmInputWidget.validationMessage.close', ( localize(
|
|
1719
|
+
const action = ( new Action('scmInputWidget.validationMessage.close', ( localize(10605, "Close")), ThemeIcon.asClassName(Codicon.close), true, () => {
|
|
1699
1720
|
this.contextViewService.hideContextView();
|
|
1700
1721
|
this.element.style.borderBottomLeftRadius = '2px';
|
|
1701
1722
|
this.element.style.borderBottomRightRadius = '2px';
|
|
@@ -1922,12 +1943,15 @@ let SCMViewPane = class SCMViewPane extends ViewPane {
|
|
|
1922
1943
|
overrideStyles: this.getLocationBasedColors().listOverrideStyles,
|
|
1923
1944
|
compressionEnabled: compressionEnabled.get(),
|
|
1924
1945
|
collapseByDefault: (e) => {
|
|
1925
|
-
|
|
1926
|
-
|
|
1946
|
+
return !(isSCMRepository(e) || isSCMResourceGroup(e) || isSCMResourceNode(e));
|
|
1947
|
+
},
|
|
1948
|
+
accessibilityProvider: this.instantiationService.createInstance(SCMAccessibilityProvider),
|
|
1949
|
+
twistieAdditionalCssClass: (e) => {
|
|
1950
|
+
if (isSCMActionButton(e) || isSCMInput(e)) {
|
|
1951
|
+
return 'force-no-twistie';
|
|
1927
1952
|
}
|
|
1928
|
-
return
|
|
1953
|
+
return undefined;
|
|
1929
1954
|
},
|
|
1930
|
-
accessibilityProvider: this.instantiationService.createInstance(SCMAccessibilityProvider)
|
|
1931
1955
|
});
|
|
1932
1956
|
this.disposables.add(this.tree);
|
|
1933
1957
|
this.tree.onDidOpen(this.open, this, this.disposables);
|
|
@@ -8,7 +8,7 @@ import { IWorkbenchLayoutService } from "@codingame/monaco-vscode-api/vscode/vs/
|
|
|
8
8
|
import { IExtensionService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service";
|
|
9
9
|
import { IWorkspaceContextService } from "@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service";
|
|
10
10
|
import { IViewDescriptorService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/common/views.service";
|
|
11
|
-
import { ViewPaneContainer } from "@codingame/monaco-vscode-
|
|
11
|
+
import { ViewPaneContainer } from "@codingame/monaco-vscode-api/vscode/vs/workbench/browser/parts/views/viewPaneContainer";
|
|
12
12
|
import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service";
|
|
13
13
|
export declare class SCMViewPaneContainer extends ViewPaneContainer {
|
|
14
14
|
constructor(layoutService: IWorkbenchLayoutService, telemetryService: ITelemetryService, instantiationService: IInstantiationService, contextMenuService: IContextMenuService, themeService: IThemeService, storageService: IStorageService, configurationService: IConfigurationService, extensionService: IExtensionService, contextService: IWorkspaceContextService, viewDescriptorService: IViewDescriptorService, logService: ILogService);
|
|
@@ -13,7 +13,7 @@ import { IWorkbenchLayoutService } from '@codingame/monaco-vscode-api/vscode/vs/
|
|
|
13
13
|
import { IExtensionService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service';
|
|
14
14
|
import { IWorkspaceContextService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service';
|
|
15
15
|
import { IViewDescriptorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/views.service';
|
|
16
|
-
import { ViewPaneContainer } from '@codingame/monaco-vscode-
|
|
16
|
+
import { ViewPaneContainer } from '@codingame/monaco-vscode-api/vscode/vs/workbench/browser/parts/views/viewPaneContainer';
|
|
17
17
|
import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
|
|
18
18
|
|
|
19
19
|
registerCss(scm);
|
|
@@ -9,7 +9,7 @@ import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/pl
|
|
|
9
9
|
import { RawContextKey } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey";
|
|
10
10
|
import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service";
|
|
11
11
|
import { IExtensionService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service";
|
|
12
|
-
import { IObservable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable";
|
|
12
|
+
import { IObservable, ISettableObservable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable";
|
|
13
13
|
import { IEditorService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service";
|
|
14
14
|
import { IQuickPickItem } from "@codingame/monaco-vscode-api/vscode/vs/platform/quickinput/common/quickInput";
|
|
15
15
|
import { IQuickInputService } from "@codingame/monaco-vscode-api/vscode/vs/platform/quickinput/common/quickInput.service";
|
|
@@ -46,12 +46,12 @@ export declare class SCMViewService implements ISCMViewService {
|
|
|
46
46
|
readonly selectionModeConfig: IObservable<ISCMRepositorySelectionMode>;
|
|
47
47
|
readonly graphShowIncomingChangesConfig: IObservable<boolean>;
|
|
48
48
|
readonly graphShowOutgoingChangesConfig: IObservable<boolean>;
|
|
49
|
-
private didFinishLoading;
|
|
50
49
|
private didSelectRepository;
|
|
51
50
|
private previousState;
|
|
52
51
|
private readonly disposables;
|
|
53
52
|
private _repositories;
|
|
54
53
|
get repositories(): ISCMRepository[];
|
|
54
|
+
readonly didFinishLoadingRepositories: ISettableObservable<boolean, void>;
|
|
55
55
|
get visibleRepositories(): ISCMRepository[];
|
|
56
56
|
set visibleRepositories(visibleRepositories: ISCMRepository[]);
|
|
57
57
|
private _onDidChangeRepositories;
|
|
@@ -25,12 +25,12 @@ import { IQuickInputService } from '@codingame/monaco-vscode-api/vscode/vs/platf
|
|
|
25
25
|
import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
|
|
26
26
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
27
27
|
import { observableConfigValue } from '@codingame/monaco-vscode-api/vscode/vs/platform/observable/common/platformObservableUtils';
|
|
28
|
-
import { getSCMRepositoryIcon } from '@codingame/monaco-vscode-
|
|
28
|
+
import { getSCMRepositoryIcon } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/scm/browser/util';
|
|
29
29
|
import { latestChangedValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/experimental/utils';
|
|
30
|
+
import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
|
|
30
31
|
import { derived, derivedOpts } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/derived';
|
|
31
32
|
import { observableFromEventOpts } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableFromEvent';
|
|
32
33
|
import { derivedObservableWithCache } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/utils/utils';
|
|
33
|
-
import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
|
|
34
34
|
import { runOnChange } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/utils/runOnChange';
|
|
35
35
|
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
|
|
36
36
|
|
|
@@ -55,7 +55,7 @@ let RepositoryPicker = class RepositoryPicker {
|
|
|
55
55
|
this._quickInputService = _quickInputService;
|
|
56
56
|
this._scmViewService = _scmViewService;
|
|
57
57
|
this._autoQuickPickItem = {
|
|
58
|
-
label: ( localize(
|
|
58
|
+
label: ( localize(10606, "Auto")),
|
|
59
59
|
description: this._autoQuickItemDescription,
|
|
60
60
|
repository: 'auto'
|
|
61
61
|
};
|
|
@@ -134,10 +134,10 @@ let SCMViewService = class SCMViewService {
|
|
|
134
134
|
this.configurationService = configurationService;
|
|
135
135
|
this.storageService = storageService;
|
|
136
136
|
this.workspaceContextService = workspaceContextService;
|
|
137
|
-
this.didFinishLoading = false;
|
|
138
137
|
this.didSelectRepository = false;
|
|
139
138
|
this.disposables = ( new DisposableStore());
|
|
140
139
|
this._repositories = [];
|
|
140
|
+
this.didFinishLoadingRepositories = observableValue(this, false);
|
|
141
141
|
this._onDidChangeRepositories = ( new Emitter());
|
|
142
142
|
this.onDidChangeRepositories = this._onDidChangeRepositories.event;
|
|
143
143
|
this._onDidSetVisibleRepositories = ( new Emitter());
|
|
@@ -148,18 +148,12 @@ let SCMViewService = class SCMViewService {
|
|
|
148
148
|
const added = ( new Set(last.added));
|
|
149
149
|
const removed = ( new Set(last.removed));
|
|
150
150
|
for (const repository of e.added) {
|
|
151
|
-
if (
|
|
152
|
-
removed.delete(repository);
|
|
153
|
-
}
|
|
154
|
-
else {
|
|
151
|
+
if (!removed.delete(repository)) {
|
|
155
152
|
added.add(repository);
|
|
156
153
|
}
|
|
157
154
|
}
|
|
158
155
|
for (const repository of e.removed) {
|
|
159
|
-
if (
|
|
160
|
-
added.delete(repository);
|
|
161
|
-
}
|
|
162
|
-
else {
|
|
156
|
+
if (!added.delete(repository)) {
|
|
163
157
|
removed.add(repository);
|
|
164
158
|
}
|
|
165
159
|
}
|
|
@@ -243,18 +237,18 @@ let SCMViewService = class SCMViewService {
|
|
|
243
237
|
storageService.onWillSaveState(this.onWillSaveState, this, this.disposables);
|
|
244
238
|
extensionService.onWillStop(() => {
|
|
245
239
|
this.onWillSaveState();
|
|
246
|
-
this.
|
|
240
|
+
this.didFinishLoadingRepositories.set(false, undefined);
|
|
247
241
|
}, this, this.disposables);
|
|
248
242
|
}
|
|
249
243
|
onDidAddRepository(repository) {
|
|
250
|
-
if (!this.
|
|
244
|
+
if (!this.didFinishLoadingRepositories.get()) {
|
|
251
245
|
this.eventuallyFinishLoading();
|
|
252
246
|
}
|
|
253
247
|
const repositoryView = {
|
|
254
248
|
repository, discoveryTime: Date.now(), focused: false, selectionIndex: -1
|
|
255
249
|
};
|
|
256
250
|
let removed = Iterable.empty();
|
|
257
|
-
if (this.previousState && !this.
|
|
251
|
+
if (this.previousState && !this.didFinishLoadingRepositories.get()) {
|
|
258
252
|
const index = this.previousState.all.indexOf(getProviderStorageKey(repository.provider));
|
|
259
253
|
if (index === -1) {
|
|
260
254
|
const added = [];
|
|
@@ -303,7 +297,7 @@ let SCMViewService = class SCMViewService {
|
|
|
303
297
|
}
|
|
304
298
|
}
|
|
305
299
|
onDidRemoveRepository(repository) {
|
|
306
|
-
if (!this.
|
|
300
|
+
if (!this.didFinishLoadingRepositories.get()) {
|
|
307
301
|
this.eventuallyFinishLoading();
|
|
308
302
|
}
|
|
309
303
|
const repositoriesIndex = this._repositories.findIndex(r => r.repository === repository);
|
|
@@ -413,7 +407,7 @@ let SCMViewService = class SCMViewService {
|
|
|
413
407
|
repositories.splice(index < 0 ? ~index : index, 0, repositoryView);
|
|
414
408
|
}
|
|
415
409
|
onWillSaveState() {
|
|
416
|
-
if (!this.
|
|
410
|
+
if (!this.didFinishLoadingRepositories.get()) {
|
|
417
411
|
return;
|
|
418
412
|
}
|
|
419
413
|
const all = ( this.repositories.map(r => getProviderStorageKey(r.provider)));
|
|
@@ -425,10 +419,10 @@ let SCMViewService = class SCMViewService {
|
|
|
425
419
|
this.finishLoading();
|
|
426
420
|
}
|
|
427
421
|
finishLoading() {
|
|
428
|
-
if (this.
|
|
422
|
+
if (this.didFinishLoadingRepositories.get()) {
|
|
429
423
|
return;
|
|
430
424
|
}
|
|
431
|
-
this.
|
|
425
|
+
this.didFinishLoadingRepositories.set(true, undefined);
|
|
432
426
|
}
|
|
433
427
|
dispose() {
|
|
434
428
|
this.disposables.dispose();
|
|
@@ -6,7 +6,7 @@ import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/pl
|
|
|
6
6
|
import { observableConfigValue } from '@codingame/monaco-vscode-api/vscode/vs/platform/observable/common/platformObservableUtils';
|
|
7
7
|
import { StorageScope, StorageTarget } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage';
|
|
8
8
|
import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
|
|
9
|
-
import { getProviderKey } from '@codingame/monaco-vscode-
|
|
9
|
+
import { getProviderKey } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/scm/browser/util';
|
|
10
10
|
import { ISCMService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/scm/common/scm.service';
|
|
11
11
|
import { IEditorGroupsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorGroupsService.service';
|
|
12
12
|
import { Parts } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/layout/browser/layoutService';
|