@singapore-editor/minimap 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -0
- package/dist/assets/minimap.worker-i4S59IOV.js +1616 -0
- package/dist/assets/minimap.worker-i4S59IOV.js.map +1 -0
- package/dist/color.d.ts +11 -0
- package/dist/color.d.ts.map +1 -0
- package/dist/color.js +83 -0
- package/dist/color.js.map +1 -0
- package/dist/decorationMerge.d.ts +10 -0
- package/dist/decorationMerge.d.ts.map +1 -0
- package/dist/decorationMerge.js +65 -0
- package/dist/decorationMerge.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/layout.d.ts +43 -0
- package/dist/layout.d.ts.map +1 -0
- package/dist/layout.js +137 -0
- package/dist/layout.js.map +1 -0
- package/dist/minimap.worker.d.ts +2 -0
- package/dist/minimap.worker.d.ts.map +1 -0
- package/dist/minimapCharRenderer.d.ts +13 -0
- package/dist/minimapCharRenderer.d.ts.map +1 -0
- package/dist/minimapCharRendererFactory.d.ts +14 -0
- package/dist/minimapCharRendererFactory.d.ts.map +1 -0
- package/dist/minimapCharSheet.d.ts +15 -0
- package/dist/minimapCharSheet.d.ts.map +1 -0
- package/dist/minimapCharSheet.js +24 -0
- package/dist/minimapCharSheet.js.map +1 -0
- package/dist/options.d.ts +3 -0
- package/dist/options.d.ts.map +1 -0
- package/dist/options.js +65 -0
- package/dist/options.js.map +1 -0
- package/dist/plugin.d.ts +4 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +415 -0
- package/dist/plugin.js.map +1 -0
- package/dist/raster.d.ts +10 -0
- package/dist/raster.d.ts.map +1 -0
- package/dist/renderer.d.ts +58 -0
- package/dist/renderer.d.ts.map +1 -0
- package/dist/sectionHeaders.d.ts +13 -0
- package/dist/sectionHeaders.d.ts.map +1 -0
- package/dist/style.css +97 -0
- package/dist/types.d.ts +211 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +11 -0
- package/dist/types.js.map +1 -0
- package/dist/viewportGeometry.d.ts +28 -0
- package/dist/viewportGeometry.d.ts.map +1 -0
- package/dist/viewportGeometry.js +22 -0
- package/dist/viewportGeometry.js.map +1 -0
- package/dist/workerClient.d.ts +131 -0
- package/dist/workerClient.d.ts.map +1 -0
- package/dist/workerClient.js +1337 -0
- package/dist/workerClient.js.map +1 -0
- package/package.json +50 -0
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import type { TextEdit } from '@singapore-editor/core/document';
|
|
2
|
+
import type { EditorMinimapDecoration as CoreEditorMinimapDecoration, EditorMinimapDecorationPosition as CoreEditorMinimapDecorationPosition, EditorMinimapSectionHeaderStyle as CoreEditorMinimapSectionHeaderStyle } from '@singapore-editor/core/extensions';
|
|
3
|
+
export declare const enum RenderMinimap {
|
|
4
|
+
None = 0,
|
|
5
|
+
Text = 1,
|
|
6
|
+
Blocks = 2
|
|
7
|
+
}
|
|
8
|
+
export type MinimapSide = 'left' | 'right';
|
|
9
|
+
export type MinimapSize = 'proportional' | 'fill' | 'fit';
|
|
10
|
+
export type MinimapSliderVisibility = 'always' | 'mouseover';
|
|
11
|
+
export type MinimapAutohide = 'none' | 'mouseover' | 'scroll';
|
|
12
|
+
export type MinimapDecorationPosition = CoreEditorMinimapDecorationPosition;
|
|
13
|
+
export type MinimapSectionHeaderStyle = CoreEditorMinimapSectionHeaderStyle;
|
|
14
|
+
export type RGBA8 = {
|
|
15
|
+
readonly r: number;
|
|
16
|
+
readonly g: number;
|
|
17
|
+
readonly b: number;
|
|
18
|
+
readonly a: number;
|
|
19
|
+
};
|
|
20
|
+
export type EditorMinimapOptions = {
|
|
21
|
+
readonly enabled?: boolean;
|
|
22
|
+
readonly autohide?: MinimapAutohide;
|
|
23
|
+
readonly side?: MinimapSide;
|
|
24
|
+
readonly size?: MinimapSize;
|
|
25
|
+
readonly showSlider?: MinimapSliderVisibility;
|
|
26
|
+
readonly renderCharacters?: boolean;
|
|
27
|
+
readonly maxColumn?: number;
|
|
28
|
+
readonly scale?: number;
|
|
29
|
+
readonly showRegionSectionHeaders?: boolean;
|
|
30
|
+
readonly showMarkSectionHeaders?: boolean;
|
|
31
|
+
readonly markSectionHeaderRegex?: string;
|
|
32
|
+
readonly sectionHeaderFontSize?: number;
|
|
33
|
+
readonly sectionHeaderLetterSpacing?: number;
|
|
34
|
+
};
|
|
35
|
+
export type ResolvedMinimapOptions = {
|
|
36
|
+
readonly enabled: boolean;
|
|
37
|
+
readonly autohide: MinimapAutohide;
|
|
38
|
+
readonly side: MinimapSide;
|
|
39
|
+
readonly size: MinimapSize;
|
|
40
|
+
readonly showSlider: MinimapSliderVisibility;
|
|
41
|
+
readonly renderCharacters: boolean;
|
|
42
|
+
readonly maxColumn: number;
|
|
43
|
+
readonly scale: number;
|
|
44
|
+
readonly showRegionSectionHeaders: boolean;
|
|
45
|
+
readonly showMarkSectionHeaders: boolean;
|
|
46
|
+
readonly markSectionHeaderRegex: string;
|
|
47
|
+
readonly sectionHeaderFontSize: number;
|
|
48
|
+
readonly sectionHeaderLetterSpacing: number;
|
|
49
|
+
};
|
|
50
|
+
export type EditorMinimapDecoration = CoreEditorMinimapDecoration;
|
|
51
|
+
export type MinimapToken = {
|
|
52
|
+
readonly start: number;
|
|
53
|
+
readonly end: number;
|
|
54
|
+
readonly color: RGBA8;
|
|
55
|
+
};
|
|
56
|
+
export type MinimapTokenPatch = {
|
|
57
|
+
readonly start: number;
|
|
58
|
+
readonly deleteCount: number;
|
|
59
|
+
readonly tokens: readonly MinimapToken[];
|
|
60
|
+
};
|
|
61
|
+
export type MinimapSelection = {
|
|
62
|
+
readonly startOffset: number;
|
|
63
|
+
readonly endOffset: number;
|
|
64
|
+
};
|
|
65
|
+
export type MinimapViewport = {
|
|
66
|
+
readonly scrollTop: number;
|
|
67
|
+
readonly scrollRow: number;
|
|
68
|
+
readonly scrollLeft: number;
|
|
69
|
+
readonly scrollHeight: number;
|
|
70
|
+
readonly scrollWidth: number;
|
|
71
|
+
readonly clientHeight: number;
|
|
72
|
+
readonly clientWidth: number;
|
|
73
|
+
readonly minimapHeight: number;
|
|
74
|
+
/**
|
|
75
|
+
* The overlay lane the minimap already holds. `clientWidth` is the content box, which
|
|
76
|
+
* excludes it, so layout adds it back: a minimap sized from the space left after itself
|
|
77
|
+
* is a feedback loop, and integer rounding parks it in a one-pixel two-frame cycle.
|
|
78
|
+
*/
|
|
79
|
+
readonly reservedWidth: number;
|
|
80
|
+
/** Zero-based document-line bounds, end exclusive. */
|
|
81
|
+
readonly visibleStart: number;
|
|
82
|
+
readonly visibleEnd: number;
|
|
83
|
+
};
|
|
84
|
+
export type MinimapMetrics = {
|
|
85
|
+
readonly rowHeight: number;
|
|
86
|
+
readonly characterWidth: number;
|
|
87
|
+
readonly devicePixelRatio: number;
|
|
88
|
+
};
|
|
89
|
+
type MinimapDocumentLineSummary = {
|
|
90
|
+
readonly text: string;
|
|
91
|
+
readonly length: number;
|
|
92
|
+
};
|
|
93
|
+
export type MinimapDocumentSummaryPayload = {
|
|
94
|
+
readonly textLength: number;
|
|
95
|
+
readonly lineStarts: readonly number[];
|
|
96
|
+
readonly lines: readonly MinimapDocumentLineSummary[];
|
|
97
|
+
};
|
|
98
|
+
export type MinimapDocumentSummaryPatch = {
|
|
99
|
+
readonly textLength: number;
|
|
100
|
+
readonly lineStarts?: readonly number[];
|
|
101
|
+
readonly startLine: number;
|
|
102
|
+
readonly deleteCount: number;
|
|
103
|
+
readonly lines: readonly MinimapDocumentLineSummary[];
|
|
104
|
+
};
|
|
105
|
+
export type MinimapDocumentPayload = MinimapDocumentSummaryPayload & {
|
|
106
|
+
readonly tokens: readonly MinimapToken[];
|
|
107
|
+
readonly selections: readonly MinimapSelection[];
|
|
108
|
+
readonly decorations: readonly EditorMinimapDecoration[];
|
|
109
|
+
readonly externalDecorations?: readonly EditorMinimapDecoration[];
|
|
110
|
+
};
|
|
111
|
+
export type MinimapDocumentEditPayload = {
|
|
112
|
+
readonly selections: readonly MinimapSelection[];
|
|
113
|
+
readonly summaryPatch: MinimapDocumentSummaryPatch;
|
|
114
|
+
};
|
|
115
|
+
export type MinimapRenderLayout = {
|
|
116
|
+
readonly width: number;
|
|
117
|
+
readonly height: number;
|
|
118
|
+
readonly canvasInnerWidth: number;
|
|
119
|
+
readonly canvasInnerHeight: number;
|
|
120
|
+
readonly canvasOuterWidth: number;
|
|
121
|
+
readonly canvasOuterHeight: number;
|
|
122
|
+
readonly lineHeight: number;
|
|
123
|
+
readonly charWidth: number;
|
|
124
|
+
readonly scale: number;
|
|
125
|
+
readonly isSampling: boolean;
|
|
126
|
+
readonly heightIsEditorHeight: boolean;
|
|
127
|
+
readonly renderMinimap: RenderMinimap;
|
|
128
|
+
};
|
|
129
|
+
type MinimapWorkerInitRequest = {
|
|
130
|
+
readonly type: 'init';
|
|
131
|
+
readonly options: ResolvedMinimapOptions;
|
|
132
|
+
readonly baseStyles: MinimapBaseStyles;
|
|
133
|
+
readonly mainCanvas: OffscreenCanvas;
|
|
134
|
+
readonly decorationsCanvas: OffscreenCanvas;
|
|
135
|
+
};
|
|
136
|
+
export type MinimapBaseStyles = {
|
|
137
|
+
readonly foreground: RGBA8;
|
|
138
|
+
readonly background: RGBA8;
|
|
139
|
+
readonly minimapBackground: RGBA8;
|
|
140
|
+
readonly foregroundOpacity: number;
|
|
141
|
+
readonly selection: RGBA8;
|
|
142
|
+
readonly slider: string;
|
|
143
|
+
readonly sliderHover: string;
|
|
144
|
+
readonly sliderActive: string;
|
|
145
|
+
readonly fontFamily: string;
|
|
146
|
+
};
|
|
147
|
+
export type MinimapWorkerRequest = MinimapWorkerInitRequest | {
|
|
148
|
+
readonly type: 'updateBaseStyles';
|
|
149
|
+
readonly baseStyles: MinimapBaseStyles;
|
|
150
|
+
} | {
|
|
151
|
+
readonly type: 'openDocument';
|
|
152
|
+
readonly document: MinimapDocumentPayload;
|
|
153
|
+
} | {
|
|
154
|
+
readonly type: 'replaceDocument';
|
|
155
|
+
readonly document: MinimapDocumentPayload;
|
|
156
|
+
} | {
|
|
157
|
+
readonly type: 'applyEdit';
|
|
158
|
+
readonly edit: TextEdit;
|
|
159
|
+
readonly document: MinimapDocumentEditPayload;
|
|
160
|
+
} | {
|
|
161
|
+
readonly type: 'applyEdits';
|
|
162
|
+
readonly edits: readonly TextEdit[];
|
|
163
|
+
readonly document: MinimapDocumentEditPayload;
|
|
164
|
+
} | {
|
|
165
|
+
readonly type: 'updateTokens';
|
|
166
|
+
readonly tokens: readonly MinimapToken[];
|
|
167
|
+
} | {
|
|
168
|
+
readonly type: 'updateTokenRange';
|
|
169
|
+
readonly patch: MinimapTokenPatch;
|
|
170
|
+
} | {
|
|
171
|
+
readonly type: 'updateSelection';
|
|
172
|
+
readonly selections: readonly MinimapSelection[];
|
|
173
|
+
} | {
|
|
174
|
+
readonly type: 'updateDecorations';
|
|
175
|
+
readonly decorations: readonly EditorMinimapDecoration[];
|
|
176
|
+
} | {
|
|
177
|
+
readonly type: 'updateExternalDecorations';
|
|
178
|
+
readonly decorations: readonly EditorMinimapDecoration[];
|
|
179
|
+
} | {
|
|
180
|
+
readonly type: 'updateLayout';
|
|
181
|
+
readonly metrics: MinimapMetrics;
|
|
182
|
+
readonly viewport: MinimapViewport;
|
|
183
|
+
} | {
|
|
184
|
+
readonly type: 'updateViewport';
|
|
185
|
+
readonly viewport: MinimapViewport;
|
|
186
|
+
} | {
|
|
187
|
+
readonly type: 'render';
|
|
188
|
+
readonly sequence: number;
|
|
189
|
+
} | {
|
|
190
|
+
readonly type: 'dispose';
|
|
191
|
+
};
|
|
192
|
+
export type MinimapWorkerResponse = {
|
|
193
|
+
readonly type: 'layout';
|
|
194
|
+
readonly sequence: number;
|
|
195
|
+
readonly layout: MinimapRenderLayout;
|
|
196
|
+
} | {
|
|
197
|
+
readonly type: 'disposed';
|
|
198
|
+
} | {
|
|
199
|
+
readonly type: 'rendered';
|
|
200
|
+
readonly sequence: number;
|
|
201
|
+
readonly sliderNeeded: boolean;
|
|
202
|
+
readonly sliderTop: number;
|
|
203
|
+
readonly sliderHeight: number;
|
|
204
|
+
readonly shadowVisible: boolean;
|
|
205
|
+
} | {
|
|
206
|
+
readonly type: 'error';
|
|
207
|
+
readonly sequence?: number;
|
|
208
|
+
readonly message: string;
|
|
209
|
+
};
|
|
210
|
+
export {};
|
|
211
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
//#region src/types.ts
|
|
2
|
+
var RenderMinimap = /* @__PURE__ */ function(RenderMinimap) {
|
|
3
|
+
RenderMinimap[RenderMinimap["None"] = 0] = "None";
|
|
4
|
+
RenderMinimap[RenderMinimap["Text"] = 1] = "Text";
|
|
5
|
+
RenderMinimap[RenderMinimap["Blocks"] = 2] = "Blocks";
|
|
6
|
+
return RenderMinimap;
|
|
7
|
+
}({});
|
|
8
|
+
//#endregion
|
|
9
|
+
export { RenderMinimap };
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../src/types.ts"],"sourcesContent":["import type { TextEdit } from '@singapore-editor/core/document'\nimport type {\n EditorMinimapDecoration as CoreEditorMinimapDecoration,\n EditorMinimapDecorationPosition as CoreEditorMinimapDecorationPosition,\n EditorMinimapSectionHeaderStyle as CoreEditorMinimapSectionHeaderStyle,\n} from '@singapore-editor/core/extensions'\n\nexport const enum RenderMinimap {\n None = 0,\n Text = 1,\n Blocks = 2,\n}\n\nexport type MinimapSide = 'left' | 'right'\nexport type MinimapSize = 'proportional' | 'fill' | 'fit'\nexport type MinimapSliderVisibility = 'always' | 'mouseover'\nexport type MinimapAutohide = 'none' | 'mouseover' | 'scroll'\nexport type MinimapDecorationPosition = CoreEditorMinimapDecorationPosition\nexport type MinimapSectionHeaderStyle = CoreEditorMinimapSectionHeaderStyle\n\nexport type RGBA8 = {\n readonly r: number\n readonly g: number\n readonly b: number\n readonly a: number\n}\n\nexport type EditorMinimapOptions = {\n readonly enabled?: boolean\n readonly autohide?: MinimapAutohide\n readonly side?: MinimapSide\n readonly size?: MinimapSize\n readonly showSlider?: MinimapSliderVisibility\n readonly renderCharacters?: boolean\n readonly maxColumn?: number\n readonly scale?: number\n readonly showRegionSectionHeaders?: boolean\n readonly showMarkSectionHeaders?: boolean\n readonly markSectionHeaderRegex?: string\n readonly sectionHeaderFontSize?: number\n readonly sectionHeaderLetterSpacing?: number\n}\n\nexport type ResolvedMinimapOptions = {\n readonly enabled: boolean\n readonly autohide: MinimapAutohide\n readonly side: MinimapSide\n readonly size: MinimapSize\n readonly showSlider: MinimapSliderVisibility\n readonly renderCharacters: boolean\n readonly maxColumn: number\n readonly scale: number\n readonly showRegionSectionHeaders: boolean\n readonly showMarkSectionHeaders: boolean\n readonly markSectionHeaderRegex: string\n readonly sectionHeaderFontSize: number\n readonly sectionHeaderLetterSpacing: number\n}\n\nexport type EditorMinimapDecoration = CoreEditorMinimapDecoration\n\nexport type MinimapToken = {\n readonly start: number\n readonly end: number\n readonly color: RGBA8\n}\n\nexport type MinimapTokenPatch = {\n readonly start: number\n readonly deleteCount: number\n readonly tokens: readonly MinimapToken[]\n}\n\nexport type MinimapSelection = {\n readonly startOffset: number\n readonly endOffset: number\n}\n\nexport type MinimapViewport = {\n readonly scrollTop: number\n readonly scrollRow: number\n readonly scrollLeft: number\n readonly scrollHeight: number\n readonly scrollWidth: number\n readonly clientHeight: number\n readonly clientWidth: number\n readonly minimapHeight: number\n /**\n * The overlay lane the minimap already holds. `clientWidth` is the content box, which\n * excludes it, so layout adds it back: a minimap sized from the space left after itself\n * is a feedback loop, and integer rounding parks it in a one-pixel two-frame cycle.\n */\n readonly reservedWidth: number\n /** Zero-based document-line bounds, end exclusive. */\n readonly visibleStart: number\n readonly visibleEnd: number\n}\n\nexport type MinimapMetrics = {\n readonly rowHeight: number\n readonly characterWidth: number\n readonly devicePixelRatio: number\n}\n\ntype MinimapDocumentLineSummary = {\n readonly text: string\n readonly length: number\n}\n\nexport type MinimapDocumentSummaryPayload = {\n readonly textLength: number\n readonly lineStarts: readonly number[]\n readonly lines: readonly MinimapDocumentLineSummary[]\n}\n\nexport type MinimapDocumentSummaryPatch = {\n readonly textLength: number\n // Omitted for incremental edits: cloning a full line-start array per\n // keystroke dominates main-thread cost on large documents. The worker\n // splices its own copy from startLine/deleteCount/lines instead.\n readonly lineStarts?: readonly number[]\n readonly startLine: number\n readonly deleteCount: number\n readonly lines: readonly MinimapDocumentLineSummary[]\n}\n\nexport type MinimapDocumentPayload = MinimapDocumentSummaryPayload & {\n readonly tokens: readonly MinimapToken[]\n readonly selections: readonly MinimapSelection[]\n readonly decorations: readonly EditorMinimapDecoration[]\n readonly externalDecorations?: readonly EditorMinimapDecoration[]\n}\n\nexport type MinimapDocumentEditPayload = {\n readonly selections: readonly MinimapSelection[]\n readonly summaryPatch: MinimapDocumentSummaryPatch\n}\n\nexport type MinimapRenderLayout = {\n readonly width: number\n readonly height: number\n readonly canvasInnerWidth: number\n readonly canvasInnerHeight: number\n readonly canvasOuterWidth: number\n readonly canvasOuterHeight: number\n readonly lineHeight: number\n readonly charWidth: number\n readonly scale: number\n readonly isSampling: boolean\n readonly heightIsEditorHeight: boolean\n readonly renderMinimap: RenderMinimap\n}\n\ntype MinimapWorkerInitRequest = {\n readonly type: 'init'\n readonly options: ResolvedMinimapOptions\n readonly baseStyles: MinimapBaseStyles\n readonly mainCanvas: OffscreenCanvas\n readonly decorationsCanvas: OffscreenCanvas\n}\n\nexport type MinimapBaseStyles = {\n readonly foreground: RGBA8\n readonly background: RGBA8\n readonly minimapBackground: RGBA8\n readonly foregroundOpacity: number\n readonly selection: RGBA8\n readonly slider: string\n readonly sliderHover: string\n readonly sliderActive: string\n readonly fontFamily: string\n}\n\nexport type MinimapWorkerRequest =\n | MinimapWorkerInitRequest\n | { readonly type: 'updateBaseStyles'; readonly baseStyles: MinimapBaseStyles }\n | { readonly type: 'openDocument'; readonly document: MinimapDocumentPayload }\n | { readonly type: 'replaceDocument'; readonly document: MinimapDocumentPayload }\n | {\n readonly type: 'applyEdit'\n readonly edit: TextEdit\n readonly document: MinimapDocumentEditPayload\n }\n | {\n readonly type: 'applyEdits'\n readonly edits: readonly TextEdit[]\n readonly document: MinimapDocumentEditPayload\n }\n | { readonly type: 'updateTokens'; readonly tokens: readonly MinimapToken[] }\n | { readonly type: 'updateTokenRange'; readonly patch: MinimapTokenPatch }\n | { readonly type: 'updateSelection'; readonly selections: readonly MinimapSelection[] }\n | { readonly type: 'updateDecorations'; readonly decorations: readonly EditorMinimapDecoration[] }\n | {\n readonly type: 'updateExternalDecorations'\n readonly decorations: readonly EditorMinimapDecoration[]\n }\n | {\n readonly type: 'updateLayout'\n readonly metrics: MinimapMetrics\n readonly viewport: MinimapViewport\n }\n | { readonly type: 'updateViewport'; readonly viewport: MinimapViewport }\n | { readonly type: 'render'; readonly sequence: number }\n | { readonly type: 'dispose' }\n\nexport type MinimapWorkerResponse =\n | { readonly type: 'layout'; readonly sequence: number; readonly layout: MinimapRenderLayout }\n | { readonly type: 'disposed' }\n | {\n readonly type: 'rendered'\n readonly sequence: number\n readonly sliderNeeded: boolean\n readonly sliderTop: number\n readonly sliderHeight: number\n readonly shadowVisible: boolean\n }\n | { readonly type: 'error'; readonly sequence?: number; readonly message: string }\n"],"mappings":";AAOA,IAAkB,gBAAX,yBAAA,eAAA;CACL,cAAA,cAAA,UAAA,KAAA;CACA,cAAA,cAAA,UAAA,KAAA;CACA,cAAA,cAAA,YAAA,KAAA;;AACF,EAAA,CAAA,CAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export type MinimapScrollGeometry = {
|
|
2
|
+
readonly width: number;
|
|
3
|
+
readonly height: number;
|
|
4
|
+
readonly clientWidth: number;
|
|
5
|
+
readonly clientHeight: number;
|
|
6
|
+
readonly borders: {
|
|
7
|
+
readonly left: number;
|
|
8
|
+
readonly right: number;
|
|
9
|
+
readonly top: number;
|
|
10
|
+
readonly bottom: number;
|
|
11
|
+
};
|
|
12
|
+
readonly overlayScrollbars: {
|
|
13
|
+
readonly vertical: number;
|
|
14
|
+
readonly horizontal: number;
|
|
15
|
+
};
|
|
16
|
+
readonly overflowsX: boolean;
|
|
17
|
+
readonly overflowsY: boolean;
|
|
18
|
+
};
|
|
19
|
+
export declare function minimapViewportGeometry(side: 'left' | 'right', minimapWidth: number, scroll: MinimapScrollGeometry): {
|
|
20
|
+
reservedWidth: number;
|
|
21
|
+
top: number;
|
|
22
|
+
left: number;
|
|
23
|
+
right: number;
|
|
24
|
+
height: number;
|
|
25
|
+
verticalScrollbar: number;
|
|
26
|
+
horizontalScrollbar: number;
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=viewportGeometry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewportGeometry.d.ts","sourceRoot":"","sources":["../src/viewportGeometry.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;QACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;QACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;QACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KACxB,CAAA;IACD,QAAQ,CAAC,iBAAiB,EAAE;QAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAA;IACtF,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;CAC7B,CAAA;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,GAAG,OAAO,EACtB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,qBAAqB;;;;;;;;EAkB9B"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
//#region src/viewportGeometry.ts
|
|
2
|
+
function minimapViewportGeometry(side, minimapWidth, scroll) {
|
|
3
|
+
const { width, height, clientWidth, clientHeight, borders, overlayScrollbars } = scroll;
|
|
4
|
+
const allocatedVertical = Math.max(0, width - clientWidth - borders.left - borders.right);
|
|
5
|
+
const allocatedHorizontal = Math.max(0, height - clientHeight - borders.top - borders.bottom);
|
|
6
|
+
const vertical = allocatedVertical || (scroll.overflowsY ? overlayScrollbars.vertical : 0);
|
|
7
|
+
const horizontal = allocatedHorizontal || (scroll.overflowsX ? overlayScrollbars.horizontal : 0);
|
|
8
|
+
const extraRight = side === "right" ? Math.max(0, vertical - allocatedVertical) : 0;
|
|
9
|
+
return {
|
|
10
|
+
reservedWidth: Math.ceil(minimapWidth + extraRight),
|
|
11
|
+
top: borders.top,
|
|
12
|
+
left: borders.left,
|
|
13
|
+
right: borders.right + vertical,
|
|
14
|
+
height: Math.max(0, clientHeight - Math.max(0, horizontal - allocatedHorizontal)),
|
|
15
|
+
verticalScrollbar: vertical,
|
|
16
|
+
horizontalScrollbar: horizontal
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
//#endregion
|
|
20
|
+
export { minimapViewportGeometry };
|
|
21
|
+
|
|
22
|
+
//# sourceMappingURL=viewportGeometry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewportGeometry.js","names":[],"sources":["../src/viewportGeometry.ts"],"sourcesContent":["export type MinimapScrollGeometry = {\n readonly width: number\n readonly height: number\n readonly clientWidth: number\n readonly clientHeight: number\n readonly borders: {\n readonly left: number\n readonly right: number\n readonly top: number\n readonly bottom: number\n }\n readonly overlayScrollbars: { readonly vertical: number; readonly horizontal: number }\n readonly overflowsX: boolean\n readonly overflowsY: boolean\n}\n\nexport function minimapViewportGeometry(\n side: 'left' | 'right',\n minimapWidth: number,\n scroll: MinimapScrollGeometry,\n) {\n const { width, height, clientWidth, clientHeight, borders, overlayScrollbars } = scroll\n const allocatedVertical = Math.max(0, width - clientWidth - borders.left - borders.right)\n const allocatedHorizontal = Math.max(0, height - clientHeight - borders.top - borders.bottom)\n const vertical = allocatedVertical || (scroll.overflowsY ? overlayScrollbars.vertical : 0)\n const horizontal = allocatedHorizontal || (scroll.overflowsX ? overlayScrollbars.horizontal : 0)\n const extraRight = side === 'right' ? Math.max(0, vertical - allocatedVertical) : 0\n const reservedWidth = Math.ceil(minimapWidth + extraRight)\n return {\n reservedWidth,\n top: borders.top,\n left: borders.left,\n right: borders.right + vertical,\n height: Math.max(0, clientHeight - Math.max(0, horizontal - allocatedHorizontal)),\n verticalScrollbar: vertical,\n horizontalScrollbar: horizontal,\n }\n}\n"],"mappings":";AAgBA,SAAgB,wBACd,MACA,cACA,QACA;CACA,MAAM,EAAE,OAAO,QAAQ,aAAa,cAAc,SAAS,sBAAsB;CACjF,MAAM,oBAAoB,KAAK,IAAI,GAAG,QAAQ,cAAc,QAAQ,OAAO,QAAQ,KAAK;CACxF,MAAM,sBAAsB,KAAK,IAAI,GAAG,SAAS,eAAe,QAAQ,MAAM,QAAQ,MAAM;CAC5F,MAAM,WAAW,sBAAsB,OAAO,aAAa,kBAAkB,WAAW;CACxF,MAAM,aAAa,wBAAwB,OAAO,aAAa,kBAAkB,aAAa;CAC9F,MAAM,aAAa,SAAS,UAAU,KAAK,IAAI,GAAG,WAAW,iBAAiB,IAAI;CAElF,OAAO;EACL,eAFoB,KAAK,KAAK,eAAe,UAE7C;EACA,KAAK,QAAQ;EACb,MAAM,QAAQ;EACd,OAAO,QAAQ,QAAQ;EACvB,QAAQ,KAAK,IAAI,GAAG,eAAe,KAAK,IAAI,GAAG,aAAa,mBAAmB,CAAC;EAChF,mBAAmB;EACnB,qBAAqB;CACvB;AACF"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import type { EditorContributionChange, EditorMinimapDecoration, EditorViewportSnapshot, EditorViewSnapshot } from '@singapore-editor/core/extensions';
|
|
2
|
+
import type { MinimapWorkerRequest, MinimapWorkerResponse, ResolvedMinimapOptions } from './types';
|
|
3
|
+
export type MinimapHost = {
|
|
4
|
+
readonly root: HTMLDivElement;
|
|
5
|
+
readonly colorScope: HTMLElement;
|
|
6
|
+
readonly mainCanvas: HTMLCanvasElement;
|
|
7
|
+
readonly decorationsCanvas: HTMLCanvasElement;
|
|
8
|
+
readonly slider: HTMLDivElement;
|
|
9
|
+
readonly sliderHorizontal: HTMLDivElement;
|
|
10
|
+
readonly shadow: HTMLDivElement;
|
|
11
|
+
};
|
|
12
|
+
export type MinimapWorkerClientOptions = {
|
|
13
|
+
readonly host: MinimapHost;
|
|
14
|
+
readonly options: ResolvedMinimapOptions;
|
|
15
|
+
readonly snapshot: EditorViewSnapshot;
|
|
16
|
+
readonly decorations: readonly EditorMinimapDecoration[];
|
|
17
|
+
readonly onLayoutWidth: (width: number) => void;
|
|
18
|
+
readonly reservedLane: () => number;
|
|
19
|
+
};
|
|
20
|
+
export type MinimapWorkerLifecycleState = 'ready' | 'disposing' | 'disposed' | 'crashed';
|
|
21
|
+
export type MinimapWorkerOwnerSnapshot = {
|
|
22
|
+
readonly lifecycle: MinimapWorkerLifecycleState;
|
|
23
|
+
readonly postedRequests: number;
|
|
24
|
+
readonly disposalAcknowledged: boolean;
|
|
25
|
+
readonly lastError: string | null;
|
|
26
|
+
};
|
|
27
|
+
export type MinimapWorkerOwnerOptions = {
|
|
28
|
+
readonly onMessage: (response: MinimapWorkerResponse) => void;
|
|
29
|
+
readonly onError?: (error: Error) => void;
|
|
30
|
+
readonly workerFactory?: () => Worker;
|
|
31
|
+
};
|
|
32
|
+
export declare class MinimapWorkerOwner {
|
|
33
|
+
private readonly options;
|
|
34
|
+
private worker;
|
|
35
|
+
private lifecycle;
|
|
36
|
+
private postedRequests;
|
|
37
|
+
private disposalAcknowledged;
|
|
38
|
+
private lastError;
|
|
39
|
+
private disposalPromise;
|
|
40
|
+
private resolveDisposal;
|
|
41
|
+
private rejectDisposal;
|
|
42
|
+
constructor(options: MinimapWorkerOwnerOptions);
|
|
43
|
+
inspect(): MinimapWorkerOwnerSnapshot;
|
|
44
|
+
post(request: MinimapWorkerRequest, transfer?: Transferable[]): boolean;
|
|
45
|
+
dispose(): Promise<void>;
|
|
46
|
+
private createWorker;
|
|
47
|
+
private canPost;
|
|
48
|
+
private postToWorker;
|
|
49
|
+
private readonly handleWorkerMessage;
|
|
50
|
+
private readonly handleWorkerError;
|
|
51
|
+
private recordError;
|
|
52
|
+
private fail;
|
|
53
|
+
private finishDisposal;
|
|
54
|
+
private terminateWorker;
|
|
55
|
+
private clearDisposalHandlers;
|
|
56
|
+
}
|
|
57
|
+
export declare class MinimapWorkerClient {
|
|
58
|
+
private readonly host;
|
|
59
|
+
private readonly options;
|
|
60
|
+
private readonly workerOwner;
|
|
61
|
+
private readonly colorResolver;
|
|
62
|
+
private readonly scheduler;
|
|
63
|
+
private readonly onLayoutWidth;
|
|
64
|
+
private readonly reservedLane;
|
|
65
|
+
private externalDecorations;
|
|
66
|
+
private pendingUpdate;
|
|
67
|
+
private pendingUpdateReady;
|
|
68
|
+
private pendingRender;
|
|
69
|
+
private activeRenderToken;
|
|
70
|
+
private renderInFlight;
|
|
71
|
+
private latestBaseStyles;
|
|
72
|
+
private latestBaseStylesSignature;
|
|
73
|
+
private latestLayoutSignature;
|
|
74
|
+
private latestThemeSignature;
|
|
75
|
+
private latestSnapshot;
|
|
76
|
+
private latestViewport;
|
|
77
|
+
private postedViewport;
|
|
78
|
+
private latestFullDocumentSnapshot;
|
|
79
|
+
private workerDocumentState;
|
|
80
|
+
private latestTokenSource;
|
|
81
|
+
private disposed;
|
|
82
|
+
constructor(options: MinimapWorkerClientOptions);
|
|
83
|
+
inspectWorker(): MinimapWorkerOwnerSnapshot;
|
|
84
|
+
update(snapshot: EditorViewSnapshot, kind: string, change?: EditorContributionChange | null): void;
|
|
85
|
+
private queueUpdate;
|
|
86
|
+
updateViewport(viewport: EditorViewportSnapshot): void;
|
|
87
|
+
frameLayout(): import("./layout").MinimapFrameLayout;
|
|
88
|
+
setExternalDecorations(decorations: readonly EditorMinimapDecoration[]): void;
|
|
89
|
+
dispose(): void;
|
|
90
|
+
private init;
|
|
91
|
+
private scheduleFlush;
|
|
92
|
+
private scheduleFrameFlush;
|
|
93
|
+
private scheduleDeferredFlush;
|
|
94
|
+
private flushDeferredUpdate;
|
|
95
|
+
private flushPendingUpdate;
|
|
96
|
+
private flushPendingUpdateNow;
|
|
97
|
+
private postLayoutIfNeeded;
|
|
98
|
+
private postViewportIfNeeded;
|
|
99
|
+
private postUpdate;
|
|
100
|
+
private postEditUpdate;
|
|
101
|
+
private trackedDocumentPayload;
|
|
102
|
+
private postTokenUpdate;
|
|
103
|
+
private postFullTokenUpdate;
|
|
104
|
+
private tokenPatch;
|
|
105
|
+
private syncBaseStyles;
|
|
106
|
+
private refreshThemeColorCache;
|
|
107
|
+
private shouldSkipDocumentUpdate;
|
|
108
|
+
private requestRender;
|
|
109
|
+
private postRender;
|
|
110
|
+
private postScheduledRender;
|
|
111
|
+
private cancelScheduledRender;
|
|
112
|
+
private applyImmediateViewport;
|
|
113
|
+
private documentPayload;
|
|
114
|
+
private documentEditPayload;
|
|
115
|
+
private tokens;
|
|
116
|
+
private metrics;
|
|
117
|
+
private viewport;
|
|
118
|
+
private minimapHeight;
|
|
119
|
+
private baseStyles;
|
|
120
|
+
private sizeCanvasElements;
|
|
121
|
+
private handleWorkerMessage;
|
|
122
|
+
private applyLayout;
|
|
123
|
+
private handleWorkerError;
|
|
124
|
+
private post;
|
|
125
|
+
private cancelScheduledFlush;
|
|
126
|
+
private cancelScheduledFrame;
|
|
127
|
+
private cancelDeferredFlush;
|
|
128
|
+
private isCurrentRenderResponse;
|
|
129
|
+
}
|
|
130
|
+
export declare function canUseMinimapWorker(): boolean;
|
|
131
|
+
//# sourceMappingURL=workerClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workerClient.d.ts","sourceRoot":"","sources":["../src/workerClient.ts"],"names":[],"mappings":"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"}
|