@codingame/monaco-vscode-multi-diff-editor-service-override 23.3.0 → 24.1.1
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/index.js +1 -1
- package/package.json +2 -8
- package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/actions.js +7 -7
- package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditor.contribution.js +4 -4
- package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditor.d.ts +10 -6
- package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditor.js +66 -6
package/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
import '@codingame/monaco-vscode-api/vscode/vs/editor/standalone/browser/standaloneServices';
|
|
3
3
|
import { SyncDescriptor } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/descriptors';
|
|
4
|
-
import { MultiDiffSourceResolverService } from '@codingame/monaco-vscode-
|
|
4
|
+
import { MultiDiffSourceResolverService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/multiDiffEditor/browser/multiDiffSourceResolverService';
|
|
5
5
|
import { IMultiDiffSourceResolverService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/multiDiffEditor/browser/multiDiffSourceResolverService.service';
|
|
6
6
|
import './vscode/src/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditor.contribution.js';
|
|
7
7
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codingame/monaco-vscode-multi-diff-editor-service-override",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "24.1.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "VSCode public API plugged on the monaco editor - multi-diff-editor service-override",
|
|
6
6
|
"keywords": [],
|
|
@@ -15,13 +15,7 @@
|
|
|
15
15
|
},
|
|
16
16
|
"type": "module",
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@codingame/monaco-vscode-
|
|
19
|
-
"@codingame/monaco-vscode-3b5a5cd1-d4ff-500a-b609-57e0cd4afa0a-common": "23.3.0",
|
|
20
|
-
"@codingame/monaco-vscode-5452e2b7-9081-5f95-839b-4ab3544ce28f-common": "23.3.0",
|
|
21
|
-
"@codingame/monaco-vscode-60014c9d-b815-501d-83a9-4b08725c2ec2-common": "23.3.0",
|
|
22
|
-
"@codingame/monaco-vscode-aac7027b-326c-513a-95a9-e4eedd151b38-common": "23.3.0",
|
|
23
|
-
"@codingame/monaco-vscode-api": "23.3.0",
|
|
24
|
-
"@codingame/monaco-vscode-bc6f260d-ec63-5c95-9446-1ca7d0872719-common": "23.3.0"
|
|
18
|
+
"@codingame/monaco-vscode-api": "24.1.1"
|
|
25
19
|
},
|
|
26
20
|
"main": "index.js",
|
|
27
21
|
"module": "index.js",
|
|
@@ -7,9 +7,9 @@ import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/
|
|
|
7
7
|
import { TextEditorSelectionRevealType } from '@codingame/monaco-vscode-api/vscode/vs/platform/editor/common/editor';
|
|
8
8
|
import { KeybindingWeight } from '@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybindingsRegistry';
|
|
9
9
|
import { IListService } from '@codingame/monaco-vscode-api/vscode/vs/platform/list/browser/listService.service';
|
|
10
|
-
import { resolveCommandsContext } from '@codingame/monaco-vscode-
|
|
10
|
+
import { resolveCommandsContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/browser/parts/editor/editorCommandsContext';
|
|
11
11
|
import { MultiDiffEditor } from './multiDiffEditor.js';
|
|
12
|
-
import { MultiDiffEditorInput } from '@codingame/monaco-vscode-
|
|
12
|
+
import { MultiDiffEditorInput } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditorInput';
|
|
13
13
|
import { IEditorGroupsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorGroupsService.service';
|
|
14
14
|
import { IEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service';
|
|
15
15
|
import { ActiveEditorContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contextkeys';
|
|
@@ -18,7 +18,7 @@ class GoToFileAction extends Action2 {
|
|
|
18
18
|
constructor() {
|
|
19
19
|
super({
|
|
20
20
|
id: 'multiDiffEditor.goToFile',
|
|
21
|
-
title: ( localize2(
|
|
21
|
+
title: ( localize2(9182, 'Open File')),
|
|
22
22
|
icon: Codicon.goToFile,
|
|
23
23
|
precondition: ( ActiveEditorContext.isEqualTo(MultiDiffEditor.ID)),
|
|
24
24
|
menu: {
|
|
@@ -60,7 +60,7 @@ class GoToNextChangeAction extends Action2 {
|
|
|
60
60
|
constructor() {
|
|
61
61
|
super({
|
|
62
62
|
id: 'multiDiffEditor.goToNextChange',
|
|
63
|
-
title: ( localize2(
|
|
63
|
+
title: ( localize2(9183, 'Go to Next Change')),
|
|
64
64
|
icon: Codicon.arrowDown,
|
|
65
65
|
precondition: ( ContextKeyExpr.equals('activeEditor', MultiDiffEditor.ID)),
|
|
66
66
|
menu: ( [MenuId.EditorTitle, MenuId.CompactWindowEditorTitle].map(id => ({
|
|
@@ -90,7 +90,7 @@ class GoToPreviousChangeAction extends Action2 {
|
|
|
90
90
|
constructor() {
|
|
91
91
|
super({
|
|
92
92
|
id: 'multiDiffEditor.goToPreviousChange',
|
|
93
|
-
title: ( localize2(
|
|
93
|
+
title: ( localize2(9184, 'Go to Previous Change')),
|
|
94
94
|
icon: Codicon.arrowUp,
|
|
95
95
|
precondition: ( ContextKeyExpr.equals('activeEditor', MultiDiffEditor.ID)),
|
|
96
96
|
menu: ( [MenuId.EditorTitle, MenuId.CompactWindowEditorTitle].map(id => ({
|
|
@@ -120,7 +120,7 @@ class CollapseAllAction extends Action2 {
|
|
|
120
120
|
constructor() {
|
|
121
121
|
super({
|
|
122
122
|
id: 'multiDiffEditor.collapseAll',
|
|
123
|
-
title: ( localize2(
|
|
123
|
+
title: ( localize2(9185, 'Collapse All Diffs')),
|
|
124
124
|
icon: Codicon.collapseAll,
|
|
125
125
|
precondition: ( ContextKeyExpr.and(( ContextKeyExpr.equals('activeEditor', MultiDiffEditor.ID)), ContextKeyExpr.not('multiDiffEditorAllCollapsed'))),
|
|
126
126
|
menu: ( [MenuId.EditorTitle, MenuId.CompactWindowEditorTitle].map(id => ({
|
|
@@ -149,7 +149,7 @@ class ExpandAllAction extends Action2 {
|
|
|
149
149
|
constructor() {
|
|
150
150
|
super({
|
|
151
151
|
id: 'multiDiffEditor.expandAll',
|
|
152
|
-
title: ( localize2(
|
|
152
|
+
title: ( localize2(9186, 'Expand All Diffs')),
|
|
153
153
|
icon: Codicon.expandAll,
|
|
154
154
|
precondition: ( ContextKeyExpr.and(( ContextKeyExpr.equals('activeEditor', MultiDiffEditor.ID)), ( ContextKeyExpr.has('multiDiffEditorAllCollapsed')))),
|
|
155
155
|
menu: ( [MenuId.EditorTitle, MenuId.CompactWindowEditorTitle].map(id => ({
|
package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditor.contribution.js
CHANGED
|
@@ -4,17 +4,17 @@ import { registerAction2 } from '@codingame/monaco-vscode-api/vscode/vs/platform
|
|
|
4
4
|
import { Extensions } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configurationRegistry';
|
|
5
5
|
import { SyncDescriptor } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/descriptors';
|
|
6
6
|
import { Registry } from '@codingame/monaco-vscode-api/vscode/vs/platform/registry/common/platform';
|
|
7
|
-
import { EditorPaneDescriptor } from '@codingame/monaco-vscode-
|
|
7
|
+
import { EditorPaneDescriptor } from '@codingame/monaco-vscode-api/vscode/vs/workbench/browser/editor';
|
|
8
8
|
import { registerWorkbenchContribution2, WorkbenchPhase } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions';
|
|
9
9
|
import { EditorExtensions } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/editor';
|
|
10
10
|
import { MultiDiffEditor } from './multiDiffEditor.js';
|
|
11
|
-
import { MultiDiffEditorResolverContribution, MultiDiffEditorInput, MultiDiffEditorSerializer } from '@codingame/monaco-vscode-
|
|
11
|
+
import { MultiDiffEditorResolverContribution, MultiDiffEditorInput, MultiDiffEditorSerializer } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditorInput';
|
|
12
12
|
import { GoToFileAction, GoToNextChangeAction, GoToPreviousChangeAction, CollapseAllAction, ExpandAllAction } from './actions.js';
|
|
13
13
|
import '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
|
|
14
14
|
import '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
15
15
|
import '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
16
16
|
import '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/extensions';
|
|
17
|
-
import { OpenScmGroupAction, ScmMultiDiffSourceResolverContribution } from '@codingame/monaco-vscode-
|
|
17
|
+
import { OpenScmGroupAction, ScmMultiDiffSourceResolverContribution } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/multiDiffEditor/browser/scmMultiDiffSourceResolver';
|
|
18
18
|
|
|
19
19
|
registerAction2(GoToFileAction);
|
|
20
20
|
registerAction2(GoToNextChangeAction);
|
|
@@ -33,7 +33,7 @@ registerAction2(ExpandAllAction);
|
|
|
33
33
|
});
|
|
34
34
|
registerWorkbenchContribution2(MultiDiffEditorResolverContribution.ID, MultiDiffEditorResolverContribution, WorkbenchPhase.BlockStartup );
|
|
35
35
|
( Registry.as(EditorExtensions.EditorPane))
|
|
36
|
-
.registerEditorPane(EditorPaneDescriptor.create(MultiDiffEditor, MultiDiffEditor.ID, ( localize(
|
|
36
|
+
.registerEditorPane(EditorPaneDescriptor.create(MultiDiffEditor, MultiDiffEditor.ID, ( localize(9188, "Multi Diff Editor"))), [( new SyncDescriptor(MultiDiffEditorInput))]);
|
|
37
37
|
( Registry.as(EditorExtensions.EditorFactory))
|
|
38
38
|
.registerEditorSerializer(MultiDiffEditorInput.ID, MultiDiffEditorSerializer);
|
|
39
39
|
registerAction2(OpenScmGroupAction);
|
|
@@ -1,32 +1,36 @@
|
|
|
1
1
|
import * as DOM from "@codingame/monaco-vscode-api/vscode/vs/base/browser/dom";
|
|
2
2
|
import { CancellationToken } from "@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation";
|
|
3
3
|
import { ITextResourceConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/services/textResourceConfiguration.service";
|
|
4
|
+
import { IMenuService } from "@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions.service";
|
|
4
5
|
import { InstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiationService";
|
|
5
6
|
import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service";
|
|
6
7
|
import { ITelemetryService } from "@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service";
|
|
7
8
|
import { IThemeService } from "@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/themeService.service";
|
|
8
|
-
import { AbstractEditorWithViewState } from "@codingame/monaco-vscode-
|
|
9
|
+
import { AbstractEditorWithViewState } from "@codingame/monaco-vscode-api/vscode/vs/workbench/browser/parts/editor/editorWithViewState";
|
|
9
10
|
import { ICompositeControl } from "@codingame/monaco-vscode-api/vscode/vs/workbench/common/composite";
|
|
10
11
|
import { IEditorOpenContext } from "@codingame/monaco-vscode-api/vscode/vs/workbench/common/editor";
|
|
11
12
|
import { EditorInput } from "@codingame/monaco-vscode-api/vscode/vs/workbench/common/editor/editorInput";
|
|
12
|
-
import { MultiDiffEditorInput } from "@codingame/monaco-vscode-
|
|
13
|
+
import { MultiDiffEditorInput } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditorInput";
|
|
13
14
|
import { IEditorGroup } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorGroupsService";
|
|
14
15
|
import { IEditorGroupsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorGroupsService.service";
|
|
15
16
|
import { IEditorService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service";
|
|
16
17
|
import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
|
|
17
|
-
import { MultiDiffEditorViewModel } from "@codingame/monaco-vscode-
|
|
18
|
-
import { IMultiDiffEditorOptions, IMultiDiffEditorViewState } from "@codingame/monaco-vscode-
|
|
18
|
+
import { MultiDiffEditorViewModel } from "@codingame/monaco-vscode-api/vscode/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorViewModel";
|
|
19
|
+
import { IMultiDiffEditorOptions, IMultiDiffEditorViewState } from "@codingame/monaco-vscode-api/vscode/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidgetImpl";
|
|
19
20
|
import { ICodeEditor } from "@codingame/monaco-vscode-api/vscode/vs/editor/browser/editorBrowser";
|
|
20
21
|
import { IDiffEditor } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/editorCommon";
|
|
21
|
-
import { MultiDiffEditorItem } from "@codingame/monaco-vscode-
|
|
22
|
+
import { MultiDiffEditorItem } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/multiDiffEditor/browser/multiDiffSourceResolverService";
|
|
22
23
|
import { IEditorProgressService } from "@codingame/monaco-vscode-api/vscode/vs/platform/progress/common/progress.service";
|
|
23
24
|
export declare class MultiDiffEditor extends AbstractEditorWithViewState<IMultiDiffEditorViewState> {
|
|
24
25
|
private editorProgressService;
|
|
26
|
+
private readonly menuService;
|
|
25
27
|
static readonly ID = "multiDiffEditor";
|
|
26
28
|
private _multiDiffEditorWidget;
|
|
27
29
|
private _viewModel;
|
|
30
|
+
private _sessionResourceContextKey;
|
|
31
|
+
private _contentOverlay;
|
|
28
32
|
get viewModel(): MultiDiffEditorViewModel | undefined;
|
|
29
|
-
constructor(group: IEditorGroup, instantiationService: InstantiationService, telemetryService: ITelemetryService, themeService: IThemeService, storageService: IStorageService, editorService: IEditorService, editorGroupService: IEditorGroupsService, textResourceConfigurationService: ITextResourceConfigurationService, editorProgressService: IEditorProgressService);
|
|
33
|
+
constructor(group: IEditorGroup, instantiationService: InstantiationService, telemetryService: ITelemetryService, themeService: IThemeService, storageService: IStorageService, editorService: IEditorService, editorGroupService: IEditorGroupsService, textResourceConfigurationService: ITextResourceConfigurationService, editorProgressService: IEditorProgressService, menuService: IMenuService);
|
|
30
34
|
protected createEditor(parent: HTMLElement): void;
|
|
31
35
|
setInput(input: MultiDiffEditorInput, options: IMultiDiffEditorOptions | undefined, context: IEditorOpenContext, token: CancellationToken): Promise<void>;
|
|
32
36
|
setOptions(options: IMultiDiffEditorOptions | undefined): void;
|
|
@@ -1,18 +1,24 @@
|
|
|
1
1
|
|
|
2
2
|
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
3
|
-
import {
|
|
3
|
+
import { h } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
|
|
4
|
+
import { Disposable, MutableDisposable, DisposableStore, toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
5
|
+
import { MultiDiffEditorWidget } from '@codingame/monaco-vscode-api/vscode/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidget';
|
|
4
6
|
import { ITextResourceConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/textResourceConfiguration.service';
|
|
7
|
+
import { FloatingClickMenu } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/browser/floatingMenu';
|
|
8
|
+
import { MenuId } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
|
|
9
|
+
import { IMenuService } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions.service';
|
|
5
10
|
import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
6
11
|
import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
|
|
7
12
|
import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
|
|
8
13
|
import { IThemeService } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/themeService.service';
|
|
9
|
-
import { ResourceLabel } from '@codingame/monaco-vscode-
|
|
10
|
-
import { AbstractEditorWithViewState } from '@codingame/monaco-vscode-
|
|
11
|
-
import { MultiDiffEditorInput } from '@codingame/monaco-vscode-
|
|
14
|
+
import { ResourceLabel } from '@codingame/monaco-vscode-api/vscode/vs/workbench/browser/labels';
|
|
15
|
+
import { AbstractEditorWithViewState } from '@codingame/monaco-vscode-api/vscode/vs/workbench/browser/parts/editor/editorWithViewState';
|
|
16
|
+
import { MultiDiffEditorInput } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditorInput';
|
|
12
17
|
import { IEditorGroupsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorGroupsService.service';
|
|
13
18
|
import { IEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service';
|
|
14
19
|
import { Range } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/range';
|
|
15
20
|
import { IEditorProgressService } from '@codingame/monaco-vscode-api/vscode/vs/platform/progress/common/progress.service';
|
|
21
|
+
import { ResourceContextKey } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contextkeys';
|
|
16
22
|
|
|
17
23
|
var MultiDiffEditor_1;
|
|
18
24
|
let MultiDiffEditor = class MultiDiffEditor extends AbstractEditorWithViewState {
|
|
@@ -21,9 +27,10 @@ let MultiDiffEditor = class MultiDiffEditor extends AbstractEditorWithViewState
|
|
|
21
27
|
get viewModel() {
|
|
22
28
|
return this._viewModel;
|
|
23
29
|
}
|
|
24
|
-
constructor(group, instantiationService, telemetryService, themeService, storageService, editorService, editorGroupService, textResourceConfigurationService, editorProgressService) {
|
|
30
|
+
constructor(group, instantiationService, telemetryService, themeService, storageService, editorService, editorGroupService, textResourceConfigurationService, editorProgressService, menuService) {
|
|
25
31
|
super(MultiDiffEditor_1.ID, group, 'multiDiffEditor', telemetryService, instantiationService, storageService, textResourceConfigurationService, themeService, editorService, editorGroupService);
|
|
26
32
|
this.editorProgressService = editorProgressService;
|
|
33
|
+
this.menuService = menuService;
|
|
27
34
|
this._multiDiffEditorWidget = undefined;
|
|
28
35
|
}
|
|
29
36
|
createEditor(parent) {
|
|
@@ -31,10 +38,22 @@ let MultiDiffEditor = class MultiDiffEditor extends AbstractEditorWithViewState
|
|
|
31
38
|
this._register(this._multiDiffEditorWidget.onDidChangeActiveControl(() => {
|
|
32
39
|
this._onDidChangeControl.fire();
|
|
33
40
|
}));
|
|
41
|
+
const scopedContextKeyService = this._multiDiffEditorWidget.getContextKeyService();
|
|
42
|
+
const scopedInstantiationService = this._multiDiffEditorWidget.getScopedInstantiationService();
|
|
43
|
+
this._sessionResourceContextKey = this._register(scopedInstantiationService.createInstance(ResourceContextKey));
|
|
44
|
+
this._contentOverlay = this._register(( new MultiDiffEditorContentMenuOverlay(
|
|
45
|
+
this._multiDiffEditorWidget.getRootElement(),
|
|
46
|
+
this._sessionResourceContextKey,
|
|
47
|
+
scopedContextKeyService,
|
|
48
|
+
this.menuService,
|
|
49
|
+
scopedInstantiationService
|
|
50
|
+
)));
|
|
34
51
|
}
|
|
35
52
|
async setInput(input, options, context, token) {
|
|
36
53
|
await super.setInput(input, options, context, token);
|
|
37
54
|
this._viewModel = await input.getViewModel();
|
|
55
|
+
this._sessionResourceContextKey?.set(input.resource);
|
|
56
|
+
this._contentOverlay?.updateResource(input.resource);
|
|
38
57
|
this._multiDiffEditorWidget.setViewModel(this._viewModel);
|
|
39
58
|
const viewState = this.loadEditorViewState(input, context);
|
|
40
59
|
if (viewState) {
|
|
@@ -57,6 +76,8 @@ let MultiDiffEditor = class MultiDiffEditor extends AbstractEditorWithViewState
|
|
|
57
76
|
}
|
|
58
77
|
async clearInput() {
|
|
59
78
|
await super.clearInput();
|
|
79
|
+
this._sessionResourceContextKey?.set(null);
|
|
80
|
+
this._contentOverlay?.updateResource(undefined);
|
|
60
81
|
this._multiDiffEditorWidget.setViewModel(undefined);
|
|
61
82
|
}
|
|
62
83
|
layout(dimension) {
|
|
@@ -110,8 +131,47 @@ MultiDiffEditor = MultiDiffEditor_1 = ( __decorate([
|
|
|
110
131
|
( __param(5, IEditorService)),
|
|
111
132
|
( __param(6, IEditorGroupsService)),
|
|
112
133
|
( __param(7, ITextResourceConfigurationService)),
|
|
113
|
-
( __param(8, IEditorProgressService))
|
|
134
|
+
( __param(8, IEditorProgressService)),
|
|
135
|
+
( __param(9, IMenuService))
|
|
114
136
|
], MultiDiffEditor));
|
|
137
|
+
class MultiDiffEditorContentMenuOverlay extends Disposable {
|
|
138
|
+
constructor(root, resourceContextKey, contextKeyService, menuService, instantiationService) {
|
|
139
|
+
super();
|
|
140
|
+
this.overlayStore = this._register(( new MutableDisposable()));
|
|
141
|
+
this.resourceContextKey = resourceContextKey;
|
|
142
|
+
const menu = this._register(menuService.createMenu(MenuId.MultiDiffEditorContent, contextKeyService));
|
|
143
|
+
this.rebuild = () => {
|
|
144
|
+
this.overlayStore.clear();
|
|
145
|
+
const hasActions = menu.getActions().length > 0;
|
|
146
|
+
if (!hasActions) {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
const container = h('div.floating-menu-overlay-widget.multi-diff-root-floating-menu');
|
|
150
|
+
root.appendChild(container.root);
|
|
151
|
+
const floatingMenu = instantiationService.createInstance(FloatingClickMenu, {
|
|
152
|
+
container: container.root,
|
|
153
|
+
menuId: MenuId.MultiDiffEditorContent,
|
|
154
|
+
getActionArg: () => this.currentResource,
|
|
155
|
+
});
|
|
156
|
+
const store = ( new DisposableStore());
|
|
157
|
+
store.add(floatingMenu);
|
|
158
|
+
store.add(toDisposable(() => container.root.remove()));
|
|
159
|
+
this.overlayStore.value = store;
|
|
160
|
+
};
|
|
161
|
+
this.rebuild();
|
|
162
|
+
this._register(menu.onDidChange(() => {
|
|
163
|
+
this.overlayStore.clear();
|
|
164
|
+
this.rebuild();
|
|
165
|
+
}));
|
|
166
|
+
this._register(resourceContextKey);
|
|
167
|
+
}
|
|
168
|
+
updateResource(resource) {
|
|
169
|
+
this.currentResource = resource;
|
|
170
|
+
this.resourceContextKey.set(resource ?? null);
|
|
171
|
+
this.overlayStore.clear();
|
|
172
|
+
this.rebuild();
|
|
173
|
+
}
|
|
174
|
+
}
|
|
115
175
|
let WorkbenchUIElementFactory = class WorkbenchUIElementFactory {
|
|
116
176
|
constructor(_instantiationService) {
|
|
117
177
|
this._instantiationService = _instantiationService;
|