@pstdio/workbench 0.5.0 → 0.6.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/README.md +66 -72
- package/dist/composition-resolver-types-CWykPyEK.js +241 -0
- package/dist/composition-resolver-types-CWykPyEK.js.map +1 -0
- package/dist/extensions.d.ts +344 -28
- package/dist/extensions.js +1362 -883
- package/dist/extensions.js.map +1 -1
- package/dist/file-renderer-view-zpunbE4I.js +432 -0
- package/dist/file-renderer-view-zpunbE4I.js.map +1 -0
- package/dist/file-section-navigation-CfYqVObc.js +30 -0
- package/dist/file-section-navigation-CfYqVObc.js.map +1 -0
- package/dist/index.d.ts +268 -15
- package/dist/index.js +2334 -2082
- package/dist/index.js.map +1 -1
- package/dist/layout-types-DMoZz38-.js.map +1 -1
- package/dist/react.d.ts +141 -13
- package/dist/react.js +1969 -1994
- package/dist/react.js.map +1 -1
- package/dist/storage.js +132 -155
- package/dist/storage.js.map +1 -1
- package/dist/testing.d.ts +141 -13
- package/dist/webview-runtime.js +1 -1
- package/dist/webview-runtime.js.map +1 -1
- package/dist/workbench-built-ins-BtgeB274.js +1171 -0
- package/dist/workbench-built-ins-BtgeB274.js.map +1 -0
- package/dist/workbench-menu-paths-Bb0ICxeG.js +20 -0
- package/dist/workbench-menu-paths-Bb0ICxeG.js.map +1 -0
- package/package.json +3 -3
- package/dist/context-key-service-B2K9LAec.js +0 -1034
- package/dist/context-key-service-B2K9LAec.js.map +0 -1
- package/dist/file-renderer-view-DrrhYnb_.js +0 -171
- package/dist/file-renderer-view-DrrhYnb_.js.map +0 -1
- package/dist/workbench-menu-paths-B_QJzcNU.js +0 -12
- package/dist/workbench-menu-paths-B_QJzcNU.js.map +0 -1
package/dist/extensions.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { CommandExecuteRequest } from '@pstdio/sdk/api';
|
|
2
|
+
import { CommandExecuteResponse } from '@pstdio/sdk/api';
|
|
2
3
|
import { ComponentType } from 'react';
|
|
3
4
|
import { ExtensionCommandPaletteContribution } from '@pstdio/sdk/api';
|
|
4
5
|
import { ExtensionMenuContribution } from '@pstdio/sdk/api';
|
|
@@ -224,6 +225,72 @@ declare interface CommandRegistryStoreState {
|
|
|
224
225
|
commands: Record<string, RegisteredCommand>;
|
|
225
226
|
}
|
|
226
227
|
|
|
228
|
+
declare interface CompositionDiagnostic {
|
|
229
|
+
code: "extension_resource_kind_missing" | "extension_resource_slot_missing" | "extension_resource_slot_closed" | "extension_panel_missing" | "extension_panel_placement_unresolvable" | "extension_mode_resource_unsupported" | "extension_placement_required_invalid" | "extension_resource_primary_invalid";
|
|
230
|
+
message: string;
|
|
231
|
+
panelId?: string;
|
|
232
|
+
slot?: string;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
declare interface CompositionModeDefinition {
|
|
236
|
+
id: string;
|
|
237
|
+
extensionId?: string;
|
|
238
|
+
resources?: Record<string, CompositionModeRecipe>;
|
|
239
|
+
modePanels?: Record<string, CompositionPlacementPolicy>;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
declare interface CompositionModeRecipe {
|
|
243
|
+
slots?: Record<string, CompositionPlacementPolicy>;
|
|
244
|
+
panels?: Record<string, CompositionPlacementPolicy>;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
declare interface CompositionPanelDefinition {
|
|
248
|
+
id: string;
|
|
249
|
+
extensionId: string;
|
|
250
|
+
title: string;
|
|
251
|
+
icon?: string;
|
|
252
|
+
show?: CompositionPanelPlacement | readonly CompositionPanelPlacement[];
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
declare interface CompositionPanelPlacement extends CompositionPlacementPolicy {
|
|
256
|
+
resourceKind?: string;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
declare interface CompositionPlacementPolicy {
|
|
260
|
+
region: DockedCompositionRegion;
|
|
261
|
+
allowedRegions?: readonly DockedCompositionRegion[];
|
|
262
|
+
required?: boolean;
|
|
263
|
+
defaultOpen?: boolean;
|
|
264
|
+
pinned?: boolean;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
declare interface CompositionReconcileContext {
|
|
268
|
+
layout: LayoutModel;
|
|
269
|
+
notifications: NotificationRegistry;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
export declare const compositionRequiredNotificationId: (modeId: string) => string;
|
|
273
|
+
|
|
274
|
+
declare interface CompositionResourceKindDefinition {
|
|
275
|
+
id: string;
|
|
276
|
+
extensionId: string;
|
|
277
|
+
surface: "primary" | "secondary" | "attached";
|
|
278
|
+
slots: Record<string, CompositionSlotDefinition>;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
declare interface CompositionResourcePanelEdge {
|
|
282
|
+
id: string;
|
|
283
|
+
extensionId: string;
|
|
284
|
+
resourceKind: string;
|
|
285
|
+
panel: string;
|
|
286
|
+
slot: string;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
declare interface CompositionSlotDefinition {
|
|
290
|
+
cardinality: "one" | "many";
|
|
291
|
+
external: boolean;
|
|
292
|
+
}
|
|
293
|
+
|
|
227
294
|
declare interface ContextKeyScope extends Disposable_2 {
|
|
228
295
|
ownerId: string;
|
|
229
296
|
set(key: string, value: ContextKeyValue): void;
|
|
@@ -366,6 +433,8 @@ declare interface CreateTerminalSessionCapabilityInput {
|
|
|
366
433
|
hostEvents: HostEventPublisher;
|
|
367
434
|
}
|
|
368
435
|
|
|
436
|
+
export declare const createWorkbenchCompositionRegistry: () => WorkbenchCompositionRegistry;
|
|
437
|
+
|
|
369
438
|
export declare const createWorkbenchWebviewHostCapabilities: (input: CreateWorkbenchWebviewHostCapabilitiesInput) => {
|
|
370
439
|
"terminal.session"?: HostCapability | undefined;
|
|
371
440
|
"commands.execute": (params: unknown) => Promise<unknown>;
|
|
@@ -445,7 +514,7 @@ declare interface DataTableRendererContribution {
|
|
|
445
514
|
emptyDescription?: string;
|
|
446
515
|
executeQuery(context: DataTableRendererQueryContext): Promise<DataTableRendererQueryResult> | DataTableRendererQueryResult;
|
|
447
516
|
subscribe?: (listener: () => void) => Disposable_2 | (() => void);
|
|
448
|
-
|
|
517
|
+
onRowActivate?: (row: DataTableRendererRow) => Promise<void> | void;
|
|
449
518
|
}
|
|
450
519
|
|
|
451
520
|
declare type DataTableRendererImplementation = (input: WorkbenchPanelRenderInput & {
|
|
@@ -513,10 +582,27 @@ declare interface DataTableRendererThemeColor {
|
|
|
513
582
|
|
|
514
583
|
declare type DataTableViewRecord = WorkbenchExtensionMetadata["panels"][number];
|
|
515
584
|
|
|
585
|
+
declare interface DeclaredPanelPlacement {
|
|
586
|
+
for?: string;
|
|
587
|
+
region: DockedCompositionRegion;
|
|
588
|
+
allowedRegions?: readonly DockedCompositionRegion[];
|
|
589
|
+
required?: boolean;
|
|
590
|
+
defaultOpen?: boolean;
|
|
591
|
+
pinned?: boolean;
|
|
592
|
+
}
|
|
593
|
+
|
|
516
594
|
declare interface Disposable_2 {
|
|
517
595
|
dispose(): void;
|
|
518
596
|
}
|
|
519
597
|
|
|
598
|
+
declare type DockedCompositionRegion = (typeof dockedCompositionRegions)[number];
|
|
599
|
+
|
|
600
|
+
declare type DockedCompositionRegion_2 = (typeof dockedCompositionRegions_2)[number];
|
|
601
|
+
|
|
602
|
+
declare const dockedCompositionRegions: readonly ["sidenav", "main", "secondary", "side"];
|
|
603
|
+
|
|
604
|
+
declare const dockedCompositionRegions_2: readonly ["sidenav", "main", "secondary", "side"];
|
|
605
|
+
|
|
520
606
|
export declare const emptyWorkbenchExtensionMetadata: WorkbenchExtensionMetadata;
|
|
521
607
|
|
|
522
608
|
declare interface EnumOption {
|
|
@@ -538,10 +624,19 @@ declare interface EnumOptionsSource {
|
|
|
538
624
|
getSnapshot: () => EnumOption[];
|
|
539
625
|
}
|
|
540
626
|
|
|
541
|
-
declare type
|
|
627
|
+
declare type ExtensionPanelRecord = WorkbenchExtensionMetadata["panels"][number];
|
|
628
|
+
|
|
629
|
+
declare type ExtensionResourcePanels = WorkbenchExtensionMetadata["resourcePanels"];
|
|
542
630
|
|
|
543
631
|
declare type ExtensionTreeRendererRecord = NonNullable<WorkbenchExtensionMetadata["treeRenderers"]>[number];
|
|
544
632
|
|
|
633
|
+
declare interface ExtensionTreeResource {
|
|
634
|
+
type: string;
|
|
635
|
+
id: string;
|
|
636
|
+
label?: string;
|
|
637
|
+
metadata?: Record<string, unknown>;
|
|
638
|
+
}
|
|
639
|
+
|
|
545
640
|
declare type ExtensionTreeViewRecord = WorkbenchExtensionMetadata["panels"][number] | NonNullable<WorkbenchExtensionMetadata["panels"][number]["panelMenus"]>[number];
|
|
546
641
|
|
|
547
642
|
export declare interface ExtensionWebviewFileCapabilities {
|
|
@@ -590,6 +685,8 @@ declare interface FileRendererContent {
|
|
|
590
685
|
content?: string;
|
|
591
686
|
dataUrl?: string;
|
|
592
687
|
placeholder?: string;
|
|
688
|
+
/** Ordered backing-store revision when one is available. */
|
|
689
|
+
revision?: string;
|
|
593
690
|
}
|
|
594
691
|
|
|
595
692
|
declare interface FileRendererContribution {
|
|
@@ -599,35 +696,55 @@ declare interface FileRendererContribution {
|
|
|
599
696
|
/** Resolve the file's content (and identity) for the bound resource. */
|
|
600
697
|
load(resource: ResourceRef | undefined): Promise<FileRendererContent> | FileRendererContent;
|
|
601
698
|
/** Persist edited text. Absent ⇒ read-only. Never called for images. */
|
|
602
|
-
save?(resource: ResourceRef | undefined, content: string): Promise<
|
|
699
|
+
save?(resource: ResourceRef | undefined, content: string, origin?: FileRendererRefreshOrigin): Promise<FileRendererSaveResult | undefined> | FileRendererSaveResult | void;
|
|
603
700
|
}
|
|
604
701
|
|
|
605
702
|
declare type FileRendererImplementation = (input: WorkbenchPanelRenderInput & {
|
|
606
703
|
fileRendererId: string;
|
|
607
704
|
}) => unknown;
|
|
608
705
|
|
|
609
|
-
declare interface
|
|
706
|
+
declare interface FileRendererRefreshEnvelope {
|
|
707
|
+
resourceUri?: string;
|
|
708
|
+
origin?: FileRendererRefreshOrigin;
|
|
709
|
+
revision?: string;
|
|
710
|
+
}
|
|
711
|
+
|
|
712
|
+
export declare const fileRendererRefreshEnvelopeFromCommand: (body: CommandExecuteRequest, response: CommandExecuteResponse) => FileRendererRefreshEnvelope | undefined;
|
|
713
|
+
|
|
714
|
+
declare interface FileRendererRefreshEvent extends FileRendererRefreshEnvelope {
|
|
610
715
|
fileRendererId: string;
|
|
611
716
|
}
|
|
612
717
|
|
|
613
718
|
declare type FileRendererRefreshListener = (event: FileRendererRefreshEvent) => void;
|
|
614
719
|
|
|
720
|
+
declare interface FileRendererRefreshOrigin {
|
|
721
|
+
rendererId: string;
|
|
722
|
+
instanceId: string;
|
|
723
|
+
operationId: string;
|
|
724
|
+
}
|
|
725
|
+
|
|
615
726
|
declare interface FileRendererRegistry {
|
|
616
727
|
fileRendererStore: WorkbenchStore<FileRendererStoreState>;
|
|
617
728
|
registerFileRenderer(contribution: FileRendererContribution, metadata?: ContributionMetadata): Disposable_2;
|
|
618
729
|
setFileRendererImplementation(impl: FileRendererImplementation): void;
|
|
619
730
|
getFileRenderer(id: string): RegisteredFileRendererContribution | undefined;
|
|
620
731
|
listFileRenderers(): RegisteredFileRendererContribution[];
|
|
621
|
-
refreshFileRenderer(id: string): void;
|
|
732
|
+
refreshFileRenderer(id: string, event?: FileRendererRefreshEnvelope): void;
|
|
622
733
|
onDidRefreshFileRenderer(listener: FileRendererRefreshListener): Disposable_2;
|
|
623
734
|
}
|
|
624
735
|
|
|
736
|
+
declare interface FileRendererSaveResult {
|
|
737
|
+
revision?: string;
|
|
738
|
+
}
|
|
739
|
+
|
|
625
740
|
declare interface FileRendererStoreState {
|
|
626
741
|
renderers: Record<string, RegisteredFileRendererContribution>;
|
|
627
742
|
}
|
|
628
743
|
|
|
629
744
|
declare interface HistoryController {
|
|
630
745
|
store: WorkbenchStore<HistoryStoreState>;
|
|
746
|
+
/** Snapshot the history for a compound navigation; the returned function restores it. */
|
|
747
|
+
createCheckpoint(): () => void;
|
|
631
748
|
goBack(): HistoryEntry | undefined;
|
|
632
749
|
goForward(): HistoryEntry | undefined;
|
|
633
750
|
goPrevious(): HistoryEntry | undefined;
|
|
@@ -661,6 +778,8 @@ declare interface KanbanRendererContribution<TRow extends KanbanRendererRow = Ka
|
|
|
661
778
|
id: string;
|
|
662
779
|
title: string;
|
|
663
780
|
resourceKind?: string;
|
|
781
|
+
/** Host-owned scope for persisted display settings. */
|
|
782
|
+
storageScope?: string;
|
|
664
783
|
/**
|
|
665
784
|
* Declarative attribute schema. The renderer dispatches filter / group /
|
|
666
785
|
* sort / display / inline-edit behavior on each descriptor's `type.kind`.
|
|
@@ -688,8 +807,8 @@ declare interface KanbanRendererContribution<TRow extends KanbanRendererRow = Ka
|
|
|
688
807
|
*/
|
|
689
808
|
executeQuery(state: KanbanRendererQueryState): Promise<TRow[]> | TRow[];
|
|
690
809
|
subscribe?: (listener: () => void) => Disposable_2 | (() => void);
|
|
691
|
-
/** Row
|
|
692
|
-
|
|
810
|
+
/** Row activation surfaced by the renderer (mirrored from <KanbanRenderer>). */
|
|
811
|
+
onRowActivate?: (row: TRow) => Promise<void> | void;
|
|
693
812
|
/** Per-row right-click context menu actions (mirrored from <KanbanRenderer>). */
|
|
694
813
|
getRowContextMenuActions?: (row: TRow) => ResourceContextAction[];
|
|
695
814
|
/**
|
|
@@ -783,7 +902,7 @@ declare interface KanbanRendererRow {
|
|
|
783
902
|
title: string;
|
|
784
903
|
/**
|
|
785
904
|
* Optional navigation handle. When set, the renderer's default click handler
|
|
786
|
-
* routes through the contribution's
|
|
905
|
+
* routes through the contribution's onRowActivate (which typically opens the
|
|
787
906
|
* resource via the workbench).
|
|
788
907
|
*/
|
|
789
908
|
resource?: unknown;
|
|
@@ -890,6 +1009,16 @@ declare interface LayoutModel {
|
|
|
890
1009
|
carryRegionState?: readonly WorkbenchRegion[];
|
|
891
1010
|
}): void;
|
|
892
1011
|
getPersistenceScope(): LayoutScope | undefined;
|
|
1012
|
+
/** True when the current persistence scope already stores a layout. A new scope returns false. */
|
|
1013
|
+
/** Whether anything is stored for the active scope right now. */
|
|
1014
|
+
hasPersistedLayout(): boolean;
|
|
1015
|
+
/**
|
|
1016
|
+
* Whether the active scope was entered with a layout the user already had. Unlike
|
|
1017
|
+
* `hasPersistedLayout`, writes made while entering a mode do not change the answer.
|
|
1018
|
+
*/
|
|
1019
|
+
enteredWithPersistedLayout(): boolean;
|
|
1020
|
+
/** Moves owned panel menus beside their owner's current region and removes orphan menus. */
|
|
1021
|
+
reconcilePanelMenus(): void;
|
|
893
1022
|
onWillChangePersistenceScope(listener: (scope: LayoutScope | undefined) => void): {
|
|
894
1023
|
dispose(): void;
|
|
895
1024
|
};
|
|
@@ -900,6 +1029,13 @@ declare interface LayoutModel {
|
|
|
900
1029
|
|
|
901
1030
|
declare type LayoutScope = string;
|
|
902
1031
|
|
|
1032
|
+
export declare const listCompositionAddablePanels: (input: {
|
|
1033
|
+
registry: WorkbenchCompositionRegistry;
|
|
1034
|
+
modeId: string;
|
|
1035
|
+
layout: ReturnType<LayoutModel["getLayout"]>;
|
|
1036
|
+
resourceKind?: string;
|
|
1037
|
+
}) => readonly ResolvedCompositionAddablePanel[];
|
|
1038
|
+
|
|
903
1039
|
declare type Localizer = (value: unknown, fallback?: string) => string;
|
|
904
1040
|
|
|
905
1041
|
declare const MANUAL_ORDERING = "manual";
|
|
@@ -1004,6 +1140,7 @@ declare interface OpenWidgetInput {
|
|
|
1004
1140
|
resource?: ResourceRef;
|
|
1005
1141
|
title?: string;
|
|
1006
1142
|
region?: WorkbenchRegion;
|
|
1143
|
+
role?: WorkbenchWidgetRole;
|
|
1007
1144
|
ownerId?: string;
|
|
1008
1145
|
source?: ContributionSource;
|
|
1009
1146
|
pinned?: boolean;
|
|
@@ -1021,7 +1158,9 @@ declare interface OpenWorkbenchPanelInput {
|
|
|
1021
1158
|
resource?: ResourceRef;
|
|
1022
1159
|
title?: string;
|
|
1023
1160
|
region?: WorkbenchRegion;
|
|
1161
|
+
role?: WorkbenchWidgetRole;
|
|
1024
1162
|
pinned?: boolean;
|
|
1163
|
+
closable?: boolean;
|
|
1025
1164
|
mountStrategy?: WorkbenchPanelMountStrategy;
|
|
1026
1165
|
hiddenByDefault?: boolean;
|
|
1027
1166
|
tab?: WorkbenchPanelTab;
|
|
@@ -1076,9 +1215,16 @@ declare interface PreferenceScopeRef {
|
|
|
1076
1215
|
|
|
1077
1216
|
declare type PreferenceValue = boolean | number | string | string[] | number[] | boolean[] | Record<string, unknown>;
|
|
1078
1217
|
|
|
1218
|
+
export declare const reconcileCompositionLayout: (ctx: CompositionReconcileContext, input: {
|
|
1219
|
+
registry: WorkbenchCompositionRegistry;
|
|
1220
|
+
modeId: string;
|
|
1221
|
+
resourceKind?: string;
|
|
1222
|
+
seeding?: boolean;
|
|
1223
|
+
}) => ResolvedComposition | undefined;
|
|
1224
|
+
|
|
1079
1225
|
export declare const refreshOpenWorkbenchExtensionWebviews: (workbench: WorkbenchModuleContext, metadata: WorkbenchExtensionMetadata) => void;
|
|
1080
1226
|
|
|
1081
|
-
export declare const
|
|
1227
|
+
export declare const refreshWorkbenchExtensionRenderer: (workbench: WorkbenchModuleContext, target: RendererRefreshTarget, envelope?: FileRendererRefreshEnvelope) => void;
|
|
1082
1228
|
|
|
1083
1229
|
declare interface RegisteredCommand extends RegisteredContributionMetadata {
|
|
1084
1230
|
command: Command;
|
|
@@ -1141,7 +1287,6 @@ declare type RegisteredWidgetContribution = Omit<WidgetContribution, "priority"
|
|
|
1141
1287
|
ownedPanelMenuIds?: readonly string[];
|
|
1142
1288
|
singleton: boolean;
|
|
1143
1289
|
reuse: WidgetReusePolicy;
|
|
1144
|
-
role: WorkbenchWidgetRole;
|
|
1145
1290
|
} & RegisteredContributionMetadata;
|
|
1146
1291
|
|
|
1147
1292
|
declare interface RegisteredWorkbenchNotification extends RegisteredContributionMetadata {
|
|
@@ -1182,9 +1327,9 @@ export declare interface RegisterWorkbenchExtensionContributionsInput {
|
|
|
1182
1327
|
workbench: WorkbenchModuleContext;
|
|
1183
1328
|
}
|
|
1184
1329
|
|
|
1185
|
-
export declare const registerWorkbenchExtensionControlsRenderers: (context: WorkbenchExtensionCommandContext, records: WorkbenchExtensionControlsRendererRecord[], panels: ControlsViewRecord[], adapter?: WorkbenchExtensionControlsAdapter) => Disposable_2;
|
|
1330
|
+
export declare const registerWorkbenchExtensionControlsRenderers: (context: WorkbenchExtensionCommandContext, records: WorkbenchExtensionControlsRendererRecord[], panels: ControlsViewRecord[], adapter?: WorkbenchExtensionControlsAdapter, resourcePanels?: WorkbenchExtensionMetadata["resourcePanels"]) => Disposable_2;
|
|
1186
1331
|
|
|
1187
|
-
export declare const registerWorkbenchExtensionDataTableRenderers: (context: WorkbenchExtensionCommandContext, records: WorkbenchExtensionDataTableRendererRecord[], panels: DataTableViewRecord[]) => Disposable_2;
|
|
1332
|
+
export declare const registerWorkbenchExtensionDataTableRenderers: (context: WorkbenchExtensionCommandContext, records: WorkbenchExtensionDataTableRendererRecord[], panels: DataTableViewRecord[], resourcePanels?: WorkbenchExtensionMetadata["resourcePanels"]) => Disposable_2;
|
|
1188
1333
|
|
|
1189
1334
|
export declare const registerWorkbenchExtensionFileRenderers: (input: RegisterWorkbenchExtensionFileRenderersInput) => {
|
|
1190
1335
|
dispose(): void;
|
|
@@ -1197,7 +1342,7 @@ export declare interface RegisterWorkbenchExtensionFileRenderersInput {
|
|
|
1197
1342
|
workbench: WorkbenchModuleContext;
|
|
1198
1343
|
}
|
|
1199
1344
|
|
|
1200
|
-
export declare const registerWorkbenchExtensionKanbanRenderers: (context: WorkbenchExtensionCommandContext, records: readonly WorkbenchExtensionKanbanRendererRecord[], adapter?: WorkbenchExtensionKanbanRendererAdapter) => {
|
|
1345
|
+
export declare const registerWorkbenchExtensionKanbanRenderers: (context: WorkbenchExtensionCommandContext, records: readonly WorkbenchExtensionKanbanRendererRecord[], adapter?: WorkbenchExtensionKanbanRendererAdapter, panels?: WorkbenchExtensionMetadata["panels"], resourcePanels?: WorkbenchExtensionMetadata["resourcePanels"]) => {
|
|
1201
1346
|
dispose(): void;
|
|
1202
1347
|
};
|
|
1203
1348
|
|
|
@@ -1208,6 +1353,14 @@ export declare interface RegisterWorkbenchExtensionPanelInput {
|
|
|
1208
1353
|
workbench: WorkbenchModuleContext;
|
|
1209
1354
|
}
|
|
1210
1355
|
|
|
1356
|
+
export declare const registerWorkbenchExtensionRendererRefreshEvents: (input: RegisterWorkbenchExtensionRendererRefreshEventsInput) => Disposable_2;
|
|
1357
|
+
|
|
1358
|
+
export declare interface RegisterWorkbenchExtensionRendererRefreshEventsInput {
|
|
1359
|
+
metadata: WorkbenchExtensionMetadata;
|
|
1360
|
+
subscribe: (listener: (event: WorkbenchExtensionRefreshEvent) => void) => Disposable_2;
|
|
1361
|
+
workbench: WorkbenchModuleContext;
|
|
1362
|
+
}
|
|
1363
|
+
|
|
1211
1364
|
export declare const registerWorkbenchExtensionTreeRenderers: (input: RegisterWorkbenchExtensionTreeRenderersInput) => {
|
|
1212
1365
|
dispose(): void;
|
|
1213
1366
|
};
|
|
@@ -1218,6 +1371,13 @@ export declare interface RegisterWorkbenchExtensionTreeRenderersInput {
|
|
|
1218
1371
|
getHostTreeHeaderNodes?: HostTreeDefaultNodesResolver;
|
|
1219
1372
|
metadata: WorkbenchExtensionMetadata;
|
|
1220
1373
|
projectId: string;
|
|
1374
|
+
/**
|
|
1375
|
+
* Host canonicalization for node resources. A host that gives extension
|
|
1376
|
+
* resources its own URIs (layout scopes, history, and hierarchy key on the
|
|
1377
|
+
* URI) must convert tree node resources the same way, or the same resource
|
|
1378
|
+
* gets a second identity when opened from a tree.
|
|
1379
|
+
*/
|
|
1380
|
+
resolveNodeResource?: (resource: ExtensionTreeResource) => ResourceRef;
|
|
1221
1381
|
workbench: WorkbenchModuleContext;
|
|
1222
1382
|
}
|
|
1223
1383
|
|
|
@@ -1231,6 +1391,47 @@ export declare const renderBridgeWebviewFrame: (input: {
|
|
|
1231
1391
|
webview: BridgeWebviewConfig;
|
|
1232
1392
|
}) => JSX.Element;
|
|
1233
1393
|
|
|
1394
|
+
declare interface RendererRefreshTarget {
|
|
1395
|
+
id: string;
|
|
1396
|
+
kind: WorkbenchExtensionRendererKind;
|
|
1397
|
+
}
|
|
1398
|
+
|
|
1399
|
+
declare interface ResolvedComposition {
|
|
1400
|
+
placements: readonly ResolvedCompositionPlacement[];
|
|
1401
|
+
regionOrder: Partial<Record<DockedCompositionRegion, readonly string[]>>;
|
|
1402
|
+
activePanelIds: Partial<Record<DockedCompositionRegion, string>>;
|
|
1403
|
+
addablePanels: readonly ResolvedCompositionAddablePanel_2[];
|
|
1404
|
+
diagnostics: readonly CompositionDiagnostic[];
|
|
1405
|
+
requiredFallback?: {
|
|
1406
|
+
panelId: string;
|
|
1407
|
+
};
|
|
1408
|
+
}
|
|
1409
|
+
|
|
1410
|
+
declare interface ResolvedCompositionAddablePanel {
|
|
1411
|
+
panelId: string;
|
|
1412
|
+
region: DockedCompositionRegion_2;
|
|
1413
|
+
allowedRegions: readonly DockedCompositionRegion_2[];
|
|
1414
|
+
pinned?: boolean;
|
|
1415
|
+
}
|
|
1416
|
+
|
|
1417
|
+
declare interface ResolvedCompositionAddablePanel_2 {
|
|
1418
|
+
panelId: string;
|
|
1419
|
+
region: DockedCompositionRegion;
|
|
1420
|
+
allowedRegions: readonly DockedCompositionRegion[];
|
|
1421
|
+
pinned?: boolean;
|
|
1422
|
+
}
|
|
1423
|
+
|
|
1424
|
+
declare interface ResolvedCompositionPlacement {
|
|
1425
|
+
panelId: string;
|
|
1426
|
+
region: DockedCompositionRegion;
|
|
1427
|
+
slot?: string;
|
|
1428
|
+
required: boolean;
|
|
1429
|
+
defaultOpen: boolean;
|
|
1430
|
+
pinned?: boolean;
|
|
1431
|
+
allowedRegions: readonly DockedCompositionRegion[];
|
|
1432
|
+
origin: "persisted" | "required" | "default";
|
|
1433
|
+
}
|
|
1434
|
+
|
|
1234
1435
|
declare type ResolvedResourceHierarchyProvider = Required<ResourceHierarchyProvider>;
|
|
1235
1436
|
|
|
1236
1437
|
declare type ResolvedResourcePresenter = Required<ResourcePresenter>;
|
|
@@ -1255,6 +1456,14 @@ declare interface ResourceContextAction {
|
|
|
1255
1456
|
separatorBefore?: boolean;
|
|
1256
1457
|
}
|
|
1257
1458
|
|
|
1459
|
+
declare interface ResourceHierarchyCycle {
|
|
1460
|
+
code: typeof resourceHierarchyCycleCode;
|
|
1461
|
+
path: ResourceRef[];
|
|
1462
|
+
repeatedUri: string;
|
|
1463
|
+
}
|
|
1464
|
+
|
|
1465
|
+
declare const resourceHierarchyCycleCode = "resource_hierarchy_cycle";
|
|
1466
|
+
|
|
1258
1467
|
declare interface ResourceHierarchyProvider {
|
|
1259
1468
|
id: string;
|
|
1260
1469
|
priority?: number;
|
|
@@ -1327,6 +1536,7 @@ declare interface ResourceRegistry {
|
|
|
1327
1536
|
registerHierarchyProvider(provider: ResourceHierarchyProvider): Disposable_2;
|
|
1328
1537
|
listHierarchyProviders(): ResolvedResourceHierarchyProvider[];
|
|
1329
1538
|
walkHierarchy(resource: ResourceRef | undefined): ResourceRef[];
|
|
1539
|
+
onDidDetectHierarchyCycle(listener: (cycle: ResourceHierarchyCycle) => void): Disposable_2;
|
|
1330
1540
|
isOpeningResource(): boolean;
|
|
1331
1541
|
openResource(resource: ResourceRef, input?: OpenResourceInput): Promise<WorkbenchPanelInstance>;
|
|
1332
1542
|
onDidOpenResource(listener: (resource: ResourceRef) => void): Disposable_2;
|
|
@@ -1418,10 +1628,6 @@ declare interface SettingsSectionContribution {
|
|
|
1418
1628
|
actions?: SettingsAction[];
|
|
1419
1629
|
}
|
|
1420
1630
|
|
|
1421
|
-
export declare const shouldRefreshWorkbenchExtensionDataTableRenderers: (metadata: WorkbenchExtensionMetadata, commandId: string) => boolean;
|
|
1422
|
-
|
|
1423
|
-
export declare const shouldRefreshWorkbenchExtensionTrees: (metadata: WorkbenchExtensionMetadata, commandId: string) => boolean;
|
|
1424
|
-
|
|
1425
1631
|
declare type SortDirection = "asc" | "desc";
|
|
1426
1632
|
|
|
1427
1633
|
/**
|
|
@@ -1449,9 +1655,16 @@ declare interface ThemeRegistry {
|
|
|
1449
1655
|
listThemes(): readonly ThemePreferenceOption[];
|
|
1450
1656
|
}
|
|
1451
1657
|
|
|
1452
|
-
export declare const
|
|
1453
|
-
|
|
1454
|
-
|
|
1658
|
+
export declare const toPanelPlacements: (show: DeclaredPanelPlacement | readonly DeclaredPanelPlacement[] | undefined) => any[];
|
|
1659
|
+
|
|
1660
|
+
export declare const toWorkbenchCompositionPanelContribution: (input: {
|
|
1661
|
+
panel: ExtensionPanelRecord;
|
|
1662
|
+
rendererId: string;
|
|
1663
|
+
declarationIndex: number;
|
|
1664
|
+
menuDeclarationOffset: number;
|
|
1665
|
+
resourcePanels?: ExtensionResourcePanels;
|
|
1666
|
+
config?: WorkbenchPanelContribution["config"];
|
|
1667
|
+
}) => WorkbenchPanelContribution;
|
|
1455
1668
|
|
|
1456
1669
|
declare interface TreeAction {
|
|
1457
1670
|
id: string;
|
|
@@ -1608,7 +1821,6 @@ declare interface WidgetContribution {
|
|
|
1608
1821
|
priority?: number;
|
|
1609
1822
|
rendererId: string;
|
|
1610
1823
|
openCommandId?: string;
|
|
1611
|
-
role?: WorkbenchWidgetRole;
|
|
1612
1824
|
eligibleLocations?: WorkbenchLocationEligibility;
|
|
1613
1825
|
panelMenuOwner?: WorkbenchPanelMenuOwner;
|
|
1614
1826
|
tab?: WorkbenchWidgetTab;
|
|
@@ -1708,6 +1920,35 @@ declare interface WorkbenchCommandParamsRequest {
|
|
|
1708
1920
|
context?: WorkbenchCommandExecutionContext;
|
|
1709
1921
|
}
|
|
1710
1922
|
|
|
1923
|
+
declare interface WorkbenchComposition {
|
|
1924
|
+
resourceKinds: readonly CompositionResourceKindDefinition[];
|
|
1925
|
+
panels: readonly CompositionPanelDefinition[];
|
|
1926
|
+
resourcePanels: readonly CompositionResourcePanelEdge[];
|
|
1927
|
+
}
|
|
1928
|
+
|
|
1929
|
+
declare interface WorkbenchCompositionAddablePanel extends WorkbenchModeAddablePanel {
|
|
1930
|
+
contribution: RegisteredWidgetContribution;
|
|
1931
|
+
}
|
|
1932
|
+
|
|
1933
|
+
declare interface WorkbenchCompositionController {
|
|
1934
|
+
panelsFor(region: WorkbenchPanelRegion): WorkbenchCompositionRegionPanels;
|
|
1935
|
+
}
|
|
1936
|
+
|
|
1937
|
+
declare interface WorkbenchCompositionRegionPanels {
|
|
1938
|
+
open: readonly WorkbenchWidgetPlacement[];
|
|
1939
|
+
addable: readonly WorkbenchCompositionAddablePanel[];
|
|
1940
|
+
closable: readonly string[];
|
|
1941
|
+
}
|
|
1942
|
+
|
|
1943
|
+
export declare interface WorkbenchCompositionRegistry {
|
|
1944
|
+
registerResourceKind(definition: CompositionResourceKindDefinition): Disposable_2;
|
|
1945
|
+
registerPanelCapability(definition: CompositionPanelDefinition): Disposable_2;
|
|
1946
|
+
registerResourcePanel(edge: CompositionResourcePanelEdge): Disposable_2;
|
|
1947
|
+
registerModeComposition(definition: CompositionModeDefinition): Disposable_2;
|
|
1948
|
+
getComposition(): WorkbenchComposition;
|
|
1949
|
+
getModeComposition(modeId: string): CompositionModeDefinition | undefined;
|
|
1950
|
+
}
|
|
1951
|
+
|
|
1711
1952
|
declare interface WorkbenchCore extends WorkbenchCoreContributionContext {
|
|
1712
1953
|
host: WorkbenchHost;
|
|
1713
1954
|
registerModule(module: WorkbenchModuleContribution): Disposable_2;
|
|
@@ -1719,6 +1960,7 @@ declare interface WorkbenchCoreContributionContext {
|
|
|
1719
1960
|
commandPalette: WorkbenchCommandPaletteController;
|
|
1720
1961
|
commandPaletteResources: CommandPaletteResourceRegistry;
|
|
1721
1962
|
commands: CommandRegistry;
|
|
1963
|
+
composition: WorkbenchCompositionController;
|
|
1722
1964
|
context: ContextKeyService;
|
|
1723
1965
|
focus: WorkbenchFocusController;
|
|
1724
1966
|
history: HistoryController;
|
|
@@ -1727,6 +1969,7 @@ declare interface WorkbenchCoreContributionContext {
|
|
|
1727
1969
|
layout: WorkbenchLayoutModel;
|
|
1728
1970
|
modes: WorkbenchModeRegistry;
|
|
1729
1971
|
navigation: NavigationRegistry;
|
|
1972
|
+
navigator: WorkbenchNavigator;
|
|
1730
1973
|
notifications: NotificationRegistry;
|
|
1731
1974
|
panels: WorkbenchPanelsController;
|
|
1732
1975
|
preferences: PreferenceRegistry;
|
|
@@ -1801,6 +2044,8 @@ export declare interface WorkbenchExtensionKanbanRendererAdapter {
|
|
|
1801
2044
|
row: KanbanRendererRow_2;
|
|
1802
2045
|
resource: ResourceRef | undefined;
|
|
1803
2046
|
}) => void;
|
|
2047
|
+
/** Translate extension navigation resource targets into host resources. */
|
|
2048
|
+
resolveNavigationResource?: (record: WorkbenchExtensionKanbanRendererRecord, resource: NonNullable<CommandExecuteRequest["resource"]>) => ResourceRef;
|
|
1804
2049
|
/** Called after a successful renderer-owned create form submission. */
|
|
1805
2050
|
onAfterCreate?: (input: {
|
|
1806
2051
|
record: WorkbenchExtensionKanbanRendererRecord;
|
|
@@ -1834,11 +2079,12 @@ export declare type WorkbenchExtensionMenuWhenBuilder = (contribution: Extension
|
|
|
1834
2079
|
|
|
1835
2080
|
export { WorkbenchExtensionMetadata }
|
|
1836
2081
|
|
|
1837
|
-
declare interface
|
|
1838
|
-
|
|
1839
|
-
declarationIndex?: number;
|
|
2082
|
+
declare interface WorkbenchExtensionRefreshEvent extends FileRendererRefreshEnvelope {
|
|
2083
|
+
id: string;
|
|
1840
2084
|
}
|
|
1841
2085
|
|
|
2086
|
+
export declare type WorkbenchExtensionRendererKind = "tree" | "file" | "controls" | "dataTable" | "kanban";
|
|
2087
|
+
|
|
1842
2088
|
export declare type WorkbenchExtensionRoute = WorkbenchExtensionMetadata["routes"][number];
|
|
1843
2089
|
|
|
1844
2090
|
export declare interface WorkbenchExtensionRouteResourceInput {
|
|
@@ -1902,7 +2148,7 @@ declare interface WorkbenchLayoutStoreState {
|
|
|
1902
2148
|
placeholders: Partial<Record<WorkbenchRegion, RegisteredPlaceholderContribution>>;
|
|
1903
2149
|
}
|
|
1904
2150
|
|
|
1905
|
-
declare type WorkbenchLocationContribution =
|
|
2151
|
+
declare type WorkbenchLocationContribution = WidgetContribution & WorkbenchPanelMenusContribution;
|
|
1906
2152
|
|
|
1907
2153
|
declare interface WorkbenchLocationEligibility {
|
|
1908
2154
|
modeIds?: string[];
|
|
@@ -1924,15 +2170,31 @@ declare type WorkbenchModeActivationContext = WorkbenchCoreContributionContext;
|
|
|
1924
2170
|
|
|
1925
2171
|
declare type WorkbenchModeActivationResult = Disposable_2 | readonly Disposable_2[] | undefined;
|
|
1926
2172
|
|
|
2173
|
+
declare interface WorkbenchModeAddablePanel {
|
|
2174
|
+
panelId: string;
|
|
2175
|
+
region: WorkbenchPanelRegion;
|
|
2176
|
+
allowedRegions?: readonly WorkbenchRegion[];
|
|
2177
|
+
pinned?: boolean;
|
|
2178
|
+
}
|
|
2179
|
+
|
|
2180
|
+
declare interface WorkbenchModeAddablePanelContext {
|
|
2181
|
+
layout: WorkbenchLayout;
|
|
2182
|
+
resource?: ResourceRef;
|
|
2183
|
+
}
|
|
2184
|
+
|
|
1927
2185
|
declare type WorkbenchModeChangeListener = () => void;
|
|
1928
2186
|
|
|
1929
2187
|
declare interface WorkbenchModeContribution {
|
|
1930
2188
|
id: string;
|
|
1931
2189
|
label?: string;
|
|
1932
2190
|
panels?: readonly WorkbenchPanelRegion[];
|
|
2191
|
+
resourceKinds?: readonly string[];
|
|
2192
|
+
defaultResource?: ResourceRef | (() => Promise<ResourceRef | undefined> | ResourceRef | undefined);
|
|
2193
|
+
listAddablePanels?(context: WorkbenchModeAddablePanelContext): readonly WorkbenchModeAddablePanel[];
|
|
1933
2194
|
activate(ctx: WorkbenchModeActivationContext): WorkbenchModeActivationResult;
|
|
1934
2195
|
seed?(ctx: WorkbenchModeActivationContext): void;
|
|
1935
2196
|
enter?(ctx: WorkbenchModeActivationContext): WorkbenchModeActivationResult;
|
|
2197
|
+
reconcile?(ctx: WorkbenchModeActivationContext): void;
|
|
1936
2198
|
}
|
|
1937
2199
|
|
|
1938
2200
|
declare interface WorkbenchModeRegistry {
|
|
@@ -1968,6 +2230,14 @@ declare interface WorkbenchModuleContribution {
|
|
|
1968
2230
|
|
|
1969
2231
|
declare type WorkbenchModuleContributionContext = WorkbenchModuleContext;
|
|
1970
2232
|
|
|
2233
|
+
declare interface WorkbenchNavigationCommit {
|
|
2234
|
+
modeId: string | undefined;
|
|
2235
|
+
resource: ResourceRef | undefined;
|
|
2236
|
+
replaceActive: boolean;
|
|
2237
|
+
}
|
|
2238
|
+
|
|
2239
|
+
declare type WorkbenchNavigationDiagnosticCode = "navigation_mode_missing" | "navigation_resource_missing" | "navigation_resource_incompatible" | "navigation_default_missing" | "navigation_target_stale";
|
|
2240
|
+
|
|
1971
2241
|
declare interface WorkbenchNavigationEntry {
|
|
1972
2242
|
entryId: string;
|
|
1973
2243
|
recordedAt: number;
|
|
@@ -1982,6 +2252,53 @@ declare interface WorkbenchNavigationEntry {
|
|
|
1982
2252
|
closedSubPanel?: WorkbenchClosedSubPanel;
|
|
1983
2253
|
}
|
|
1984
2254
|
|
|
2255
|
+
declare type WorkbenchNavigationResult = {
|
|
2256
|
+
ok: true;
|
|
2257
|
+
modeId: string | undefined;
|
|
2258
|
+
resource: ResourceRef | undefined;
|
|
2259
|
+
} | {
|
|
2260
|
+
ok: false;
|
|
2261
|
+
code: WorkbenchNavigationDiagnosticCode;
|
|
2262
|
+
message: string;
|
|
2263
|
+
};
|
|
2264
|
+
|
|
2265
|
+
declare interface WorkbenchNavigationTarget {
|
|
2266
|
+
modeId?: string;
|
|
2267
|
+
resource?: ResourceRef;
|
|
2268
|
+
replaceActive?: boolean;
|
|
2269
|
+
}
|
|
2270
|
+
|
|
2271
|
+
declare interface WorkbenchNavigator {
|
|
2272
|
+
configure(hooks: WorkbenchNavigatorHostHooks): void;
|
|
2273
|
+
getSelectedResource(): ResourceRef | undefined;
|
|
2274
|
+
open(target: WorkbenchNavigationTarget): Promise<WorkbenchNavigationResult>;
|
|
2275
|
+
commitContext(input: WorkbenchNavigatorCommitInput): WorkbenchNavigationResult;
|
|
2276
|
+
getLastResource(projectId: string | undefined, modeId: string): ResourceRef | undefined;
|
|
2277
|
+
forgetResource(uri: string): void;
|
|
2278
|
+
onDidCommit(listener: (commit: WorkbenchNavigationCommit) => void): {
|
|
2279
|
+
dispose(): void;
|
|
2280
|
+
};
|
|
2281
|
+
}
|
|
2282
|
+
|
|
2283
|
+
declare interface WorkbenchNavigatorCommitInput {
|
|
2284
|
+
modeId?: string | null;
|
|
2285
|
+
resource?: ResourceRef | null;
|
|
2286
|
+
replaceActive?: boolean;
|
|
2287
|
+
present?: boolean;
|
|
2288
|
+
}
|
|
2289
|
+
|
|
2290
|
+
declare interface WorkbenchNavigatorHostHooks {
|
|
2291
|
+
getProjectId?(): string | undefined;
|
|
2292
|
+
getSelectedResource?(): ResourceRef | undefined;
|
|
2293
|
+
interpretSelection?(resource: ResourceRef): ResourceRef | undefined;
|
|
2294
|
+
applySelection?(resource: ResourceRef | undefined): void;
|
|
2295
|
+
applyScope?(commit: WorkbenchNavigationCommit): void;
|
|
2296
|
+
applyBreadcrumb?(resource: ResourceRef | undefined): void;
|
|
2297
|
+
presentResource?(resource: ResourceRef, input: {
|
|
2298
|
+
replaceActive: boolean;
|
|
2299
|
+
}): Promise<unknown> | unknown;
|
|
2300
|
+
}
|
|
2301
|
+
|
|
1985
2302
|
declare interface WorkbenchNotification {
|
|
1986
2303
|
id?: string;
|
|
1987
2304
|
level: WorkbenchNotificationLevel;
|
|
@@ -2023,7 +2340,6 @@ declare interface WorkbenchPanelContribution {
|
|
|
2023
2340
|
region: WorkbenchRegion;
|
|
2024
2341
|
fallbackRegion?: WorkbenchRegion;
|
|
2025
2342
|
rendererId: string;
|
|
2026
|
-
closable: boolean;
|
|
2027
2343
|
singleton?: boolean;
|
|
2028
2344
|
reuse?: WorkbenchPanelReusePolicy;
|
|
2029
2345
|
mountStrategy?: WorkbenchPanelMountStrategy;
|
|
@@ -2079,7 +2395,7 @@ declare interface WorkbenchPanelInstance_2 {
|
|
|
2079
2395
|
tab?: WorkbenchPanelTab_2;
|
|
2080
2396
|
}
|
|
2081
2397
|
|
|
2082
|
-
declare type WorkbenchPanelMenuContribution = Omit<WidgetContribution, "region" | "fallbackRegion"
|
|
2398
|
+
declare type WorkbenchPanelMenuContribution = Omit<WidgetContribution, "region" | "fallbackRegion"> & {
|
|
2083
2399
|
region: WorkbenchPanelMenuRegion;
|
|
2084
2400
|
fallbackRegion?: WorkbenchPanelMenuRegion;
|
|
2085
2401
|
};
|
|
@@ -2285,7 +2601,7 @@ declare type WorkbenchStoreSelector<TState, TValue> = (state: TState) => TValue;
|
|
|
2285
2601
|
|
|
2286
2602
|
declare type WorkbenchStoreSelectorListener<TValue> = (value: TValue, previousValue: TValue) => void;
|
|
2287
2603
|
|
|
2288
|
-
declare type WorkbenchSubPanelContribution = Omit<WidgetContribution, "region" | "fallbackRegion"
|
|
2604
|
+
declare type WorkbenchSubPanelContribution = Omit<WidgetContribution, "region" | "fallbackRegion"> & {
|
|
2289
2605
|
region: WorkbenchPanelRegion;
|
|
2290
2606
|
fallbackRegion?: WorkbenchPanelRegion;
|
|
2291
2607
|
} & WorkbenchPanelMenusContribution;
|