@pstdio/workbench 0.39.0 → 0.41.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 +2 -2
- package/dist/extensions.d.ts +350 -26
- package/dist/extensions.js +611 -550
- package/dist/extensions.js.map +1 -1
- package/dist/file-renderer-view-CiuJ_aMB.js +670 -0
- package/dist/file-renderer-view-CiuJ_aMB.js.map +1 -0
- package/dist/{index-Bzx1gf5-.d.ts → index-Dh0tRr9k.d.ts} +343 -316
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2359 -2016
- package/dist/index.js.map +1 -1
- package/dist/{kanban-presentation-yKUdZyuY.d.ts → kanban-presentation-C21WIlnn.d.ts} +1 -1
- package/dist/{navigation-tree-registry-DazyPivr.js → navigation-tree-registry-DkJ3i8ym.js} +2 -2
- package/dist/{navigation-tree-registry-DazyPivr.js.map → navigation-tree-registry-DkJ3i8ym.js.map} +1 -1
- package/dist/react-B-rd34kK.js +9750 -0
- package/dist/react-B-rd34kK.js.map +1 -0
- package/dist/react.d.ts +46 -7
- package/dist/react.js +2 -2
- package/dist/storage.d.ts +3 -3
- package/dist/storage.js +38 -51
- package/dist/storage.js.map +1 -1
- package/dist/webview-runtime.js +1 -1
- package/dist/{workbench-renderers-DNXWpDWd.js → workbench-renderers-CUHzLWMx.js} +126 -123
- package/dist/workbench-renderers-CUHzLWMx.js.map +1 -0
- package/package.json +4 -6
- package/dist/file-renderer-view-Cf3pcX_K.js +0 -637
- package/dist/file-renderer-view-Cf3pcX_K.js.map +0 -1
- package/dist/react-CgOb52iV.js +0 -8927
- package/dist/react-CgOb52iV.js.map +0 -1
- package/dist/workbench-renderers-DNXWpDWd.js.map +0 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { ControlValue, ControlValueMap, ControlsQueryResult, ControlsQueryResult as ControlsQueryResult$1, DockedWorkbenchRegion, DockedWorkbenchRegion as DockedWorkbenchRegion$1, FileRendererSectionTarget, KanbanRendererAttributeDisplay, Localizable, ModeRegionSettings, NavigationTargetPage, NavigationTargetPanel, PageLocation, PageMain, PageOpenIntent, PageRef, PageSlot, PlacementIdentity, PlacementItem, PlacementRef, ResourceConstraint, ResourceRef, ResourceRef as ResourceRef$1, defaultPageResourceCodec, dockedWorkbenchRegions } from "@pstdio/sdk/extensions";
|
|
1
|
+
import { ControlValue, ControlValueMap, ControlsQueryResult, ControlsQueryResult as ControlsQueryResult$1, DataTableRendererSettings, DockedWorkbenchRegion, DockedWorkbenchRegion as DockedWorkbenchRegion$1, FileRendererSectionTarget, KanbanRendererAttributeDisplay, Localizable, ModeRegionSettings, NavigationTargetPage, NavigationTargetPanel, PageDocumentDeclaration, PageLocation, PageMain, PageOpenIntent, PageRef, PageSlot, PlacementIdentity, PlacementItem, PlacementRef, ResourceConstraint, ResourceRef, ResourceRef as ResourceRef$1, ViewFilterGroup, ViewSort, defaultPageResourceCodec, dockedWorkbenchRegions } from "@pstdio/sdk/extensions";
|
|
2
|
+
import { TerminalSessionAdapter, TerminalSessionError, TerminalSessionExit, TerminalSessionRequest } from "@pstdio/sdk/api";
|
|
2
3
|
//#region src/core/shared/disposable.d.ts
|
|
3
4
|
interface Disposable {
|
|
4
5
|
dispose(): void;
|
|
@@ -79,6 +80,7 @@ interface ResourceHierarchyCycle {
|
|
|
79
80
|
//#endregion
|
|
80
81
|
//#region src/core/registries/resources/resource-registry.d.ts
|
|
81
82
|
declare const workbenchResourceTypeContextKey = "workbench.resource.type";
|
|
83
|
+
declare const workbenchResourceOwnerContextKey = "workbench.resource.extensionId";
|
|
82
84
|
declare const workbenchResourceIdContextKey = "workbench.resource.id";
|
|
83
85
|
declare const workbenchResourceMetadataContextKey: (key: string) => string;
|
|
84
86
|
declare const workbenchSelectionResourceKeyMetadataKey = "workbench.selectionResourceKey";
|
|
@@ -135,6 +137,8 @@ interface WorkbenchBreadcrumbItem {
|
|
|
135
137
|
title: unknown;
|
|
136
138
|
icon?: string;
|
|
137
139
|
indicator?: "session-status";
|
|
140
|
+
/** The crumb leaves the project navigation: it opens a Sidenav level or a mode that replaces the Sidenav. */
|
|
141
|
+
startsLevel?: boolean;
|
|
138
142
|
url?: string;
|
|
139
143
|
onClick?: () => void;
|
|
140
144
|
resource?: ResourceRef$1;
|
|
@@ -556,12 +560,17 @@ interface WorkbenchPanelInstance {
|
|
|
556
560
|
tabRetention?: WorkbenchTabRetention;
|
|
557
561
|
tab?: WorkbenchPanelTab;
|
|
558
562
|
}
|
|
563
|
+
type WorkbenchSidePanelMode = "floating" | "closed" | "attached";
|
|
559
564
|
interface WorkbenchRegionState {
|
|
560
565
|
id: WorkbenchRegion;
|
|
561
566
|
visible: boolean;
|
|
562
567
|
size?: number;
|
|
563
568
|
widgets: WorkbenchWidgetPlacement[];
|
|
569
|
+
/** Page snapshots retain mixed-owner order without storing shared mode content. Consumed on restore. */
|
|
570
|
+
savedWidgetOrder?: string[];
|
|
564
571
|
activeWidgetId?: string;
|
|
572
|
+
/** Side region only: how the open Side Panel is shown. `visible` says whether it is open. */
|
|
573
|
+
presentation?: Exclude<WorkbenchSidePanelMode, "closed">;
|
|
565
574
|
}
|
|
566
575
|
interface WorkbenchLayout {
|
|
567
576
|
regions: Record<WorkbenchRegion, WorkbenchRegionState>;
|
|
@@ -662,6 +671,7 @@ interface LayoutModel {
|
|
|
662
671
|
getRegionHeaderBorderBottom(regionId: WorkbenchRegion): boolean;
|
|
663
672
|
setRegionVisible(regionId: WorkbenchRegion, visible: boolean): void;
|
|
664
673
|
setRegionSize(regionId: WorkbenchRegion, size: number): void;
|
|
674
|
+
setSidePanelMode(mode: WorkbenchSidePanelMode): void;
|
|
665
675
|
listPlaceholders(): RegisteredPlaceholderContribution[];
|
|
666
676
|
listWidgets(): RegisteredWidgetContribution[];
|
|
667
677
|
listPanels(): WorkbenchPanelContribution[];
|
|
@@ -721,78 +731,6 @@ interface WorkbenchFocusController {
|
|
|
721
731
|
onDidChange(listener: WorkbenchFocusChangeListener): Disposable;
|
|
722
732
|
}
|
|
723
733
|
//#endregion
|
|
724
|
-
//#region src/core/registries/layout/placement-reconciliation.d.ts
|
|
725
|
-
interface ResolvedOwnedPlacement<Value = unknown> {
|
|
726
|
-
identity: PlacementIdentity;
|
|
727
|
-
region: WorkbenchRegion;
|
|
728
|
-
order: number;
|
|
729
|
-
value: Value;
|
|
730
|
-
}
|
|
731
|
-
interface OwnedPlacementUpdate<Value> {
|
|
732
|
-
current: ResolvedOwnedPlacement<Value>;
|
|
733
|
-
desired: ResolvedOwnedPlacement<Value>;
|
|
734
|
-
}
|
|
735
|
-
interface OwnedPlacementReconciliation<Value> {
|
|
736
|
-
add: readonly ResolvedOwnedPlacement<Value>[];
|
|
737
|
-
retain: readonly ResolvedOwnedPlacement<Value>[];
|
|
738
|
-
update: readonly OwnedPlacementUpdate<Value>[];
|
|
739
|
-
activate: readonly ResolvedOwnedPlacement<Value>[];
|
|
740
|
-
remove: readonly ResolvedOwnedPlacement<Value>[];
|
|
741
|
-
}
|
|
742
|
-
//#endregion
|
|
743
|
-
//#region src/core/registries/renderers/renderer-registry.d.ts
|
|
744
|
-
interface WorkbenchPanelRenderInput {
|
|
745
|
-
workbench: WorkbenchCore;
|
|
746
|
-
panel: WorkbenchPanelContribution | PlaceholderContribution | RegisteredPlaceholderContribution;
|
|
747
|
-
instance: WorkbenchPanelInstance;
|
|
748
|
-
refresh: () => void;
|
|
749
|
-
}
|
|
750
|
-
interface WorkbenchRendererRegistration {
|
|
751
|
-
id: string;
|
|
752
|
-
render: (input: WorkbenchPanelRenderInput) => unknown;
|
|
753
|
-
}
|
|
754
|
-
//#endregion
|
|
755
|
-
//#region src/core/registries/renderers/controls-renderer-registry.d.ts
|
|
756
|
-
type ControlsRendererRegion = "main-right-menu" | "secondary" | "overlay";
|
|
757
|
-
interface ControlsRendererLayout {
|
|
758
|
-
region?: ControlsRendererRegion;
|
|
759
|
-
defaultPx?: number;
|
|
760
|
-
minPx?: number;
|
|
761
|
-
maxPx?: number;
|
|
762
|
-
}
|
|
763
|
-
interface ControlsUpdateValueInput {
|
|
764
|
-
controlId: string;
|
|
765
|
-
value: ControlValue;
|
|
766
|
-
values: ControlValueMap;
|
|
767
|
-
resource?: ResourceRef$1;
|
|
768
|
-
}
|
|
769
|
-
interface ControlsApplyInput {
|
|
770
|
-
values: ControlValueMap;
|
|
771
|
-
resource?: ResourceRef$1;
|
|
772
|
-
}
|
|
773
|
-
interface ControlsResetInput {
|
|
774
|
-
controlIds?: string[];
|
|
775
|
-
resource?: ResourceRef$1;
|
|
776
|
-
}
|
|
777
|
-
interface ControlsRendererContribution {
|
|
778
|
-
id: string;
|
|
779
|
-
title: string;
|
|
780
|
-
resourceKind?: string;
|
|
781
|
-
emptyTitle?: string;
|
|
782
|
-
emptyDescription?: string;
|
|
783
|
-
layout?: ControlsRendererLayout;
|
|
784
|
-
defaultValues?: ControlValueMap;
|
|
785
|
-
/** Load the control declarations + current values for the active resource. */
|
|
786
|
-
executeQuery(resource: ResourceRef$1 | undefined, signal: AbortSignal): Promise<ControlsQueryResult> | ControlsQueryResult;
|
|
787
|
-
/** Live-save a single control edit. Omit for explicit-apply or read-only panels. */
|
|
788
|
-
updateValue?(input: ControlsUpdateValueInput): Promise<void> | void;
|
|
789
|
-
/** Commit the full value map from a sticky footer. */
|
|
790
|
-
apply?(input: ControlsApplyInput): Promise<void> | void;
|
|
791
|
-
/** Reset some or all controls to their defaults. */
|
|
792
|
-
reset?(input: ControlsResetInput): Promise<void> | void;
|
|
793
|
-
subscribe?: (listener: () => void) => Disposable | (() => void);
|
|
794
|
-
}
|
|
795
|
-
//#endregion
|
|
796
734
|
//#region src/core/registries/menus/menu-registry.d.ts
|
|
797
735
|
type MenuPath = readonly string[];
|
|
798
736
|
interface MenuItem {
|
|
@@ -823,6 +761,18 @@ interface MenuRegistry {
|
|
|
823
761
|
listMenuItems(path: MenuPath): RegisteredMenuItem[];
|
|
824
762
|
}
|
|
825
763
|
//#endregion
|
|
764
|
+
//#region src/core/registries/renderers/renderer-registry.d.ts
|
|
765
|
+
interface WorkbenchPanelRenderInput {
|
|
766
|
+
workbench: WorkbenchCore;
|
|
767
|
+
panel: WorkbenchPanelContribution | PlaceholderContribution | RegisteredPlaceholderContribution;
|
|
768
|
+
instance: WorkbenchPanelInstance;
|
|
769
|
+
refresh: () => void;
|
|
770
|
+
}
|
|
771
|
+
interface WorkbenchRendererRegistration {
|
|
772
|
+
id: string;
|
|
773
|
+
render: (input: WorkbenchPanelRenderInput) => unknown;
|
|
774
|
+
}
|
|
775
|
+
//#endregion
|
|
826
776
|
//#region src/core/registries/renderers/tree-renderer-types.d.ts
|
|
827
777
|
interface TreeQueryContext {
|
|
828
778
|
signal?: AbortSignal;
|
|
@@ -993,160 +943,100 @@ interface TreeRendererRegistry {
|
|
|
993
943
|
onDidRefresh(listener: TreeRendererRefreshListener): Disposable;
|
|
994
944
|
}
|
|
995
945
|
//#endregion
|
|
996
|
-
//#region src/core/registries/
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
//#endregion
|
|
1001
|
-
//#region src/core/registries/renderers/data-table-renderer-registry.d.ts
|
|
1002
|
-
interface DataTableRendererThemeColor {
|
|
1003
|
-
light: string;
|
|
1004
|
-
dark: string;
|
|
1005
|
-
foreground?: {
|
|
1006
|
-
light: string;
|
|
1007
|
-
dark: string;
|
|
1008
|
-
};
|
|
1009
|
-
}
|
|
1010
|
-
type DataTableRendererColumnStat = {
|
|
1011
|
-
type: "unique";
|
|
1012
|
-
} | {
|
|
1013
|
-
type: "histogram";
|
|
1014
|
-
bins?: number;
|
|
1015
|
-
} | {
|
|
1016
|
-
type: "top-values";
|
|
1017
|
-
limit?: number;
|
|
1018
|
-
};
|
|
1019
|
-
type DataTableRendererBadgePalette = "gray" | "red" | "orange" | "yellow" | "green" | "teal" | "blue" | "cyan" | "purple" | "pink";
|
|
1020
|
-
type DataTableRendererColumnRenderer = {
|
|
1021
|
-
type: "json";
|
|
1022
|
-
} | {
|
|
1023
|
-
type: "color-scale";
|
|
1024
|
-
stops: Array<{
|
|
1025
|
-
value: number;
|
|
1026
|
-
color: DataTableRendererThemeColor;
|
|
1027
|
-
}>;
|
|
1028
|
-
} | {
|
|
1029
|
-
type: "categorical-color";
|
|
1030
|
-
categories: Array<{
|
|
1031
|
-
value: string | number | boolean | null;
|
|
1032
|
-
color: DataTableRendererThemeColor;
|
|
1033
|
-
}>;
|
|
1034
|
-
} | {
|
|
1035
|
-
type: "badge";
|
|
1036
|
-
categories?: Array<{
|
|
1037
|
-
value: string | number | boolean | null;
|
|
1038
|
-
palette: DataTableRendererBadgePalette;
|
|
1039
|
-
}>;
|
|
1040
|
-
} | {
|
|
1041
|
-
type: "diff";
|
|
1042
|
-
} | {
|
|
1043
|
-
type: "date";
|
|
1044
|
-
} | {
|
|
1045
|
-
type: "path";
|
|
1046
|
-
};
|
|
1047
|
-
interface DataTableRendererColumn {
|
|
946
|
+
//#region src/core/registries/navigation/navigation-tree-registry.d.ts
|
|
947
|
+
type NavigationTreeSlot = "header" | "content" | "footer";
|
|
948
|
+
interface NavigationTreeOwner {
|
|
949
|
+
kind: "mode" | "page";
|
|
1048
950
|
id: string;
|
|
1049
|
-
|
|
1050
|
-
description?: string;
|
|
1051
|
-
icon?: unknown;
|
|
1052
|
-
hidden?: boolean;
|
|
1053
|
-
/** Starts unchecked in the column menu; viewers can still show the column. */
|
|
1054
|
-
defaultHidden?: boolean;
|
|
1055
|
-
stat?: DataTableRendererColumnStat;
|
|
1056
|
-
renderer?: DataTableRendererColumnRenderer;
|
|
951
|
+
extensionId: string;
|
|
1057
952
|
}
|
|
1058
|
-
interface
|
|
1059
|
-
id: string;
|
|
1060
|
-
values: Record<string, unknown>;
|
|
953
|
+
interface NavigationTreeContext {
|
|
1061
954
|
resource?: ResourceRef$1;
|
|
955
|
+
signal?: AbortSignal;
|
|
1062
956
|
}
|
|
1063
|
-
interface
|
|
1064
|
-
|
|
1065
|
-
|
|
957
|
+
interface NavigationTreeContribution {
|
|
958
|
+
id: string;
|
|
959
|
+
/** Prefix projected section and node ids when they come from an independent tree renderer. */
|
|
960
|
+
idScope?: string;
|
|
961
|
+
owner: NavigationTreeOwner;
|
|
962
|
+
sourceExtensionId: string;
|
|
963
|
+
declarationIndex: number;
|
|
964
|
+
slot?: NavigationTreeSlot;
|
|
965
|
+
viewId?: string;
|
|
966
|
+
defaultExpandedSectionIds?: string[];
|
|
967
|
+
/** Resolve the data resource independently of the selected navigation item. */
|
|
968
|
+
resolveResource?(resource: ResourceRef$1 | undefined): ResourceRef$1 | undefined;
|
|
969
|
+
getSections?(context: NavigationTreeContext): Promise<TreeViewSection[]> | TreeViewSection[];
|
|
970
|
+
getChildren?(node: TreeNode, context: NavigationTreeContext): Promise<TreeNode[]> | TreeNode[];
|
|
1066
971
|
}
|
|
1067
|
-
interface
|
|
1068
|
-
|
|
1069
|
-
|
|
972
|
+
interface NavigationTreeRegistry {
|
|
973
|
+
registerContribution(contribution: NavigationTreeContribution): Disposable;
|
|
974
|
+
resolveOwner(kind: NavigationTreeOwner["kind"], id: string, slot?: NavigationTreeSlot): NavigationTreeOwner | undefined;
|
|
975
|
+
getReadKey(owner: NavigationTreeOwner, context?: NavigationTreeContext): string;
|
|
976
|
+
getSections(owner: NavigationTreeOwner, slot?: NavigationTreeSlot, context?: NavigationTreeContext): Promise<TreeViewSection[]>;
|
|
977
|
+
getChildren(node: TreeNode, context?: NavigationTreeContext): Promise<TreeNode[]>;
|
|
978
|
+
getDefaultExpandedSectionIds(owner: NavigationTreeOwner, slot?: NavigationTreeSlot): string[];
|
|
979
|
+
onDidChange(listener: () => void): Disposable;
|
|
1070
980
|
}
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
981
|
+
//#endregion
|
|
982
|
+
//#region src/core/registries/layout/placement-reconciliation.d.ts
|
|
983
|
+
interface ResolvedOwnedPlacement<Value = unknown> {
|
|
984
|
+
identity: PlacementIdentity;
|
|
985
|
+
region: WorkbenchRegion;
|
|
986
|
+
order: number;
|
|
987
|
+
value: Value;
|
|
1077
988
|
}
|
|
1078
|
-
interface
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
icon?: unknown;
|
|
1082
|
-
destructive?: boolean;
|
|
1083
|
-
run(rows: DataTableRendererRow[]): Promise<void> | void;
|
|
989
|
+
interface OwnedPlacementUpdate<Value> {
|
|
990
|
+
current: ResolvedOwnedPlacement<Value>;
|
|
991
|
+
desired: ResolvedOwnedPlacement<Value>;
|
|
1084
992
|
}
|
|
1085
|
-
interface
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
selectionMode?: "none" | "multiple";
|
|
1092
|
-
selectionActions?: DataTableRendererSelectionAction[];
|
|
1093
|
-
rowActions?: DataTableRendererRowAction[];
|
|
1094
|
-
initialPageSize?: number;
|
|
1095
|
-
pageSizeOptions?: number[];
|
|
1096
|
-
/** Whether column statistics start visible. Defaults to `true`. */
|
|
1097
|
-
defaultShowStats?: boolean;
|
|
1098
|
-
emptyTitle?: string;
|
|
1099
|
-
emptyDescription?: string;
|
|
1100
|
-
/** Context keys that choose which rows the query returns. A change drops the old rows and starts a new read. */
|
|
1101
|
-
contextKeys?: string[];
|
|
1102
|
-
executeQuery(context: DataTableRendererQueryContext, signal: AbortSignal): Promise<DataTableRendererQueryResult> | DataTableRendererQueryResult;
|
|
1103
|
-
subscribe?: (listener: () => void) => Disposable | (() => void);
|
|
1104
|
-
onRowActivate?: (row: DataTableRendererRow) => Promise<void> | void;
|
|
993
|
+
interface OwnedPlacementReconciliation<Value> {
|
|
994
|
+
add: readonly ResolvedOwnedPlacement<Value>[];
|
|
995
|
+
retain: readonly ResolvedOwnedPlacement<Value>[];
|
|
996
|
+
update: readonly OwnedPlacementUpdate<Value>[];
|
|
997
|
+
activate: readonly ResolvedOwnedPlacement<Value>[];
|
|
998
|
+
remove: readonly ResolvedOwnedPlacement<Value>[];
|
|
1105
999
|
}
|
|
1106
|
-
interface RegisteredDataTableRendererContribution extends DataTableRendererContribution, RegisteredContributionMetadata {}
|
|
1107
1000
|
//#endregion
|
|
1108
|
-
//#region src/core/registries/renderers/
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
dataUrl?: string;
|
|
1116
|
-
placeholder?: string;
|
|
1117
|
-
/** Override contribution-level save support for one loaded file. */
|
|
1118
|
-
editable?: boolean;
|
|
1119
|
-
/** Request Monaco for text that automatic dispatch would open as markdown. */
|
|
1120
|
-
textRenderer?: "automatic" | "monaco";
|
|
1121
|
-
/** Represent a deliberate no-file selection without an editable blank document. */
|
|
1122
|
-
emptyState?: {
|
|
1123
|
-
title: string;
|
|
1124
|
-
description?: string;
|
|
1125
|
-
};
|
|
1126
|
-
/** Ordered backing-store revision when one is available. */
|
|
1127
|
-
revision?: string;
|
|
1001
|
+
//#region src/core/registries/renderers/controls-renderer-registry.d.ts
|
|
1002
|
+
type ControlsRendererRegion = "main-right-menu" | "secondary" | "overlay";
|
|
1003
|
+
interface ControlsRendererLayout {
|
|
1004
|
+
region?: ControlsRendererRegion;
|
|
1005
|
+
defaultPx?: number;
|
|
1006
|
+
minPx?: number;
|
|
1007
|
+
maxPx?: number;
|
|
1128
1008
|
}
|
|
1129
|
-
interface
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1009
|
+
interface ControlsUpdateValueInput {
|
|
1010
|
+
controlId: string;
|
|
1011
|
+
value: ControlValue;
|
|
1012
|
+
values: ControlValueMap;
|
|
1013
|
+
resource?: ResourceRef$1;
|
|
1133
1014
|
}
|
|
1134
|
-
interface
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
revision?: string;
|
|
1015
|
+
interface ControlsApplyInput {
|
|
1016
|
+
values: ControlValueMap;
|
|
1017
|
+
resource?: ResourceRef$1;
|
|
1138
1018
|
}
|
|
1139
|
-
interface
|
|
1140
|
-
|
|
1019
|
+
interface ControlsResetInput {
|
|
1020
|
+
controlIds?: string[];
|
|
1021
|
+
resource?: ResourceRef$1;
|
|
1141
1022
|
}
|
|
1142
|
-
interface
|
|
1023
|
+
interface ControlsRendererContribution {
|
|
1143
1024
|
id: string;
|
|
1144
1025
|
title: string;
|
|
1145
1026
|
resourceKind?: string;
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1027
|
+
emptyTitle?: string;
|
|
1028
|
+
emptyDescription?: string;
|
|
1029
|
+
layout?: ControlsRendererLayout;
|
|
1030
|
+
defaultValues?: ControlValueMap;
|
|
1031
|
+
/** Load the control declarations + current values for the active resource. */
|
|
1032
|
+
executeQuery(resource: ResourceRef$1 | undefined, signal: AbortSignal): Promise<ControlsQueryResult> | ControlsQueryResult;
|
|
1033
|
+
/** Live-save a single control edit. Omit for explicit-apply or read-only panels. */
|
|
1034
|
+
updateValue?(input: ControlsUpdateValueInput): Promise<void> | void;
|
|
1035
|
+
/** Commit the full value map from a sticky footer. */
|
|
1036
|
+
apply?(input: ControlsApplyInput): Promise<void> | void;
|
|
1037
|
+
/** Reset some or all controls to their defaults. */
|
|
1038
|
+
reset?(input: ControlsResetInput): Promise<void> | void;
|
|
1039
|
+
subscribe?: (listener: () => void) => Disposable | (() => void);
|
|
1150
1040
|
}
|
|
1151
1041
|
//#endregion
|
|
1152
1042
|
//#region src/core/registries/renderers/kanban-renderer-contracts.d.ts
|
|
@@ -1157,9 +1047,7 @@ interface FileRendererContribution {
|
|
|
1157
1047
|
* API shape to UI package ownership.
|
|
1158
1048
|
*/
|
|
1159
1049
|
type ViewMode = "board" | "list";
|
|
1160
|
-
type SortDirection = "asc" | "desc";
|
|
1161
1050
|
declare const NO_GROUPING = "none";
|
|
1162
|
-
declare const MANUAL_ORDERING = "manual";
|
|
1163
1051
|
interface EnumOption {
|
|
1164
1052
|
value: string;
|
|
1165
1053
|
label: string;
|
|
@@ -1182,6 +1070,9 @@ type AttributeType = {
|
|
|
1182
1070
|
} | {
|
|
1183
1071
|
kind: "enum-multi";
|
|
1184
1072
|
options: EnumOptions;
|
|
1073
|
+
} | {
|
|
1074
|
+
kind: "boolean";
|
|
1075
|
+
legacyValues?: Record<string, boolean>;
|
|
1185
1076
|
} | {
|
|
1186
1077
|
kind: "string";
|
|
1187
1078
|
} | {
|
|
@@ -1225,24 +1116,22 @@ interface KanbanRendererRow {
|
|
|
1225
1116
|
resource?: unknown;
|
|
1226
1117
|
attributes: Record<string, unknown>;
|
|
1227
1118
|
}
|
|
1228
|
-
|
|
1229
|
-
attributeId: string | typeof MANUAL_ORDERING;
|
|
1230
|
-
direction: SortDirection;
|
|
1231
|
-
}
|
|
1119
|
+
/** Board display settings. Order lives in the view's sorts. */
|
|
1232
1120
|
interface KanbanRendererSettings {
|
|
1233
1121
|
viewMode: ViewMode;
|
|
1234
1122
|
columnGrouping: string | typeof NO_GROUPING;
|
|
1235
1123
|
rowGrouping: string | typeof NO_GROUPING;
|
|
1236
|
-
ordering: KanbanRendererOrdering;
|
|
1237
1124
|
displayProperties: string[];
|
|
1238
1125
|
}
|
|
1239
|
-
|
|
1240
|
-
interface
|
|
1126
|
+
/** A view stores display settings, one filter, and its sorts. Search is screen state and never saved. */
|
|
1127
|
+
interface CollectionSavedView<TSettings> {
|
|
1241
1128
|
id: string;
|
|
1242
1129
|
title: string;
|
|
1243
|
-
settings:
|
|
1244
|
-
|
|
1130
|
+
settings: TSettings;
|
|
1131
|
+
filter: ViewFilterGroup;
|
|
1132
|
+
sorts: ViewSort[];
|
|
1245
1133
|
}
|
|
1134
|
+
type KanbanRendererSavedView = CollectionSavedView<KanbanRendererSettings>;
|
|
1246
1135
|
type KanbanRendererCreateFieldType = "text" | "longtext" | "markdown" | "number" | "boolean" | "select" | "multi-select" | "files";
|
|
1247
1136
|
interface KanbanRendererCreateField {
|
|
1248
1137
|
id: string;
|
|
@@ -1303,34 +1192,209 @@ interface ResourceContextAction<TNode = unknown> {
|
|
|
1303
1192
|
endContent?: TNode;
|
|
1304
1193
|
separatorBefore?: boolean;
|
|
1305
1194
|
}
|
|
1306
|
-
interface
|
|
1307
|
-
views: (
|
|
1195
|
+
interface CollectionViewsSource<TSettings> {
|
|
1196
|
+
views: (CollectionSavedView<TSettings> & {
|
|
1308
1197
|
builtIn: boolean;
|
|
1309
1198
|
})[];
|
|
1310
1199
|
defaultViewId: string;
|
|
1311
1200
|
onCreateView: (input: {
|
|
1312
1201
|
title: string;
|
|
1313
|
-
settings:
|
|
1314
|
-
|
|
1202
|
+
settings: TSettings;
|
|
1203
|
+
filter: ViewFilterGroup;
|
|
1204
|
+
sorts: ViewSort[];
|
|
1315
1205
|
copyFrom?: string;
|
|
1316
|
-
}) => Promise<
|
|
1206
|
+
}) => Promise<CollectionSavedView<TSettings>>;
|
|
1317
1207
|
onUpdateView: (id: string, input: {
|
|
1318
1208
|
title?: string;
|
|
1319
|
-
settings?:
|
|
1320
|
-
|
|
1209
|
+
settings?: TSettings;
|
|
1210
|
+
filter?: ViewFilterGroup;
|
|
1211
|
+
sorts?: ViewSort[];
|
|
1321
1212
|
}) => Promise<void>;
|
|
1322
1213
|
onDeleteView: (id: string) => Promise<void>;
|
|
1323
1214
|
onSetDefaultView: (id: string | null) => Promise<void>;
|
|
1324
1215
|
}
|
|
1325
|
-
interface
|
|
1326
|
-
getSnapshot: () =>
|
|
1216
|
+
interface CollectionViewsProvider<TSettings> {
|
|
1217
|
+
getSnapshot: () => CollectionViewsSource<TSettings> | undefined;
|
|
1327
1218
|
subscribe: (listener: () => void) => () => void;
|
|
1328
1219
|
}
|
|
1220
|
+
type KanbanRendererViewsSource = CollectionViewsSource<KanbanRendererSettings>;
|
|
1221
|
+
type KanbanRendererViewsProvider = CollectionViewsProvider<KanbanRendererSettings>;
|
|
1222
|
+
//#endregion
|
|
1223
|
+
//#region src/core/registries/renderers/view-toolbar-action.d.ts
|
|
1224
|
+
interface ViewToolbarAction extends TreeAction {
|
|
1225
|
+
presentation?: "primary" | "secondary";
|
|
1226
|
+
}
|
|
1227
|
+
//#endregion
|
|
1228
|
+
//#region src/core/registries/renderers/data-table-renderer-registry.d.ts
|
|
1229
|
+
interface DataTableRendererThemeColor {
|
|
1230
|
+
light: string;
|
|
1231
|
+
dark: string;
|
|
1232
|
+
foreground?: {
|
|
1233
|
+
light: string;
|
|
1234
|
+
dark: string;
|
|
1235
|
+
};
|
|
1236
|
+
}
|
|
1237
|
+
type DataTableRendererColumnStat = {
|
|
1238
|
+
type: "unique";
|
|
1239
|
+
} | {
|
|
1240
|
+
type: "histogram";
|
|
1241
|
+
bins?: number;
|
|
1242
|
+
} | {
|
|
1243
|
+
type: "top-values";
|
|
1244
|
+
limit?: number;
|
|
1245
|
+
};
|
|
1246
|
+
type DataTableRendererBadgePalette = "gray" | "red" | "orange" | "yellow" | "green" | "teal" | "blue" | "cyan" | "purple" | "pink";
|
|
1247
|
+
type DataTableRendererColumnRenderer = {
|
|
1248
|
+
type: "json";
|
|
1249
|
+
} | {
|
|
1250
|
+
type: "color-scale";
|
|
1251
|
+
stops: Array<{
|
|
1252
|
+
value: number;
|
|
1253
|
+
color: DataTableRendererThemeColor;
|
|
1254
|
+
}>;
|
|
1255
|
+
} | {
|
|
1256
|
+
type: "categorical-color";
|
|
1257
|
+
categories: Array<{
|
|
1258
|
+
value: string | number | boolean | null;
|
|
1259
|
+
color: DataTableRendererThemeColor;
|
|
1260
|
+
}>;
|
|
1261
|
+
} | {
|
|
1262
|
+
type: "badge";
|
|
1263
|
+
categories?: Array<{
|
|
1264
|
+
value: string | number | boolean | null;
|
|
1265
|
+
palette: DataTableRendererBadgePalette;
|
|
1266
|
+
}>;
|
|
1267
|
+
} | {
|
|
1268
|
+
type: "diff";
|
|
1269
|
+
} | {
|
|
1270
|
+
type: "date";
|
|
1271
|
+
} | {
|
|
1272
|
+
type: "path";
|
|
1273
|
+
};
|
|
1274
|
+
interface DataTableRendererColumn {
|
|
1275
|
+
id: string;
|
|
1276
|
+
label?: string;
|
|
1277
|
+
/** How filters and sorts compare the column. Without it, the type is inferred from the values. */
|
|
1278
|
+
type?: "string" | "number" | "boolean" | "date";
|
|
1279
|
+
/** Offers the column under Grouping in the table's Display menu. */
|
|
1280
|
+
groupable?: boolean;
|
|
1281
|
+
/** Whether this column can be filtered. Defaults to true. */
|
|
1282
|
+
filterable?: boolean;
|
|
1283
|
+
description?: string;
|
|
1284
|
+
icon?: unknown;
|
|
1285
|
+
hidden?: boolean;
|
|
1286
|
+
stat?: DataTableRendererColumnStat;
|
|
1287
|
+
renderer?: DataTableRendererColumnRenderer;
|
|
1288
|
+
}
|
|
1289
|
+
interface DataTableRendererRow {
|
|
1290
|
+
id: string;
|
|
1291
|
+
values: Record<string, unknown>;
|
|
1292
|
+
resource?: ResourceRef$1;
|
|
1293
|
+
}
|
|
1294
|
+
interface DataTableRendererQueryResult {
|
|
1295
|
+
rows: DataTableRendererRow[];
|
|
1296
|
+
columns?: DataTableRendererColumn[];
|
|
1297
|
+
}
|
|
1298
|
+
interface DataTableRendererQueryContext {
|
|
1299
|
+
resource?: ResourceRef$1;
|
|
1300
|
+
modeId?: string;
|
|
1301
|
+
filter: ViewFilterGroup;
|
|
1302
|
+
sorts: ViewSort[];
|
|
1303
|
+
settings: DataTableRendererSettings;
|
|
1304
|
+
}
|
|
1305
|
+
type DataTableRendererSavedView = CollectionSavedView<DataTableRendererSettings>;
|
|
1306
|
+
interface DataTableRendererRowAction {
|
|
1307
|
+
id: string;
|
|
1308
|
+
label: string;
|
|
1309
|
+
icon?: unknown;
|
|
1310
|
+
destructive?: boolean;
|
|
1311
|
+
run(row: DataTableRendererRow): Promise<void> | void;
|
|
1312
|
+
}
|
|
1313
|
+
interface DataTableRendererSelectionAction {
|
|
1314
|
+
id: string;
|
|
1315
|
+
label: string;
|
|
1316
|
+
icon?: unknown;
|
|
1317
|
+
destructive?: boolean;
|
|
1318
|
+
run(rows: DataTableRendererRow[]): Promise<void> | void;
|
|
1319
|
+
}
|
|
1320
|
+
interface DataTableRendererContribution {
|
|
1321
|
+
id: string;
|
|
1322
|
+
title: string;
|
|
1323
|
+
toolbarActions?: ViewToolbarAction[];
|
|
1324
|
+
resourceKind?: string;
|
|
1325
|
+
columns?: DataTableRendererColumn[];
|
|
1326
|
+
selectionMode?: "none" | "multiple";
|
|
1327
|
+
selectionActions?: DataTableRendererSelectionAction[];
|
|
1328
|
+
rowActions?: DataTableRendererRowAction[];
|
|
1329
|
+
initialPageSize?: number;
|
|
1330
|
+
pageSizeOptions?: number[];
|
|
1331
|
+
/** The view state used before a saved view is active, such as hidden columns or statistics. */
|
|
1332
|
+
defaultSettings?: Partial<DataTableRendererSettings>;
|
|
1333
|
+
defaultFilter?: ViewFilterGroup;
|
|
1334
|
+
defaultSorts?: ViewSort[];
|
|
1335
|
+
defaultViews?: DataTableRendererSavedView[];
|
|
1336
|
+
defaultActiveViewId?: string;
|
|
1337
|
+
/** Shared saved views. Without it the table offers its default views only. */
|
|
1338
|
+
viewsProvider?: CollectionViewsProvider<DataTableRendererSettings>;
|
|
1339
|
+
emptyTitle?: string;
|
|
1340
|
+
emptyDescription?: string;
|
|
1341
|
+
/** Context keys that choose which rows the query returns. A change drops the old rows and starts a new read. */
|
|
1342
|
+
contextKeys?: string[];
|
|
1343
|
+
executeQuery(context: DataTableRendererQueryContext, signal: AbortSignal): Promise<DataTableRendererQueryResult> | DataTableRendererQueryResult;
|
|
1344
|
+
subscribe?: (listener: () => void) => Disposable | (() => void);
|
|
1345
|
+
onRowActivate?: (row: DataTableRendererRow) => Promise<void> | void;
|
|
1346
|
+
}
|
|
1347
|
+
interface RegisteredDataTableRendererContribution extends DataTableRendererContribution, RegisteredContributionMetadata {}
|
|
1348
|
+
//#endregion
|
|
1349
|
+
//#region src/core/registries/renderers/file-renderer-registry.d.ts
|
|
1350
|
+
interface FileRendererContent {
|
|
1351
|
+
fileName?: string;
|
|
1352
|
+
/** Workspace-relative path shown above the file preview. */
|
|
1353
|
+
filePath?: string;
|
|
1354
|
+
mimeType?: string;
|
|
1355
|
+
content?: string;
|
|
1356
|
+
dataUrl?: string;
|
|
1357
|
+
placeholder?: string;
|
|
1358
|
+
/** Override contribution-level save support for one loaded file. */
|
|
1359
|
+
editable?: boolean;
|
|
1360
|
+
/** Request Monaco for text that automatic dispatch would open as markdown. */
|
|
1361
|
+
textRenderer?: "automatic" | "monaco";
|
|
1362
|
+
/** Represent a deliberate no-file selection without an editable blank document. */
|
|
1363
|
+
emptyState?: {
|
|
1364
|
+
title: string;
|
|
1365
|
+
description?: string;
|
|
1366
|
+
};
|
|
1367
|
+
/** Ordered backing-store revision when one is available. */
|
|
1368
|
+
revision?: string;
|
|
1369
|
+
}
|
|
1370
|
+
interface FileRendererRefreshOrigin {
|
|
1371
|
+
rendererId: string;
|
|
1372
|
+
instanceId: string;
|
|
1373
|
+
operationId: string;
|
|
1374
|
+
}
|
|
1375
|
+
interface FileRendererRefreshEnvelope {
|
|
1376
|
+
resourceKey?: string;
|
|
1377
|
+
origin?: FileRendererRefreshOrigin;
|
|
1378
|
+
revision?: string;
|
|
1379
|
+
}
|
|
1380
|
+
interface FileRendererSaveResult {
|
|
1381
|
+
revision?: string;
|
|
1382
|
+
}
|
|
1383
|
+
interface FileRendererContribution {
|
|
1384
|
+
id: string;
|
|
1385
|
+
title: string;
|
|
1386
|
+
resourceKind?: string;
|
|
1387
|
+
/** Resolve the file's content (and identity) for the bound resource. */
|
|
1388
|
+
load(resource: ResourceRef$1 | undefined, signal: AbortSignal): Promise<FileRendererContent> | FileRendererContent;
|
|
1389
|
+
/** Persist edited text. Absent ⇒ read-only. Never called for images. */
|
|
1390
|
+
save?(resource: ResourceRef$1 | undefined, content: string, origin?: FileRendererRefreshOrigin): Promise<FileRendererSaveResult | undefined> | FileRendererSaveResult | void;
|
|
1391
|
+
}
|
|
1329
1392
|
//#endregion
|
|
1330
1393
|
//#region src/core/registries/renderers/kanban-renderer-registry.d.ts
|
|
1331
1394
|
interface KanbanRendererQueryState {
|
|
1332
1395
|
settings: KanbanRendererSettings;
|
|
1333
|
-
|
|
1396
|
+
filter: ViewFilterGroup;
|
|
1397
|
+
sorts: ViewSort[];
|
|
1334
1398
|
}
|
|
1335
1399
|
interface KanbanRendererContribution<TRow extends KanbanRendererRow = KanbanRendererRow, TNode = unknown, TIcon = unknown> {
|
|
1336
1400
|
id: string;
|
|
@@ -1354,9 +1418,10 @@ interface KanbanRendererContribution<TRow extends KanbanRendererRow = KanbanRend
|
|
|
1354
1418
|
hideToolbar?: boolean;
|
|
1355
1419
|
emptyTitle?: string;
|
|
1356
1420
|
emptyDescription?: string;
|
|
1357
|
-
/**
|
|
1421
|
+
/** The view state used before a saved view is active. */
|
|
1358
1422
|
defaultSettings?: Partial<KanbanRendererSettings>;
|
|
1359
|
-
|
|
1423
|
+
defaultFilter?: ViewFilterGroup;
|
|
1424
|
+
defaultSorts?: ViewSort[];
|
|
1360
1425
|
viewsProvider?: KanbanRendererViewsProvider;
|
|
1361
1426
|
defaultViews?: KanbanRendererSavedView[];
|
|
1362
1427
|
defaultActiveViewId?: string;
|
|
@@ -1377,7 +1442,7 @@ interface KanbanRendererContribution<TRow extends KanbanRendererRow = KanbanRend
|
|
|
1377
1442
|
* column value).
|
|
1378
1443
|
*/
|
|
1379
1444
|
onAttributeChange?: (rowId: string, attributeId: string, value: unknown) => Promise<void> | void;
|
|
1380
|
-
/** Manual within-column reorder
|
|
1445
|
+
/** Manual within-column reorder. Only fires while the view has no sorts. */
|
|
1381
1446
|
onReorder?: (rowId: string, beforeRowId?: string) => Promise<void> | void;
|
|
1382
1447
|
createRow?: KanbanRendererCreateRowConfig;
|
|
1383
1448
|
onCreateRow?: (submission: KanbanRendererCreateSubmission) => Promise<void> | void;
|
|
@@ -1484,6 +1549,7 @@ interface WorkbenchPageContribution {
|
|
|
1484
1549
|
modeId: string;
|
|
1485
1550
|
parentId?: string;
|
|
1486
1551
|
resource?: ResourceConstraint;
|
|
1552
|
+
document?: PageDocumentDeclaration;
|
|
1487
1553
|
main: WorkbenchPageMain;
|
|
1488
1554
|
slots: readonly WorkbenchPageSlot[];
|
|
1489
1555
|
}
|
|
@@ -1526,7 +1592,7 @@ interface WorkbenchPageRegistry<Value> {
|
|
|
1526
1592
|
};
|
|
1527
1593
|
getPage(pageId: string): WorkbenchPageContribution | undefined;
|
|
1528
1594
|
listPages(): WorkbenchPageContribution[];
|
|
1529
|
-
pinPlacement(identity: PlacementIdentity): void;
|
|
1595
|
+
pinPlacement(identity: PlacementIdentity, open?: PageOpenIntent): void;
|
|
1530
1596
|
openSlot(input: WorkbenchPageSlotOpenInput): void;
|
|
1531
1597
|
}
|
|
1532
1598
|
//#endregion
|
|
@@ -1545,9 +1611,13 @@ interface WorkbenchPageLocationBrowser {
|
|
|
1545
1611
|
dispose(): void;
|
|
1546
1612
|
};
|
|
1547
1613
|
}
|
|
1614
|
+
interface PersistedWorkbenchPageLocation {
|
|
1615
|
+
location: PageLocation;
|
|
1616
|
+
rootLevel?: PageLocation;
|
|
1617
|
+
}
|
|
1548
1618
|
interface WorkbenchPageLocationPersistence {
|
|
1549
|
-
load(projectId: string):
|
|
1550
|
-
save(projectId: string,
|
|
1619
|
+
load(projectId: string): PersistedWorkbenchPageLocation | undefined;
|
|
1620
|
+
save(projectId: string, persisted: PersistedWorkbenchPageLocation): void;
|
|
1551
1621
|
}
|
|
1552
1622
|
interface WorkbenchPageLocationDiagnostic {
|
|
1553
1623
|
code: "page-location-unresolved";
|
|
@@ -1572,6 +1642,8 @@ interface WorkbenchPageLocationController {
|
|
|
1572
1642
|
navigate(target: NavigationTargetPage): WorkbenchPageNavigationResult;
|
|
1573
1643
|
replay(location: PageLocation): WorkbenchPageNavigationResult;
|
|
1574
1644
|
navigateToParent(): WorkbenchPageNavigationResult;
|
|
1645
|
+
/** Opens the last location outside every Sidenav level, or the start page when there is none. */
|
|
1646
|
+
navigateToRootLevel(): WorkbenchPageNavigationResult;
|
|
1575
1647
|
closePlacement(identity: PlacementIdentity): WorkbenchPageNavigationResult;
|
|
1576
1648
|
removeResource(resource: ResourceRef, retained: readonly PlacementIdentity[]): void;
|
|
1577
1649
|
goBack(): void;
|
|
@@ -1606,22 +1678,13 @@ interface WorkbenchPanelMenuStateController {
|
|
|
1606
1678
|
}
|
|
1607
1679
|
//#endregion
|
|
1608
1680
|
//#region src/core/controllers/side-panel/side-panel-controller.d.ts
|
|
1609
|
-
type WorkbenchSidePanelMode = "floating" | "closed" | "attached";
|
|
1610
1681
|
type WorkbenchSidePanelChangeListener = (mode: WorkbenchSidePanelMode) => void;
|
|
1611
|
-
interface WorkbenchSidePanelState {
|
|
1612
|
-
mode: WorkbenchSidePanelMode;
|
|
1613
|
-
}
|
|
1614
1682
|
interface WorkbenchSidePanelController {
|
|
1615
1683
|
canFloat(): boolean;
|
|
1616
|
-
store: WorkbenchStore<WorkbenchSidePanelState>;
|
|
1617
1684
|
getMode(): WorkbenchSidePanelMode;
|
|
1618
1685
|
setMode(mode: WorkbenchSidePanelMode): void;
|
|
1619
1686
|
onDidChange(listener: WorkbenchSidePanelChangeListener): Disposable;
|
|
1620
1687
|
}
|
|
1621
|
-
interface WorkbenchSidePanelPersistenceAdapter {
|
|
1622
|
-
getMode(): WorkbenchSidePanelMode | undefined;
|
|
1623
|
-
setMode(mode: WorkbenchSidePanelMode): void;
|
|
1624
|
-
}
|
|
1625
1688
|
//#endregion
|
|
1626
1689
|
//#region src/core/controllers/shell/shell-controller.d.ts
|
|
1627
1690
|
type WorkbenchSidePanelPresentation = WorkbenchSidePanelMode;
|
|
@@ -1640,31 +1703,10 @@ interface WorkbenchShellController {
|
|
|
1640
1703
|
}
|
|
1641
1704
|
//#endregion
|
|
1642
1705
|
//#region src/core/controllers/terminal/terminal-controller.d.ts
|
|
1643
|
-
|
|
1644
|
-
|
|
1645
|
-
|
|
1646
|
-
|
|
1647
|
-
cols: number;
|
|
1648
|
-
rows: number;
|
|
1649
|
-
}
|
|
1650
|
-
interface WorkbenchTerminalSessionExit {
|
|
1651
|
-
code: number | null;
|
|
1652
|
-
signal: string | null;
|
|
1653
|
-
}
|
|
1654
|
-
interface WorkbenchTerminalSessionError {
|
|
1655
|
-
message: string;
|
|
1656
|
-
}
|
|
1657
|
-
interface WorkbenchTerminalSessionAdapter {
|
|
1658
|
-
readonly id: string;
|
|
1659
|
-
write(data: string | Uint8Array): void;
|
|
1660
|
-
resize(cols: number, rows: number): void;
|
|
1661
|
-
kill(signal?: string): Promise<void> | void;
|
|
1662
|
-
onData(handler: (chunk: Uint8Array) => void): () => void;
|
|
1663
|
-
/** Foreground process name updates, when the opener can report them (real PTYs). */
|
|
1664
|
-
onTitle?(handler: (title: string) => void): () => void;
|
|
1665
|
-
onExit(handler: (exit: WorkbenchTerminalSessionExit) => void): () => void;
|
|
1666
|
-
onError(handler: (error: WorkbenchTerminalSessionError) => void): () => void;
|
|
1667
|
-
}
|
|
1706
|
+
type WorkbenchTerminalSessionRequest = TerminalSessionRequest;
|
|
1707
|
+
type WorkbenchTerminalSessionExit = TerminalSessionExit;
|
|
1708
|
+
type WorkbenchTerminalSessionError = TerminalSessionError;
|
|
1709
|
+
type WorkbenchTerminalSessionAdapter = TerminalSessionAdapter;
|
|
1668
1710
|
type WorkbenchTerminalSessionOpener = (request: WorkbenchTerminalSessionRequest) => Promise<WorkbenchTerminalSessionAdapter>;
|
|
1669
1711
|
type WorkbenchTerminalSessionStatus = "running" | "exited" | "killed";
|
|
1670
1712
|
interface WorkbenchTerminalSessionModel {
|
|
@@ -1818,42 +1860,6 @@ interface WorkbenchModePlacementRegistry {
|
|
|
1818
1860
|
onDidChange(listener: () => void): Disposable;
|
|
1819
1861
|
}
|
|
1820
1862
|
//#endregion
|
|
1821
|
-
//#region src/core/registries/navigation/navigation-tree-registry.d.ts
|
|
1822
|
-
type NavigationTreeSlot = "header" | "content" | "footer";
|
|
1823
|
-
interface NavigationTreeOwner {
|
|
1824
|
-
kind: "mode" | "page";
|
|
1825
|
-
id: string;
|
|
1826
|
-
extensionId: string;
|
|
1827
|
-
}
|
|
1828
|
-
interface NavigationTreeContext {
|
|
1829
|
-
resource?: ResourceRef$1;
|
|
1830
|
-
signal?: AbortSignal;
|
|
1831
|
-
}
|
|
1832
|
-
interface NavigationTreeContribution {
|
|
1833
|
-
id: string;
|
|
1834
|
-
/** Prefix projected section and node ids when they come from an independent tree renderer. */
|
|
1835
|
-
idScope?: string;
|
|
1836
|
-
owner: NavigationTreeOwner;
|
|
1837
|
-
sourceExtensionId: string;
|
|
1838
|
-
declarationIndex: number;
|
|
1839
|
-
slot?: NavigationTreeSlot;
|
|
1840
|
-
viewId?: string;
|
|
1841
|
-
defaultExpandedSectionIds?: string[];
|
|
1842
|
-
/** Resolve the data resource independently of the selected navigation item. */
|
|
1843
|
-
resolveResource?(resource: ResourceRef$1 | undefined): ResourceRef$1 | undefined;
|
|
1844
|
-
getSections?(context: NavigationTreeContext): Promise<TreeViewSection[]> | TreeViewSection[];
|
|
1845
|
-
getChildren?(node: TreeNode, context: NavigationTreeContext): Promise<TreeNode[]> | TreeNode[];
|
|
1846
|
-
}
|
|
1847
|
-
interface NavigationTreeRegistry {
|
|
1848
|
-
registerContribution(contribution: NavigationTreeContribution): Disposable;
|
|
1849
|
-
resolveOwner(kind: NavigationTreeOwner["kind"], id: string, slot?: NavigationTreeSlot): NavigationTreeOwner | undefined;
|
|
1850
|
-
getReadKey(owner: NavigationTreeOwner, context?: NavigationTreeContext): string;
|
|
1851
|
-
getSections(owner: NavigationTreeOwner, slot?: NavigationTreeSlot, context?: NavigationTreeContext): Promise<TreeViewSection[]>;
|
|
1852
|
-
getChildren(node: TreeNode, context?: NavigationTreeContext): Promise<TreeNode[]>;
|
|
1853
|
-
getDefaultExpandedSectionIds(owner: NavigationTreeOwner, slot?: NavigationTreeSlot): string[];
|
|
1854
|
-
onDidChange(listener: () => void): Disposable;
|
|
1855
|
-
}
|
|
1856
|
-
//#endregion
|
|
1857
1863
|
//#region src/core/registries/notifications/notification-registry.d.ts
|
|
1858
1864
|
type WorkbenchNotificationLevel = "info" | "success" | "warning" | "error";
|
|
1859
1865
|
interface WorkbenchNotificationAction {
|
|
@@ -2098,16 +2104,28 @@ interface WorkbenchStatusBarItem {
|
|
|
2098
2104
|
}
|
|
2099
2105
|
interface WorkbenchStatusBarRegistryState {
|
|
2100
2106
|
items: Record<string, WorkbenchStatusBarItem>;
|
|
2107
|
+
order: string[];
|
|
2108
|
+
}
|
|
2109
|
+
interface WorkbenchStatusBarPersistenceAdapter {
|
|
2110
|
+
getOrder(): string[] | undefined;
|
|
2111
|
+
setOrder(ids: string[]): void;
|
|
2101
2112
|
}
|
|
2113
|
+
type WorkbenchStatusBarPosition = {
|
|
2114
|
+
beforeItemId: string;
|
|
2115
|
+
} | {
|
|
2116
|
+
afterItemId: string;
|
|
2117
|
+
};
|
|
2102
2118
|
interface WorkbenchStatusBarRegistry {
|
|
2103
2119
|
store: WorkbenchStore<WorkbenchStatusBarRegistryState>;
|
|
2104
2120
|
registerItem(item: WorkbenchStatusBarItem): Disposable;
|
|
2105
2121
|
getItem(id: string): WorkbenchStatusBarItem | undefined;
|
|
2106
2122
|
listItems(): WorkbenchStatusBarItem[];
|
|
2107
2123
|
listVisibleItems(slot?: WorkbenchStatusBarSlot): WorkbenchStatusBarItem[];
|
|
2124
|
+
reorderItem(id: string, position: WorkbenchStatusBarPosition): void;
|
|
2108
2125
|
}
|
|
2109
2126
|
interface CreateWorkbenchStatusBarRegistryInput {
|
|
2110
2127
|
hasView(viewId: string): boolean;
|
|
2128
|
+
persistence?: WorkbenchStatusBarPersistenceAdapter;
|
|
2111
2129
|
}
|
|
2112
2130
|
declare const createStatusBarRegistry: (input: CreateWorkbenchStatusBarRegistryInput) => WorkbenchStatusBarRegistry;
|
|
2113
2131
|
//#endregion
|
|
@@ -2220,7 +2238,11 @@ type WorkbenchLayoutModel = LayoutModel & MenuRegistry;
|
|
|
2220
2238
|
type WorkbenchModuleLayoutModel = Omit<WorkbenchLayoutModel, "registerPanel" | "registerWidget" | "openPanel" | "openWidget" | "registerPlaceholder" | "registerPanelMenu">;
|
|
2221
2239
|
type WorkbenchTreeViews = Pick<TreeRendererRegistry, "getTreeState" | "setNodeExpanded" | "setSectionExpanded" | "setSelectedNode">;
|
|
2222
2240
|
interface WorkbenchCoreContributionContext {
|
|
2223
|
-
pinPlacement(identity: import("@pstdio/sdk/extensions").PlacementIdentity): void;
|
|
2241
|
+
pinPlacement(identity: import("@pstdio/sdk/extensions").PlacementIdentity, pinned?: boolean): void;
|
|
2242
|
+
getPanelDestinations(instanceId: string): WorkbenchPanelRegion[];
|
|
2243
|
+
movePanel(instanceId: string, region: WorkbenchPanelRegion, position?: WorkbenchTabPosition): void;
|
|
2244
|
+
resetLayout(): void;
|
|
2245
|
+
onDidResetLayout(listener: () => void): Disposable;
|
|
2224
2246
|
closePlacement(identity: import("@pstdio/sdk/extensions").PlacementIdentity): void;
|
|
2225
2247
|
breadcrumbs: WorkbenchBreadcrumbController;
|
|
2226
2248
|
commandPalette: WorkbenchCommandPaletteController;
|
|
@@ -2309,10 +2331,10 @@ interface createWorkbenchInput {
|
|
|
2309
2331
|
preferencePersistence?: PreferencePersistenceAdapter;
|
|
2310
2332
|
treePersistence?: TreeRendererPersistenceAdapter;
|
|
2311
2333
|
panelMenuStatePersistence?: WorkbenchPanelMenuStatePersistenceAdapter;
|
|
2334
|
+
statusBarPersistence?: WorkbenchStatusBarPersistenceAdapter;
|
|
2312
2335
|
defaultPanelOpenByRegionId?: Partial<Record<WorkbenchRegion, boolean>>;
|
|
2313
2336
|
/** Host-level region layout policy. The active mode's regionSettings win over it. */
|
|
2314
2337
|
regionSettings?: Partial<Record<WorkbenchRegion, WorkbenchRegionSettings>>;
|
|
2315
|
-
sidePanelPersistence?: WorkbenchSidePanelPersistenceAdapter;
|
|
2316
2338
|
/** Default floating policy. The active mode may override it. */
|
|
2317
2339
|
floatingPanels?: "visible" | "hidden";
|
|
2318
2340
|
initialSidePanelMode?: WorkbenchSidePanelMode;
|
|
@@ -2329,11 +2351,7 @@ interface WorkbenchModuleContribution {
|
|
|
2329
2351
|
//#region src/core/workbench-core.d.ts
|
|
2330
2352
|
declare const createWorkbench: (input?: createWorkbenchInput) => WorkbenchCore;
|
|
2331
2353
|
//#endregion
|
|
2332
|
-
//#region src/core/registries/modes/mode-
|
|
2333
|
-
declare const getWorkbenchModePanelForRegion: (region: WorkbenchRegion) => "main" | "secondary" | "side" | undefined;
|
|
2334
|
-
declare const isWorkbenchModePanelAvailable: (mode: WorkbenchModeContribution | undefined, panel: WorkbenchPanelRegion) => boolean;
|
|
2335
|
-
//#endregion
|
|
2336
|
-
//#region src/core/registries/modes/mode-registry.d.ts
|
|
2354
|
+
//#region src/core/registries/modes/mode-registry-types.d.ts
|
|
2337
2355
|
type WorkbenchModeActivationContext = WorkbenchCoreContributionContext;
|
|
2338
2356
|
type WorkbenchModeActivationResult = Disposable | readonly Disposable[] | undefined;
|
|
2339
2357
|
interface WorkbenchModeAddablePanel {
|
|
@@ -2383,10 +2401,14 @@ interface WorkbenchModeRegistry {
|
|
|
2383
2401
|
onDidChangeActive(listener: WorkbenchModeChangeListener): Disposable;
|
|
2384
2402
|
}
|
|
2385
2403
|
//#endregion
|
|
2404
|
+
//#region src/core/registries/modes/mode-layout.d.ts
|
|
2405
|
+
declare const getWorkbenchModePanelForRegion: (region: WorkbenchRegion) => "main" | "secondary" | "side" | undefined;
|
|
2406
|
+
declare const isWorkbenchModePanelAvailable: (mode: WorkbenchModeContribution | undefined, panel: WorkbenchPanelRegion) => boolean;
|
|
2407
|
+
//#endregion
|
|
2386
2408
|
//#region src/core/controllers/composition/composition-controller.d.ts
|
|
2387
2409
|
interface WorkbenchCompositionAddablePanel extends WorkbenchModeAddablePanel {
|
|
2388
2410
|
contribution: RegisteredWidgetContribution;
|
|
2389
|
-
open?(resource?: ResourceRef$1): void
|
|
2411
|
+
open?(resource?: ResourceRef$1): void | Promise<void>;
|
|
2390
2412
|
}
|
|
2391
2413
|
interface WorkbenchCompositionRegionPanels {
|
|
2392
2414
|
open: readonly WorkbenchWidgetPlacement[];
|
|
@@ -2449,9 +2471,14 @@ declare const rendererReadKey: (placement: WorkbenchPanelInstance, lane?: string
|
|
|
2449
2471
|
//#region src/core/registries/views/settle-read-batch.d.ts
|
|
2450
2472
|
declare const settleReadBatch: <T>(tasks: ((signal: AbortSignal) => Promise<T> | T)[], signal?: AbortSignal) => Promise<Awaited<T>[]>;
|
|
2451
2473
|
//#endregion
|
|
2474
|
+
//#region src/core/shared/run-user-action.d.ts
|
|
2475
|
+
declare const runUserAction: (workbench: {
|
|
2476
|
+
notifications: Pick<NotificationRegistry, "show">;
|
|
2477
|
+
}, label: string, run: () => unknown) => Promise<void>;
|
|
2478
|
+
//#endregion
|
|
2452
2479
|
//#region src/core/shared/store/workbench-batch.d.ts
|
|
2453
2480
|
/** Commit related stores before their subscribers read the resulting workbench state. */
|
|
2454
2481
|
declare const batchWorkbenchChanges: <Result>(commit: () => Result) => Result;
|
|
2455
2482
|
//#endregion
|
|
2456
|
-
export {
|
|
2483
|
+
export { WorkflowStatusAction as $, workbenchResourceTypeContextKey as $i, AttributeDescriptor as $n, RegisteredWidgetContribution as $r, WorkbenchTerminalSessionExit as $t, WorkbenchCore as A, WorkbenchCommandPaletteOpenInput as Ai, RendererReadBinding as An, NavigationTreeOwner as Ar, WorkbenchOverlayContribution as At, createWorkbenchInput as B, WorkbenchBreadcrumbItem as Bi, FileRendererSaveResult as Bn, TreeRendererContribution as Br, WorkbenchOwnedPlacementItem as Bt, WorkbenchModeActivationContext as C, NavigationRegistry as Ci, WorkbenchReactViewBody as Cn, ControlsQueryResult$1 as Cr, PreferenceScope as Ct, WorkbenchModeContribution as D, NavigationTargetItem as Di, WorkbenchViewRegistryStoreState as Dn, ControlsUpdateValueInput as Dr, WorkbenchShellPlacementRegistry as Dt, WorkbenchModeAddablePanelContext as E, NavigationTargetCompound as Ei, WorkbenchViewRegistry as En, ControlsResetInput as Er, WorkbenchShellPlacementContribution as Et, WorkbenchModuleContributionContext as F, CommandParamSchema as Fi, KanbanRendererQueryState as Fn, TreeMoveEndpoint as Fr, WorkbenchNotificationAction as Ft, ThemePreferenceTokens as G, ResourceRef$1 as Gi, DataTableRendererContribution as Gn, MenuItem as Gr, CommandPaletteResourceProvider as Gt, ThemePreference as H, ResourceKindContribution as Hi, DataTableRendererColumn as Hn, TreeRendererState as Hr, KeybindingRegistry as Ht, WorkbenchPagePersistenceScope as I, CommandRegistry as Ii, FileRendererContent as In, TreeMovePolicy as Ir, WorkbenchNotificationEvent as It, FileIconThemePreferenceOption as J, createWorkbenchSelectionResourceMetadata as Ji, DataTableRendererRow as Jn, RegisteredMenuItem as Jr, CommandPaletteResourceRegistry as Jt, FileIconThemeRegistry as K, ResourceRegistry as Ki, DataTableRendererQueryContext as Kn, MenuPath as Kr, CommandPaletteResourceProviderResult as Kt, WorkbenchPagePersistenceScopeInput as L, WorkbenchCommandExecutionContext as Li, FileRendererContribution as Ln, TreeNode as Lr, WorkbenchNotificationLevel as Lt, WorkbenchHost as M, CommandHandler as Mi, RendererReadRequest as Mn, NavigationTreeSlot as Mr, NotificationRegistry as Mt, WorkbenchModuleContext as N, CommandParamDescriptor as Ni, createRendererReadRegistry as Nn, TreeAction as Nr, RegisteredWorkbenchNotification as Nt, WorkbenchModeRegistry as O, NavigationTargetPanel$1 as Oi, createViewRegistry as On, NavigationTreeContext as Or, WorkbenchPlaceholderContribution as Ot, WorkbenchModuleContribution as P, CommandParamOption as Pi, KanbanRendererContribution as Pn, TreeContext as Pr, WorkbenchNotification as Pt, WorkflowStatus as Q, workbenchResourceOwnerContextKey as Qi, RegisteredDataTableRendererContribution as Qn, RegisteredPlaceholderContribution as Qr, WorkbenchTerminalSessionError as Qt, WorkbenchPersistenceAdapter as R, WorkbenchCommandExecutionError as Ri, FileRendererRefreshEnvelope as Rn, TreeNodeInlineInput as Rr, WorkbenchModePlacementContribution as Rt, isWorkbenchModePanelAvailable as S, NavigationParser as Si, RegisteredWorkbenchView as Sn, ControlsApplyInput as Sr, PreferenceSchemaContribution as St, WorkbenchModeAddablePanel as T, NavigationTargetCommand as Ti, WorkbenchViewContribution as Tn, ControlsRendererLayout as Tr, PreferenceValue as Tt, ThemePreferenceMode as U, ResourceListContext as Ui, DataTableRendererColumnRenderer as Un, TreeViewSection as Ur, KeybindingSequence as Ut, ThemeRegistry as V, ResourceBrowseEntry as Vi, DataTableRendererBadgePalette as Vn, TreeRendererPersistenceAdapter as Vr, Keybinding as Vt, ThemePreferenceOption as W, ResourceProvider as Wi, DataTableRendererColumnStat as Wn, WorkbenchPanelRenderInput as Wr, getKeybindingSteps as Wt, WorkbenchStatusRegistryState as X, workbenchResourceIdContextKey as Xi, DataTableRendererSelectionAction as Xn, WorkbenchFocusRegionId as Xr, WorkbenchTerminalController as Xt, WorkbenchStatusRegistry as Y, getWorkbenchSelectionResourceKeys as Yi, DataTableRendererRowAction as Yn, WorkbenchFocusController as Yr, CommandPaletteResourceResult as Yt, WorkbenchStatusSetContribution as Z, workbenchResourceMetadataContextKey as Zi, DataTableRendererThemeColor as Zn, LayoutPersistenceAdapter as Zr, WorkbenchTerminalSessionAdapter as Zt, AnchorId as _, WorkbenchPanelRegion as _i, WorkbenchPageNavigationResult as _n, KanbanRendererSettings as _r, SettingsSectionContribution as _t, StandardResourceIcon as a, isWorkbenchViewHierarchyNode as aa, WorkbenchRegionSize as ai, WorkbenchTerminalState as an, BoardColumnConfig as ar, WorkbenchStatusBarRegistryState as at, createLevelNavigation as b, workbenchRegions as bi, WorkbenchViewMenuContribution as bn, ResourceContextAction as br, PreferencePropertySchema as bt, dockedWorkbenchRegions as c, ContributionSource as ca, WorkbenchTabMenuGroup as ci, WorkbenchShellRegionState as cn, CollectionViewsSource as cr, CollectionSettingsPanel as ct, resourceContextMenuPath as d, ContextKeyValue as da, WorkbenchTabRetention as di, PersistedWorkbenchPageLocation as dn, EnumOptionsSource as dr, SettingsCollectionGroupBy as dt, workbenchSelectionResourceKeyMetadataKey as ea, WorkbenchCommandTarget as ei, WorkbenchTerminalSessionModel as en, AttributeDisplayDescriptor as er, createStatusRegistry as et, workbenchCommandPaletteMenuPath as f, matchesContextExpression as fa, WorkbenchTabSnapshot as fi, WorkbenchPageBrowserEntry as fn, KanbanRendererCreateField as fr, SettingsPanelBase as ft, workbenchTopHeaderTrailingMenuPath as g, WorkbenchPanelMenuSide as gi, WorkbenchPageLocationPersistence as gn, KanbanRendererRow as gr, SettingsScope as gt, workbenchTopHeaderLeadingMenuPath as h, WorkbenchPanelMenuRegion as hi, WorkbenchPageLocationDiagnostic as hn, KanbanRendererCreateSubmission as hr, SettingsRegistry as ht, rendererReadKey as i, WorkbenchViewHierarchyNode as ia, WorkbenchPanelTab as ii, WorkbenchTerminalSessionStatus as in, BoardColumnAction as ir, WorkbenchStatusBarRegistry as it, WorkbenchCoreContributionContext as j, Command as ji, RendererReadRegistry as jn, NavigationTreeRegistry as jr, WorkbenchOverlayRegistry as jt, createWorkbench as k, WorkbenchCommandPaletteController as ki, workbenchViewIdContextKey as kn, NavigationTreeContribution as kr, WorkbenchPlaceholderRegistry as kt, headerLeadingMenuPath as l, ContextKeyScope as la, WorkbenchTabMenuRow as li, WorkbenchSidePanelPresentation as ln, EnumOption as lr, SchemaSettingsPanel as lt, workbenchRegionTabLeadingMenuPath as m, Disposable as ma, WorkbenchWidgetTab as mi, WorkbenchPageLocationController as mn, KanbanRendererCreateRowConfig as mr, SettingsPanelPreference as mt, runUserAction as n, ResourceHierarchyProvider as na, WorkbenchPanelInstance as ni, WorkbenchTerminalSessionRequest as nn, AttributeType as nr, WorkbenchStatusBarPersistenceAdapter as nt, standardResourceIcons as o, resourceHierarchyCycleCode as oa, WorkbenchSidePanelMode as oi, WorkbenchShellController as on, CollectionSavedView as or, WorkbenchStatusBarSlot as ot, workbenchRegionTabAddMenuPath as p, WorkbenchStore as pa, WorkbenchWidgetPlacement as pi, WorkbenchPageLocationBrowser as pn, KanbanRendererCreateFieldType as pr, SettingsPanelContribution as pt, FileIconThemeFont as q, createWorkbenchResourceContextValues as qi, DataTableRendererQueryResult as qn, MenuRegistry as qr, CommandPaletteResourceQueryContext as qt, settleReadBatch as r, WorkbenchHierarchyNode as ra, WorkbenchPanelMountStrategy as ri, WorkbenchTerminalSessionSink as rn, AttributesSource as rr, WorkbenchStatusBarPosition as rt, DockedWorkbenchRegion$1 as s, ContributionMetadata as sa, WorkbenchTabAction as si, WorkbenchShellOpenRegion as sn, CollectionViewsProvider as sr, createStatusBarRegistry as st, batchWorkbenchChanges as t, ResourceHierarchyCycle as ta, WorkbenchLayout as ti, WorkbenchTerminalSessionOpener as tn, AttributeKind as tr, WorkbenchStatusBarItem as tt, headerTrailingMenuPath as u, ContextKeyService as ua, WorkbenchTabPosition as ui, WorkbenchPanelMenuStatePersistenceAdapter as un, EnumOptions as ur, SettingsAction as ut, resolveAnchorRegion as v, WorkbenchRegion as vi, WorkbenchPageContribution as vn, KanbanRendererViewsProvider as vr, ViewSettingsPanel as vt, WorkbenchModeActivationResult as w, NavigationTarget$1 as wi, WorkbenchViewBody as wn, ControlsRendererContribution as wr, PreferenceScopeRef as wt, getWorkbenchModePanelForRegion as x, NavigationDispatcherContext as xi, WorkbenchViewMenuRegistry as xn, ViewMode as xr, PreferenceRegistry as xt, defaultPageResourceCodec as y, workbenchPanelRegions as yi, WorkbenchPlacementPresentation as yn, KanbanRendererViewsSource as yr, PreferencePersistenceAdapter as yt, WorkbenchSnapshot as z, WorkbenchBreadcrumbController as zi, FileRendererRefreshOrigin as zn, TreeQueryContext as zr, WorkbenchModePlacementRegistry as zt };
|
|
2457
2484
|
export {};
|