@codingame/monaco-vscode-api 1.82.2 → 1.82.3
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/README.md +2 -0
- package/missing-services.js +17 -0
- package/monaco-editor-treemending.patch +551 -551
- package/package.json +1 -1
- package/service-override/quickaccess.js +1 -1
- package/service-override/tools/editor.d.ts +1 -1
- package/service-override/views.js +10 -0
- package/service-override/workspaceTrust.d.ts +5 -0
- package/service-override/workspaceTrust.js +13 -0
- package/services.d.ts +3 -0
- package/services.js +3 -0
- package/vscode/src/vs/base/common/htmlContent.d.ts +23 -2
- package/vscode/src/vs/platform/extensionManagement/common/extensionManagementUtil.js +16 -1
- package/vscode/src/vs/platform/opener/browser/link.d.ts +8 -0
- package/vscode/src/vs/platform/workspace/common/workspaceTrust.d.ts +34 -1
- package/vscode/src/vs/workbench/browser/parts/banner/bannerPart.js +228 -0
- package/vscode/src/vs/workbench/browser/parts/banner/media/bannerpart.css.js +4 -0
- package/vscode/src/vs/workbench/browser/parts/panel/panelActions.js +21 -0
- package/vscode/src/vs/workbench/browser/parts/titlebar/commandCenterControl.js +134 -0
- package/vscode/src/vs/workbench/browser/parts/titlebar/media/titlebarpart.css.js +4 -0
- package/vscode/src/vs/workbench/browser/parts/titlebar/titlebarPart.js +365 -0
- package/vscode/src/vs/workbench/browser/parts/titlebar/windowTitle.js +216 -0
- package/vscode/src/vs/workbench/common/contextkeys.js +2 -1
- package/vscode/src/vs/workbench/common/theme.js +6 -6
- package/vscode/src/vs/workbench/contrib/extensions/common/extensions.js +2 -1
- package/vscode/src/vs/workbench/contrib/preferences/browser/preferences.contribution.js +108 -4
- package/vscode/src/vs/workbench/contrib/workspace/browser/media/workspaceTrustEditor.css.js +4 -0
- package/vscode/src/vs/workbench/contrib/workspace/browser/workspace.contribution.js +842 -0
- package/vscode/src/vs/workbench/contrib/workspace/browser/workspaceTrustEditor.js +1047 -0
- package/vscode/src/vs/workbench/contrib/workspace/common/workspace.js +14 -0
- package/vscode/src/vs/workbench/services/banner/browser/bannerService.d.ts +25 -0
- package/vscode/src/vs/workbench/services/banner/browser/bannerService.js +3 -0
- package/vscode/src/vs/workbench/services/title/common/titleService.d.ts +31 -0
- package/vscode/src/vs/workbench/services/title/common/titleService.js +3 -0
- package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfile.js +3 -1
- package/vscode/src/vs/workbench/services/workspaces/browser/workspaceTrustEditorInput.js +27 -0
- package/vscode/src/vs/workbench/services/workspaces/common/workspaceTrust.js +649 -1
package/package.json
CHANGED
|
@@ -38,7 +38,7 @@ let DelegateQuickInputService = class DelegateQuickInputService {
|
|
|
38
38
|
}
|
|
39
39
|
get activeService() {
|
|
40
40
|
const activeCodeEditor = StandaloneServices.get(ICodeEditorService).getFocusedCodeEditor();
|
|
41
|
-
if (shouldUseGlobalPicker(activeCodeEditor, activeCodeEditor instanceof StandaloneCodeEditor)) {
|
|
41
|
+
if (activeCodeEditor == null || shouldUseGlobalPicker(activeCodeEditor, activeCodeEditor instanceof StandaloneCodeEditor)) {
|
|
42
42
|
return this.workbenchQuickInputService;
|
|
43
43
|
}
|
|
44
44
|
this.standaloneQuickInputService ?? (this.standaloneQuickInputService = this.instantiationService.createInstance(StandaloneQuickInputService));
|
|
@@ -14,8 +14,8 @@ import { PreferredGroup } from '../../vscode/src/vs/workbench/services/editor/co
|
|
|
14
14
|
import { IEditorResolverService } from '../../vscode/src/vs/workbench/services/editor/common/editorResolverService.js';
|
|
15
15
|
import { ITextEditorService } from '../../vscode/src/vs/workbench/services/textfile/common/textEditorService.js';
|
|
16
16
|
import { IHostService } from '../../vscode/src/vs/workbench/services/host/browser/host.js';
|
|
17
|
-
import { EditorService } from '../../vscode/src/vs/workbench/services/editor/browser/editorService.js';
|
|
18
17
|
import { IWorkspaceTrustRequestService } from '../../vscode/src/vs/platform/workspace/common/workspaceTrust.js';
|
|
18
|
+
import { EditorService } from '../../vscode/src/vs/workbench/services/editor/browser/editorService.js';
|
|
19
19
|
|
|
20
20
|
type OpenEditor = (modelRef: IReference<IResolvedTextEditorModel>, options: IEditorOptions | undefined, sideBySide?: boolean) => Promise<ICodeEditor | undefined>;
|
|
21
21
|
declare class MonacoEditorService extends EditorService {
|
|
@@ -84,6 +84,10 @@ import { IStorageService } from 'monaco-editor/esm/vs/platform/storage/common/st
|
|
|
84
84
|
import { IThemeService } from 'monaco-editor/esm/vs/platform/theme/common/themeService.js';
|
|
85
85
|
export { ConfirmResult } from '../override/vs/platform/dialogs/common/dialogs.js';
|
|
86
86
|
import { ILayoutService } from 'monaco-editor/esm/vs/platform/layout/browser/layoutService.js';
|
|
87
|
+
import { BannerPart } from '../vscode/src/vs/workbench/browser/parts/banner/bannerPart.js';
|
|
88
|
+
import { IBannerService } from '../vscode/src/vs/workbench/services/banner/browser/bannerService.js';
|
|
89
|
+
import { ITitleService } from '../vscode/src/vs/workbench/services/title/common/titleService.js';
|
|
90
|
+
import { TitlebarPart } from '../vscode/src/vs/workbench/browser/parts/titlebar/titlebarPart.js';
|
|
87
91
|
import { MonacoEditorService, MonacoDelegateEditorGroupsService } from './tools/editor.js';
|
|
88
92
|
import getServiceOverride$2 from './bulkEdit.js';
|
|
89
93
|
import getServiceOverride$1 from './layout.js';
|
|
@@ -439,12 +443,16 @@ registerServiceInitializePostParticipant(async (accessor) => {
|
|
|
439
443
|
const paneCompositePartService = accessor.get(IPaneCompositePartService);
|
|
440
444
|
const viewDescriptorService = accessor.get(IViewDescriptorService);
|
|
441
445
|
accessor.get(IStatusbarService);
|
|
446
|
+
accessor.get(IBannerService);
|
|
447
|
+
accessor.get(ITitleService);
|
|
442
448
|
paneCompositePartService.getPaneComposites(1 );
|
|
443
449
|
const layoutService = accessor.get(ILayoutService);
|
|
444
450
|
const invisibleContainer = document.createElement('div');
|
|
445
451
|
invisibleContainer.style.display = 'none';
|
|
446
452
|
document.body.append(invisibleContainer);
|
|
447
453
|
for (const { id, role, classes, options } of [
|
|
454
|
+
{ id: "workbench.parts.titlebar" , role: 'none', classes: ['titlebar'] },
|
|
455
|
+
{ id: "workbench.parts.banner" , role: 'banner', classes: ['banner'] },
|
|
448
456
|
{ id: "workbench.parts.activitybar" , role: 'none', classes: ['activitybar', 'left'] },
|
|
449
457
|
{ id: "workbench.parts.sidebar" , role: 'none', classes: ['sidebar', 'left'] },
|
|
450
458
|
{ id: "workbench.parts.editor" , role: 'main', classes: ['editor'], options: { restorePreviousState: false } },
|
|
@@ -485,6 +493,8 @@ function getServiceOverride(openEditorFallback, _webviewIframeAlternateDomains)
|
|
|
485
493
|
[( ICodeEditorService.toString())]: new SyncDescriptor(CodeEditorService, [], true),
|
|
486
494
|
[( ITextEditorService.toString())]: new SyncDescriptor(TextEditorService, [], false),
|
|
487
495
|
[( IEditorGroupsService.toString())]: new SyncDescriptor(MonacoEditorPart, [], false),
|
|
496
|
+
[( ITitleService.toString())]: new SyncDescriptor(TitlebarPart, [], false),
|
|
497
|
+
[( IBannerService.toString())]: new SyncDescriptor(BannerPart, [], false),
|
|
488
498
|
[( IStatusbarService.toString())]: new SyncDescriptor(StatusbarPart, [], false),
|
|
489
499
|
[( IEditorDropService.toString())]: new SyncDescriptor(EditorDropService, [], true),
|
|
490
500
|
[( IEditorService.toString())]: new SyncDescriptor(MonacoEditorService, [openEditorFallback, isEditorPartVisible], false),
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import '../missing-services.js';
|
|
2
|
+
import { SyncDescriptor } from 'monaco-editor/esm/vs/platform/instantiation/common/descriptors.js';
|
|
3
|
+
import { IWorkspaceTrustEnablementService, IWorkspaceTrustManagementService, IWorkspaceTrustRequestService } from 'monaco-editor/esm/vs/platform/workspace/common/workspaceTrust.js';
|
|
4
|
+
import { WorkspaceTrustEnablementService, WorkspaceTrustManagementService, WorkspaceTrustRequestService } from '../vscode/src/vs/workbench/services/workspaces/common/workspaceTrust.js';
|
|
5
|
+
import '../vscode/src/vs/workbench/contrib/workspace/browser/workspace.contribution.js';
|
|
6
|
+
function getServiceOverride() {
|
|
7
|
+
return {
|
|
8
|
+
[( IWorkspaceTrustEnablementService.toString())]: new SyncDescriptor(WorkspaceTrustEnablementService),
|
|
9
|
+
[( IWorkspaceTrustManagementService.toString())]: new SyncDescriptor(WorkspaceTrustManagementService),
|
|
10
|
+
[( IWorkspaceTrustRequestService.toString())]: new SyncDescriptor(WorkspaceTrustRequestService)
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export { getServiceOverride as default };
|
package/services.d.ts
CHANGED
|
@@ -66,6 +66,9 @@ export { IActivityService, IBadge } from './vscode/src/vs/workbench/services/act
|
|
|
66
66
|
export { IHoverService } from './vscode/src/vs/workbench/services/hover/browser/hover.js';
|
|
67
67
|
export { IExplorerService } from './vscode/src/vs/workbench/contrib/files/browser/files.js';
|
|
68
68
|
export { IStatusbarService } from './vscode/src/vs/workbench/services/statusbar/browser/statusbar.js';
|
|
69
|
+
export { ITitleService } from './vscode/src/vs/workbench/services/title/common/titleService.js';
|
|
70
|
+
export { IBannerService } from './vscode/src/vs/workbench/services/banner/browser/bannerService.js';
|
|
71
|
+
export { IWorkspaceTrustEnablementService, IWorkspaceTrustManagementService, IWorkspaceTrustRequestService, IWorkspaceTrustUriInfo } from './vscode/src/vs/platform/workspace/common/workspaceTrust.js';
|
|
69
72
|
|
|
70
73
|
declare function initialize(overrides: IEditorOverrideServices): Promise<void>;
|
|
71
74
|
declare function getService<T>(identifier: ServiceIdentifier<T>): Promise<T>;
|
package/services.js
CHANGED
|
@@ -67,6 +67,9 @@ export { IActivityService } from './vscode/src/vs/workbench/services/activity/co
|
|
|
67
67
|
export { IHoverService } from './vscode/src/vs/workbench/services/hover/browser/hover.js';
|
|
68
68
|
export { IExplorerService } from './vscode/src/vs/workbench/contrib/files/browser/files.js';
|
|
69
69
|
export { IStatusbarService } from './vscode/src/vs/workbench/services/statusbar/browser/statusbar.js';
|
|
70
|
+
export { ITitleService } from './vscode/src/vs/workbench/services/title/common/titleService.js';
|
|
71
|
+
export { IBannerService } from './vscode/src/vs/workbench/services/banner/browser/bannerService.js';
|
|
72
|
+
export { IWorkspaceTrustEnablementService, IWorkspaceTrustManagementService, IWorkspaceTrustRequestService } from 'monaco-editor/esm/vs/platform/workspace/common/workspaceTrust.js';
|
|
70
73
|
export { IDialogService, IFileDialogService } from './vscode/src/vs/platform/dialogs/common/dialogs.js';
|
|
71
74
|
async function initialize(overrides) {
|
|
72
75
|
const instantiationService = StandaloneServices.initialize({
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { UriComponents } from './uri.js';
|
|
1
|
+
import { UriComponents, URI } from './uri.js';
|
|
2
2
|
|
|
3
3
|
interface MarkdownStringTrustedOptions {
|
|
4
4
|
readonly enabledCommands: readonly string[];
|
|
@@ -13,5 +13,26 @@ interface IMarkdownString {
|
|
|
13
13
|
[href: string]: UriComponents;
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
|
+
declare const enum MarkdownStringTextNewlineStyle {
|
|
17
|
+
Paragraph = 0,
|
|
18
|
+
Break = 1
|
|
19
|
+
}
|
|
20
|
+
declare class MarkdownString implements IMarkdownString {
|
|
21
|
+
value: string;
|
|
22
|
+
isTrusted?: boolean | MarkdownStringTrustedOptions;
|
|
23
|
+
supportThemeIcons?: boolean;
|
|
24
|
+
supportHtml?: boolean;
|
|
25
|
+
baseUri?: URI;
|
|
26
|
+
constructor(value?: string, isTrustedOrOptions?: boolean | {
|
|
27
|
+
isTrusted?: boolean | MarkdownStringTrustedOptions;
|
|
28
|
+
supportThemeIcons?: boolean;
|
|
29
|
+
supportHtml?: boolean;
|
|
30
|
+
});
|
|
31
|
+
appendText(value: string, newlineStyle?: MarkdownStringTextNewlineStyle): MarkdownString;
|
|
32
|
+
appendMarkdown(value: string): MarkdownString;
|
|
33
|
+
appendCodeblock(langId: string, code: string): MarkdownString;
|
|
34
|
+
appendLink(target: URI | string, label: string, title?: string): MarkdownString;
|
|
35
|
+
private _escape;
|
|
36
|
+
}
|
|
16
37
|
|
|
17
|
-
export type
|
|
38
|
+
export { type IMarkdownString, MarkdownString, MarkdownStringTextNewlineStyle, type MarkdownStringTrustedOptions };
|
|
@@ -18,4 +18,19 @@ function adoptToGalleryExtensionId(id) {
|
|
|
18
18
|
function getGalleryExtensionId(publisher, name) {
|
|
19
19
|
return adoptToGalleryExtensionId(getExtensionId(publisher ?? UNDEFINED_PUBLISHER, name));
|
|
20
20
|
}
|
|
21
|
-
|
|
21
|
+
function getExtensionDependencies(installedExtensions, extension) {
|
|
22
|
+
const dependencies = [];
|
|
23
|
+
const extensions = extension.manifest.extensionDependencies?.slice(0) ?? [];
|
|
24
|
+
while (extensions.length) {
|
|
25
|
+
const id = extensions.shift();
|
|
26
|
+
if (id && dependencies.every(e => !areSameExtensions(e.identifier, { id }))) {
|
|
27
|
+
const ext = installedExtensions.filter(e => areSameExtensions(e.identifier, { id }));
|
|
28
|
+
if (ext.length === 1) {
|
|
29
|
+
dependencies.push(ext[0]);
|
|
30
|
+
extensions.push(...(ext[0].manifest.extensionDependencies?.slice(0) ?? []));
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return dependencies;
|
|
35
|
+
}
|
|
36
|
+
export { adoptToGalleryExtensionId, areSameExtensions, getExtensionDependencies, getExtensionId, getGalleryExtensionId };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ServiceIdentifier } from '../../instantiation/common/instantiation.js';
|
|
2
2
|
import { Event } from '../../../base/common/event.js';
|
|
3
|
+
import { IDisposable } from '../../../base/common/lifecycle.js';
|
|
3
4
|
import { URI } from '../../../base/common/uri.js';
|
|
4
5
|
|
|
5
6
|
interface WorkspaceTrustRequestButton {
|
|
@@ -10,6 +11,31 @@ interface WorkspaceTrustRequestOptions {
|
|
|
10
11
|
readonly buttons?: WorkspaceTrustRequestButton[];
|
|
11
12
|
readonly message?: string;
|
|
12
13
|
}
|
|
14
|
+
declare const IWorkspaceTrustEnablementService: ServiceIdentifier<IWorkspaceTrustEnablementService>;
|
|
15
|
+
interface IWorkspaceTrustEnablementService {
|
|
16
|
+
readonly _serviceBrand: undefined;
|
|
17
|
+
isWorkspaceTrustEnabled(): boolean;
|
|
18
|
+
}
|
|
19
|
+
declare const IWorkspaceTrustManagementService: ServiceIdentifier<IWorkspaceTrustManagementService>;
|
|
20
|
+
interface IWorkspaceTrustManagementService {
|
|
21
|
+
readonly _serviceBrand: undefined;
|
|
22
|
+
onDidChangeTrust: Event<boolean>;
|
|
23
|
+
onDidChangeTrustedFolders: Event<void>;
|
|
24
|
+
readonly workspaceResolved: Promise<void>;
|
|
25
|
+
readonly workspaceTrustInitialized: Promise<void>;
|
|
26
|
+
acceptsOutOfWorkspaceFiles: boolean;
|
|
27
|
+
isWorkspaceTrusted(): boolean;
|
|
28
|
+
isWorkspaceTrustForced(): boolean;
|
|
29
|
+
canSetParentFolderTrust(): boolean;
|
|
30
|
+
setParentFolderTrust(trusted: boolean): Promise<void>;
|
|
31
|
+
canSetWorkspaceTrust(): boolean;
|
|
32
|
+
setWorkspaceTrust(trusted: boolean): Promise<void>;
|
|
33
|
+
getUriTrustInfo(uri: URI): Promise<IWorkspaceTrustUriInfo>;
|
|
34
|
+
setUrisTrust(uri: URI[], trusted: boolean): Promise<void>;
|
|
35
|
+
getTrustedUris(): URI[];
|
|
36
|
+
setTrustedUris(uris: URI[]): Promise<void>;
|
|
37
|
+
addWorkspaceTrustTransitionParticipant(participant: IWorkspaceTrustTransitionParticipant): IDisposable;
|
|
38
|
+
}
|
|
13
39
|
declare const enum WorkspaceTrustUriResponse {
|
|
14
40
|
Open = 1,
|
|
15
41
|
OpenInNewWindow = 2,
|
|
@@ -28,5 +54,12 @@ interface IWorkspaceTrustRequestService {
|
|
|
28
54
|
requestWorkspaceTrust(options?: WorkspaceTrustRequestOptions): Promise<boolean | undefined>;
|
|
29
55
|
requestWorkspaceTrustOnStartup(): void;
|
|
30
56
|
}
|
|
57
|
+
interface IWorkspaceTrustTransitionParticipant {
|
|
58
|
+
participate(trusted: boolean): Promise<void>;
|
|
59
|
+
}
|
|
60
|
+
interface IWorkspaceTrustUriInfo {
|
|
61
|
+
uri: URI;
|
|
62
|
+
trusted: boolean;
|
|
63
|
+
}
|
|
31
64
|
|
|
32
|
-
export { IWorkspaceTrustRequestService, type WorkspaceTrustRequestButton, type WorkspaceTrustRequestOptions, WorkspaceTrustUriResponse };
|
|
65
|
+
export { IWorkspaceTrustEnablementService, IWorkspaceTrustManagementService, IWorkspaceTrustRequestService, type IWorkspaceTrustTransitionParticipant, type IWorkspaceTrustUriInfo, type WorkspaceTrustRequestButton, type WorkspaceTrustRequestOptions, WorkspaceTrustUriResponse };
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
|
|
2
|
+
import './media/bannerpart.css.js';
|
|
3
|
+
import { localize } from 'monaco-editor/esm/vs/nls.js';
|
|
4
|
+
import { addDisposableListener, EventType, clearNode, $, append, asCSSUrl } from 'monaco-editor/esm/vs/base/browser/dom.js';
|
|
5
|
+
import { ActionBar } from 'monaco-editor/esm/vs/base/browser/ui/actionbar/actionbar.js';
|
|
6
|
+
import { IInstantiationService } from 'monaco-editor/esm/vs/platform/instantiation/common/instantiation.js';
|
|
7
|
+
import { IStorageService } from 'monaco-editor/esm/vs/platform/storage/common/storage.js';
|
|
8
|
+
import { IThemeService } from 'monaco-editor/esm/vs/platform/theme/common/themeService.js';
|
|
9
|
+
import { ThemeIcon } from 'monaco-editor/esm/vs/base/common/themables.js';
|
|
10
|
+
import { Part } from '../../part.js';
|
|
11
|
+
import { IWorkbenchLayoutService } from '../../../services/layout/browser/layoutService.js';
|
|
12
|
+
import { Action } from 'monaco-editor/esm/vs/base/common/actions.js';
|
|
13
|
+
import { Link } from 'monaco-editor/esm/vs/platform/opener/browser/link.js';
|
|
14
|
+
import { Emitter } from 'monaco-editor/esm/vs/base/common/event.js';
|
|
15
|
+
import { IBannerService } from '../../../services/banner/browser/bannerService.js';
|
|
16
|
+
import { MarkdownRenderer } from 'monaco-editor/esm/vs/editor/contrib/markdownRenderer/browser/markdownRenderer.js';
|
|
17
|
+
import { Action2, registerAction2 } from 'monaco-editor/esm/vs/platform/actions/common/actions.js';
|
|
18
|
+
import { Categories } from 'monaco-editor/esm/vs/platform/action/common/actionCommonCategories.js';
|
|
19
|
+
import { KeybindingsRegistry } from 'monaco-editor/esm/vs/platform/keybinding/common/keybindingsRegistry.js';
|
|
20
|
+
import { IContextKeyService } from 'monaco-editor/esm/vs/platform/contextkey/common/contextkey.js';
|
|
21
|
+
import { URI } from 'monaco-editor/esm/vs/base/common/uri.js';
|
|
22
|
+
import { widgetClose } from 'monaco-editor/esm/vs/platform/theme/common/iconRegistry.js';
|
|
23
|
+
import { BannerFocused } from '../../../common/contextkeys.js';
|
|
24
|
+
let BannerPart = class BannerPart extends Part {
|
|
25
|
+
get minimumHeight() {
|
|
26
|
+
return this.visible ? this.height : 0;
|
|
27
|
+
}
|
|
28
|
+
get maximumHeight() {
|
|
29
|
+
return this.visible ? this.height : 0;
|
|
30
|
+
}
|
|
31
|
+
get onDidChange() { return this._onDidChangeSize.event; }
|
|
32
|
+
constructor(themeService, layoutService, storageService, contextKeyService, instantiationService) {
|
|
33
|
+
super("workbench.parts.banner" , { hasTitle: false }, themeService, storageService, layoutService);
|
|
34
|
+
this.contextKeyService = contextKeyService;
|
|
35
|
+
this.instantiationService = instantiationService;
|
|
36
|
+
this.height = 26;
|
|
37
|
+
this.minimumWidth = 0;
|
|
38
|
+
this.maximumWidth = Number.POSITIVE_INFINITY;
|
|
39
|
+
this._onDidChangeSize = this._register(( new Emitter()));
|
|
40
|
+
this.visible = false;
|
|
41
|
+
this.focusedActionIndex = -1;
|
|
42
|
+
this.markdownRenderer = this.instantiationService.createInstance(MarkdownRenderer, {});
|
|
43
|
+
}
|
|
44
|
+
createContentArea(parent) {
|
|
45
|
+
this.element = parent;
|
|
46
|
+
this.element.tabIndex = 0;
|
|
47
|
+
this._register(addDisposableListener(this.element, EventType.FOCUS, () => {
|
|
48
|
+
if (this.focusedActionIndex !== -1) {
|
|
49
|
+
this.focusActionLink();
|
|
50
|
+
}
|
|
51
|
+
}));
|
|
52
|
+
const scopedContextKeyService = this.contextKeyService.createScoped(this.element);
|
|
53
|
+
BannerFocused.bindTo(scopedContextKeyService).set(true);
|
|
54
|
+
return this.element;
|
|
55
|
+
}
|
|
56
|
+
close(item) {
|
|
57
|
+
this.setVisibility(false);
|
|
58
|
+
clearNode(this.element);
|
|
59
|
+
if (typeof item.onClose === 'function') {
|
|
60
|
+
item.onClose();
|
|
61
|
+
}
|
|
62
|
+
this.item = undefined;
|
|
63
|
+
}
|
|
64
|
+
focusActionLink() {
|
|
65
|
+
const length = this.item?.actions?.length ?? 0;
|
|
66
|
+
if (this.focusedActionIndex < length) {
|
|
67
|
+
const actionLink = this.messageActionsContainer?.children[this.focusedActionIndex];
|
|
68
|
+
if (actionLink instanceof HTMLElement) {
|
|
69
|
+
this.actionBar?.setFocusable(false);
|
|
70
|
+
actionLink.focus();
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
this.actionBar?.focus(0);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
getAriaLabel(item) {
|
|
78
|
+
if (item.ariaLabel) {
|
|
79
|
+
return item.ariaLabel;
|
|
80
|
+
}
|
|
81
|
+
if (typeof item.message === 'string') {
|
|
82
|
+
return item.message;
|
|
83
|
+
}
|
|
84
|
+
return undefined;
|
|
85
|
+
}
|
|
86
|
+
getBannerMessage(message) {
|
|
87
|
+
if (typeof message === 'string') {
|
|
88
|
+
const element = $('span');
|
|
89
|
+
element.innerText = message;
|
|
90
|
+
return element;
|
|
91
|
+
}
|
|
92
|
+
return this.markdownRenderer.render(message).element;
|
|
93
|
+
}
|
|
94
|
+
setVisibility(visible) {
|
|
95
|
+
if (visible !== this.visible) {
|
|
96
|
+
this.visible = visible;
|
|
97
|
+
this.focusedActionIndex = -1;
|
|
98
|
+
this.layoutService.setPartHidden(!visible, "workbench.parts.banner" );
|
|
99
|
+
this._onDidChangeSize.fire(undefined);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
focus() {
|
|
103
|
+
this.focusedActionIndex = -1;
|
|
104
|
+
this.element.focus();
|
|
105
|
+
}
|
|
106
|
+
focusNextAction() {
|
|
107
|
+
const length = this.item?.actions?.length ?? 0;
|
|
108
|
+
this.focusedActionIndex = this.focusedActionIndex < length ? this.focusedActionIndex + 1 : 0;
|
|
109
|
+
this.focusActionLink();
|
|
110
|
+
}
|
|
111
|
+
focusPreviousAction() {
|
|
112
|
+
const length = this.item?.actions?.length ?? 0;
|
|
113
|
+
this.focusedActionIndex = this.focusedActionIndex > 0 ? this.focusedActionIndex - 1 : length;
|
|
114
|
+
this.focusActionLink();
|
|
115
|
+
}
|
|
116
|
+
hide(id) {
|
|
117
|
+
if (this.item?.id !== id) {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
this.setVisibility(false);
|
|
121
|
+
}
|
|
122
|
+
show(item) {
|
|
123
|
+
if (item.id === this.item?.id) {
|
|
124
|
+
this.setVisibility(true);
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
clearNode(this.element);
|
|
128
|
+
const ariaLabel = this.getAriaLabel(item);
|
|
129
|
+
if (ariaLabel) {
|
|
130
|
+
this.element.setAttribute('aria-label', ariaLabel);
|
|
131
|
+
}
|
|
132
|
+
const iconContainer = append(this.element, $('div.icon-container'));
|
|
133
|
+
iconContainer.setAttribute('aria-hidden', 'true');
|
|
134
|
+
if (ThemeIcon.isThemeIcon(item.icon)) {
|
|
135
|
+
iconContainer.appendChild($(`div${ThemeIcon.asCSSSelector(item.icon)}`));
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
iconContainer.classList.add('custom-icon');
|
|
139
|
+
if (URI.isUri(item.icon)) {
|
|
140
|
+
iconContainer.style.backgroundImage = asCSSUrl(item.icon);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
const messageContainer = append(this.element, $('div.message-container'));
|
|
144
|
+
messageContainer.setAttribute('aria-hidden', 'true');
|
|
145
|
+
messageContainer.appendChild(this.getBannerMessage(item.message));
|
|
146
|
+
this.messageActionsContainer = append(this.element, $('div.message-actions-container'));
|
|
147
|
+
if (item.actions) {
|
|
148
|
+
for (const action of item.actions) {
|
|
149
|
+
this._register(this.instantiationService.createInstance(Link, this.messageActionsContainer, { ...action, tabIndex: -1 }, {}));
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
const actionBarContainer = append(this.element, $('div.action-container'));
|
|
153
|
+
this.actionBar = this._register(( new ActionBar(actionBarContainer)));
|
|
154
|
+
const closeAction = this._register(( new Action(
|
|
155
|
+
'banner.close',
|
|
156
|
+
'Close Banner',
|
|
157
|
+
ThemeIcon.asClassName(widgetClose),
|
|
158
|
+
true,
|
|
159
|
+
() => this.close(item)
|
|
160
|
+
)));
|
|
161
|
+
this.actionBar.push(closeAction, { icon: true, label: false });
|
|
162
|
+
this.actionBar.setFocusable(false);
|
|
163
|
+
this.setVisibility(true);
|
|
164
|
+
this.item = item;
|
|
165
|
+
}
|
|
166
|
+
toJSON() {
|
|
167
|
+
return {
|
|
168
|
+
type: "workbench.parts.banner"
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
BannerPart = ( __decorate([
|
|
173
|
+
( __param(0, IThemeService)),
|
|
174
|
+
( __param(1, IWorkbenchLayoutService)),
|
|
175
|
+
( __param(2, IStorageService)),
|
|
176
|
+
( __param(3, IContextKeyService)),
|
|
177
|
+
( __param(4, IInstantiationService))
|
|
178
|
+
], BannerPart));
|
|
179
|
+
KeybindingsRegistry.registerCommandAndKeybindingRule({
|
|
180
|
+
id: 'workbench.banner.focusBanner',
|
|
181
|
+
weight: 200 ,
|
|
182
|
+
primary: 9 ,
|
|
183
|
+
when: BannerFocused,
|
|
184
|
+
handler: (accessor) => {
|
|
185
|
+
const bannerService = accessor.get(IBannerService);
|
|
186
|
+
bannerService.focus();
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
KeybindingsRegistry.registerCommandAndKeybindingRule({
|
|
190
|
+
id: 'workbench.banner.focusNextAction',
|
|
191
|
+
weight: 200 ,
|
|
192
|
+
primary: 17 ,
|
|
193
|
+
secondary: [18 ],
|
|
194
|
+
when: BannerFocused,
|
|
195
|
+
handler: (accessor) => {
|
|
196
|
+
const bannerService = accessor.get(IBannerService);
|
|
197
|
+
bannerService.focusNextAction();
|
|
198
|
+
}
|
|
199
|
+
});
|
|
200
|
+
KeybindingsRegistry.registerCommandAndKeybindingRule({
|
|
201
|
+
id: 'workbench.banner.focusPreviousAction',
|
|
202
|
+
weight: 200 ,
|
|
203
|
+
primary: 15 ,
|
|
204
|
+
secondary: [16 ],
|
|
205
|
+
when: BannerFocused,
|
|
206
|
+
handler: (accessor) => {
|
|
207
|
+
const bannerService = accessor.get(IBannerService);
|
|
208
|
+
bannerService.focusPreviousAction();
|
|
209
|
+
}
|
|
210
|
+
});
|
|
211
|
+
class FocusBannerAction extends Action2 {
|
|
212
|
+
static { this.ID = 'workbench.action.focusBanner'; }
|
|
213
|
+
static { this.LABEL = ( localize('focusBanner', "Focus Banner")); }
|
|
214
|
+
constructor() {
|
|
215
|
+
super({
|
|
216
|
+
id: FocusBannerAction.ID,
|
|
217
|
+
title: { value: FocusBannerAction.LABEL, original: 'Focus Banner' },
|
|
218
|
+
category: Categories.View,
|
|
219
|
+
f1: true
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
async run(accessor) {
|
|
223
|
+
const layoutService = accessor.get(IWorkbenchLayoutService);
|
|
224
|
+
layoutService.focusPart("workbench.parts.banner" );
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
registerAction2(FocusBannerAction);
|
|
228
|
+
export { BannerPart };
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import n from '../../../../../../../../external/rollup-plugin-styles/dist/runtime/inject-css.js';
|
|
2
|
+
var css = ".monaco-workbench .part.banner{background-color:var(--vscode-banner-background);box-sizing:border-box;color:var(--vscode-banner-foreground);cursor:default;display:flex;font-size:12px;height:100%;overflow:visible;width:100%}.monaco-workbench .part.banner .icon-container{align-items:center;display:flex;flex-shrink:0;padding:0 6px 0 10px}.monaco-workbench .part.banner .icon-container .codicon{color:var(--vscode-banner-iconForeground)}.monaco-workbench .part.banner .icon-container.custom-icon{background-image:url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiPjxwYXRoIGQ9Ik0xMDI0IDEwMjRIMFYwaDEwMjR2MTAyNHoiIHN0eWxlPSJmaWxsOiNmNmY2ZjY7ZmlsbC1vcGFjaXR5OjAiIGZpbGw9Im5vbmUiLz48cGF0aCBkPSJNMTAyNCA4NS4zMzN2ODUzLjMzM0gwVjg1LjMzM2gxMDI0eiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjxwYXRoIGQ9Ik0wIDg1LjMzM2gyOTguNjY3djg1My4zMzNIMFY4NS4zMzN6bTEwMjQgMHY4NTMuMzMzSDM4NFY4NS4zMzNoNjQwem0tNTU0LjY2NyAxNjBoMzQxLjMzM3YtNjRINDY5LjMzM3Y2NHptMzQxLjMzNCA1MzMuMzM0SDQ2OS4zMzN2NjRoMzQxLjMzM2wuMDAxLTY0em0xMjgtMTQ5LjMzNEg1OTcuMzMzdjY0aDM0MS4zMzNsLjAwMS02NHptMC0xNDkuMzMzSDU5Ny4zMzN2NjRoMzQxLjMzM2wuMDAxLTY0em0wLTE0OS4zMzNINTk3LjMzM3Y2NGgzNDEuMzMzbC4wMDEtNjR6IiBzdHlsZT0iZmlsbDojMTY3YWJmIi8+PC9zdmc+\");background-position:50%;background-repeat:no-repeat;background-size:16px;margin:0 6px 0 10px;padding:0;width:16px}.monaco-workbench .part.banner .message-container{line-height:26px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-workbench .part.banner .message-container a{color:var(--vscode-banner-foreground)}.monaco-workbench .part.banner .message-container p{margin-block-end:0;margin-block-start:0}.monaco-workbench .part.banner .message-actions-container{flex-grow:1;flex-shrink:0;line-height:26px}.monaco-workbench .part.banner .message-actions-container a{color:var(--vscode-banner-foreground);cursor:pointer;margin-left:12px;padding:3px;text-decoration:underline}.monaco-workbench .part.banner .message-container a{cursor:pointer;text-decoration:underline}.monaco-workbench .part.banner .action-container{padding:0 10px 0 6px}.monaco-workbench .part.banner .action-container .codicon{color:var(--vscode-banner-foreground)}";
|
|
3
|
+
n(css,{});
|
|
4
|
+
export { css, css as default };
|
|
@@ -257,6 +257,27 @@ registerAction2(class extends SwitchPanelViewAction {
|
|
|
257
257
|
return super.run(accessor, 1);
|
|
258
258
|
}
|
|
259
259
|
});
|
|
260
|
+
registerAction2(class extends Action2 {
|
|
261
|
+
constructor() {
|
|
262
|
+
super({
|
|
263
|
+
id: 'workbench.action.closePanel',
|
|
264
|
+
title: { value: ( localize('closePanel', "Close Panel")), original: 'Close Panel' },
|
|
265
|
+
category: Categories.View,
|
|
266
|
+
icon: closeIcon,
|
|
267
|
+
menu: [{
|
|
268
|
+
id: MenuId.CommandPalette,
|
|
269
|
+
when: PanelVisibleContext,
|
|
270
|
+
}, {
|
|
271
|
+
id: MenuId.PanelTitle,
|
|
272
|
+
group: 'navigation',
|
|
273
|
+
order: 2
|
|
274
|
+
}]
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
run(accessor) {
|
|
278
|
+
accessor.get(IWorkbenchLayoutService).setPartHidden(true, "workbench.parts.panel" );
|
|
279
|
+
}
|
|
280
|
+
});
|
|
260
281
|
registerAction2(class extends Action2 {
|
|
261
282
|
constructor() {
|
|
262
283
|
super({
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
|
|
2
|
+
import { reset } from 'monaco-editor/esm/vs/base/browser/dom.js';
|
|
3
|
+
import { BaseActionViewItem } from 'monaco-editor/esm/vs/base/browser/ui/actionbar/actionViewItems.js';
|
|
4
|
+
import { setupCustomHover } from 'monaco-editor/esm/vs/base/browser/ui/iconLabel/iconLabelHover.js';
|
|
5
|
+
import { renderIcon } from 'monaco-editor/esm/vs/base/browser/ui/iconLabel/iconLabels.js';
|
|
6
|
+
import { Codicon } from 'monaco-editor/esm/vs/base/common/codicons.js';
|
|
7
|
+
import { Color } from 'monaco-editor/esm/vs/base/common/color.js';
|
|
8
|
+
import { Emitter } from 'monaco-editor/esm/vs/base/common/event.js';
|
|
9
|
+
import { DisposableStore } from 'monaco-editor/esm/vs/base/common/lifecycle.js';
|
|
10
|
+
import { localize } from 'monaco-editor/esm/vs/nls.js';
|
|
11
|
+
import { createActionViewItem } from 'monaco-editor/esm/vs/platform/actions/browser/menuEntryActionViewItem.js';
|
|
12
|
+
import { MenuWorkbenchToolBar } from 'monaco-editor/esm/vs/platform/actions/browser/toolbar.js';
|
|
13
|
+
import { MenuId, MenuItemAction } from 'monaco-editor/esm/vs/platform/actions/common/actions.js';
|
|
14
|
+
import { IInstantiationService } from 'monaco-editor/esm/vs/platform/instantiation/common/instantiation.js';
|
|
15
|
+
import { IKeybindingService } from 'monaco-editor/esm/vs/platform/keybinding/common/keybinding.js';
|
|
16
|
+
import { IQuickInputService } from 'monaco-editor/esm/vs/platform/quickinput/common/quickInput.js';
|
|
17
|
+
import * as colorRegistry from 'monaco-editor/esm/vs/platform/theme/common/colorRegistry.js';
|
|
18
|
+
import { TITLE_BAR_ACTIVE_FOREGROUND, MENUBAR_SELECTION_FOREGROUND, TITLE_BAR_INACTIVE_FOREGROUND, MENUBAR_SELECTION_BACKGROUND } from '../../../common/theme.js';
|
|
19
|
+
let CommandCenterControl = class CommandCenterControl {
|
|
20
|
+
constructor(windowTitle, hoverDelegate, instantiationService, quickInputService, keybindingService) {
|
|
21
|
+
this._disposables = ( new DisposableStore());
|
|
22
|
+
this._onDidChangeVisibility = ( new Emitter());
|
|
23
|
+
this.onDidChangeVisibility = this._onDidChangeVisibility.event;
|
|
24
|
+
this.element = document.createElement('div');
|
|
25
|
+
this.element.classList.add('command-center');
|
|
26
|
+
const titleToolbar = instantiationService.createInstance(MenuWorkbenchToolBar, this.element, MenuId.CommandCenter, {
|
|
27
|
+
contextMenu: MenuId.TitleBarContext,
|
|
28
|
+
hiddenItemStrategy: 0 ,
|
|
29
|
+
toolbarOptions: {
|
|
30
|
+
primaryGroup: () => true,
|
|
31
|
+
},
|
|
32
|
+
telemetrySource: 'commandCenter',
|
|
33
|
+
actionViewItemProvider: (action) => {
|
|
34
|
+
if (action instanceof MenuItemAction && action.id === 'workbench.action.quickOpenWithModes') {
|
|
35
|
+
class CommandCenterViewItem extends BaseActionViewItem {
|
|
36
|
+
constructor(action, options) {
|
|
37
|
+
super(undefined, action, options);
|
|
38
|
+
}
|
|
39
|
+
render(container) {
|
|
40
|
+
super.render(container);
|
|
41
|
+
container.classList.add('command-center');
|
|
42
|
+
const searchIcon = renderIcon(Codicon.search);
|
|
43
|
+
searchIcon.classList.add('search-icon');
|
|
44
|
+
const label = this._getLabel();
|
|
45
|
+
const labelElement = document.createElement('span');
|
|
46
|
+
labelElement.classList.add('search-label');
|
|
47
|
+
labelElement.innerText = label;
|
|
48
|
+
reset(container, searchIcon, labelElement);
|
|
49
|
+
const hover = this._store.add(setupCustomHover(hoverDelegate, container, this.getTooltip()));
|
|
50
|
+
this._store.add(windowTitle.onDidChange(() => {
|
|
51
|
+
hover.update(this.getTooltip());
|
|
52
|
+
labelElement.innerText = this._getLabel();
|
|
53
|
+
}));
|
|
54
|
+
}
|
|
55
|
+
_getLabel() {
|
|
56
|
+
const { prefix, suffix } = windowTitle.getTitleDecorations();
|
|
57
|
+
let label = windowTitle.isCustomTitleFormat() ? windowTitle.getWindowTitle() : windowTitle.workspaceName;
|
|
58
|
+
if (!label) {
|
|
59
|
+
label = ( localize('label.dfl', "Search"));
|
|
60
|
+
}
|
|
61
|
+
if (prefix) {
|
|
62
|
+
label = ( localize('label1', "{0} {1}", prefix, label));
|
|
63
|
+
}
|
|
64
|
+
if (suffix) {
|
|
65
|
+
label = ( localize('label2', "{0} {1}", label, suffix));
|
|
66
|
+
}
|
|
67
|
+
return label;
|
|
68
|
+
}
|
|
69
|
+
getTooltip() {
|
|
70
|
+
const kb = keybindingService.lookupKeybinding(action.id)?.getLabel();
|
|
71
|
+
const title = kb
|
|
72
|
+
? ( localize(
|
|
73
|
+
'title',
|
|
74
|
+
"Search {0} ({1}) \u2014 {2}",
|
|
75
|
+
windowTitle.workspaceName,
|
|
76
|
+
kb,
|
|
77
|
+
windowTitle.value
|
|
78
|
+
))
|
|
79
|
+
: ( localize(
|
|
80
|
+
'title2',
|
|
81
|
+
"Search {0} \u2014 {1}",
|
|
82
|
+
windowTitle.workspaceName,
|
|
83
|
+
windowTitle.value
|
|
84
|
+
));
|
|
85
|
+
return title;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return instantiationService.createInstance(CommandCenterViewItem, action, {});
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
return createActionViewItem(instantiationService, action, { hoverDelegate });
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
this._disposables.add(quickInputService.onShow(this._setVisibility.bind(this, false)));
|
|
96
|
+
this._disposables.add(quickInputService.onHide(this._setVisibility.bind(this, true)));
|
|
97
|
+
this._disposables.add(titleToolbar);
|
|
98
|
+
}
|
|
99
|
+
_setVisibility(show) {
|
|
100
|
+
this.element.classList.toggle('hide', !show);
|
|
101
|
+
this._onDidChangeVisibility.fire();
|
|
102
|
+
}
|
|
103
|
+
dispose() {
|
|
104
|
+
this._disposables.dispose();
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
CommandCenterControl = ( __decorate([
|
|
108
|
+
( __param(2, IInstantiationService)),
|
|
109
|
+
( __param(3, IQuickInputService)),
|
|
110
|
+
( __param(4, IKeybindingService))
|
|
111
|
+
], CommandCenterControl));
|
|
112
|
+
colorRegistry.registerColor('commandCenter.foreground', { dark: TITLE_BAR_ACTIVE_FOREGROUND, hcDark: TITLE_BAR_ACTIVE_FOREGROUND, light: TITLE_BAR_ACTIVE_FOREGROUND, hcLight: TITLE_BAR_ACTIVE_FOREGROUND }, ( localize('commandCenter-foreground', "Foreground color of the command center")), false);
|
|
113
|
+
colorRegistry.registerColor('commandCenter.activeForeground', { dark: MENUBAR_SELECTION_FOREGROUND, hcDark: MENUBAR_SELECTION_FOREGROUND, light: MENUBAR_SELECTION_FOREGROUND, hcLight: MENUBAR_SELECTION_FOREGROUND }, ( localize(
|
|
114
|
+
'commandCenter-activeForeground',
|
|
115
|
+
"Active foreground color of the command center"
|
|
116
|
+
)), false);
|
|
117
|
+
colorRegistry.registerColor('commandCenter.inactiveForeground', { dark: TITLE_BAR_INACTIVE_FOREGROUND, hcDark: TITLE_BAR_INACTIVE_FOREGROUND, light: TITLE_BAR_INACTIVE_FOREGROUND, hcLight: TITLE_BAR_INACTIVE_FOREGROUND }, ( localize(
|
|
118
|
+
'commandCenter-inactiveForeground',
|
|
119
|
+
"Foreground color of the command center when the window is inactive"
|
|
120
|
+
)), false);
|
|
121
|
+
colorRegistry.registerColor('commandCenter.background', {
|
|
122
|
+
dark: ( Color.white.transparent(0.05)), hcDark: null, light: ( Color.black.transparent(0.05)), hcLight: null
|
|
123
|
+
}, ( localize('commandCenter-background', "Background color of the command center")), false);
|
|
124
|
+
colorRegistry.registerColor('commandCenter.activeBackground', { dark: ( Color.white.transparent(0.08)), hcDark: MENUBAR_SELECTION_BACKGROUND, light: ( Color.black.transparent(0.08)), hcLight: MENUBAR_SELECTION_BACKGROUND }, ( localize(
|
|
125
|
+
'commandCenter-activeBackground',
|
|
126
|
+
"Active background color of the command center"
|
|
127
|
+
)), false);
|
|
128
|
+
colorRegistry.registerColor('commandCenter.border', { dark: ( colorRegistry.transparent(TITLE_BAR_ACTIVE_FOREGROUND, .20)), hcDark: ( colorRegistry.transparent(TITLE_BAR_ACTIVE_FOREGROUND, .60)), light: ( colorRegistry.transparent(TITLE_BAR_ACTIVE_FOREGROUND, .20)), hcLight: ( colorRegistry.transparent(TITLE_BAR_ACTIVE_FOREGROUND, .60)) }, ( localize('commandCenter-border', "Border color of the command center")), false);
|
|
129
|
+
colorRegistry.registerColor('commandCenter.activeBorder', { dark: ( colorRegistry.transparent(TITLE_BAR_ACTIVE_FOREGROUND, .30)), hcDark: TITLE_BAR_ACTIVE_FOREGROUND, light: ( colorRegistry.transparent(TITLE_BAR_ACTIVE_FOREGROUND, .30)), hcLight: TITLE_BAR_ACTIVE_FOREGROUND }, ( localize('commandCenter-activeBorder', "Active border color of the command center")), false);
|
|
130
|
+
colorRegistry.registerColor('commandCenter.inactiveBorder', { dark: ( colorRegistry.transparent(TITLE_BAR_INACTIVE_FOREGROUND, .25)), hcDark: ( colorRegistry.transparent(TITLE_BAR_INACTIVE_FOREGROUND, .25)), light: ( colorRegistry.transparent(TITLE_BAR_INACTIVE_FOREGROUND, .25)), hcLight: ( colorRegistry.transparent(TITLE_BAR_INACTIVE_FOREGROUND, .25)) }, ( localize(
|
|
131
|
+
'commandCenter-inactiveBorder',
|
|
132
|
+
"Border color of the command center when the window is inactive"
|
|
133
|
+
)), false);
|
|
134
|
+
export { CommandCenterControl };
|