@lvce-editor/api 8.70.0 → 8.71.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/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/parts/CommandMap/CommandMap.d.ts +1 -0
- package/dist/parts/ExtensionApiCommandMap/ExtensionApiCommandMap.d.ts +1 -0
- package/dist/parts/ExtensionApiCommandMap/ExtensionApiCommandMap.js +2 -0
- package/dist/parts/ExtensionApiWorkerCommandMap/ExtensionApiWorkerCommandMap.d.ts +1 -0
- package/dist/parts/FileChangeHandler/FileChangeHandler.d.ts +12 -0
- package/dist/parts/FileChangeHandler/FileChangeHandler.js +42 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export { executeCompletionProvider, executeResolveCompletionItemProvider, getCom
|
|
|
11
11
|
export { executeDiagnosticProvider, getDiagnosticProviderRegistrySnapshot, registerDiagnosticProvider, resetDiagnosticProviderRegistry, } from './parts/Diagnostic/Diagnostic.ts';
|
|
12
12
|
export { executeFormattingProvider, getFormattingProviderRegistrySnapshot, registerFormattingProvider, resetFormattingProviderRegistry, } from './parts/Formatting/Formatting.ts';
|
|
13
13
|
export { exists, mkdir, readAsObjectUrl, readDirWithFileTypes, readFile, remove, stat, writeFile, type ReadAsObjectUrlResult, } from './parts/FileSystem/FileSystem.ts';
|
|
14
|
+
export { registerFileChangeHandler, type FileChangeHandler, type FileChanges } from './parts/FileChangeHandler/FileChangeHandler.ts';
|
|
14
15
|
export { executeFileSystemProviderGetPathSeparator, executeFileSystemProviderIsReadonly, executeFileSystemProviderReadDirWithFileTypes, executeFileSystemProviderReadFile, getFileSystemProviderRegistrySnapshot, registerFileSystemProvider, resetFileSystemProviderRegistry, } from './parts/FileSystemProviderRegistry/FileSystemProviderRegistry.ts';
|
|
15
16
|
export { confirm, getWorkspaceFolder, getWorkspaceUri, handleWorkspaceRefresh, openUri, showNotification, type NotificationType, } from './parts/Host/Host.ts';
|
|
16
17
|
export { executeHoverProvider, getHoverProviderRegistrySnapshot, registerHoverProvider, resetHoverProviderRegistry } from './parts/Hover/Hover.ts';
|
package/dist/index.js
CHANGED
|
@@ -11,6 +11,7 @@ export { executeCompletionProvider, executeResolveCompletionItemProvider, getCom
|
|
|
11
11
|
export { executeDiagnosticProvider, getDiagnosticProviderRegistrySnapshot, registerDiagnosticProvider, resetDiagnosticProviderRegistry, } from "./parts/Diagnostic/Diagnostic.js";
|
|
12
12
|
export { executeFormattingProvider, getFormattingProviderRegistrySnapshot, registerFormattingProvider, resetFormattingProviderRegistry, } from "./parts/Formatting/Formatting.js";
|
|
13
13
|
export { exists, mkdir, readAsObjectUrl, readDirWithFileTypes, readFile, remove, stat, writeFile, } from "./parts/FileSystem/FileSystem.js";
|
|
14
|
+
export { registerFileChangeHandler } from "./parts/FileChangeHandler/FileChangeHandler.js";
|
|
14
15
|
export { executeFileSystemProviderGetPathSeparator, executeFileSystemProviderIsReadonly, executeFileSystemProviderReadDirWithFileTypes, executeFileSystemProviderReadFile, getFileSystemProviderRegistrySnapshot, registerFileSystemProvider, resetFileSystemProviderRegistry, } from "./parts/FileSystemProviderRegistry/FileSystemProviderRegistry.js";
|
|
15
16
|
export { confirm, getWorkspaceFolder, getWorkspaceUri, handleWorkspaceRefresh, openUri, showNotification, } from "./parts/Host/Host.js";
|
|
16
17
|
export { executeHoverProvider, getHoverProviderRegistrySnapshot, registerHoverProvider, resetHoverProviderRegistry } from "./parts/Hover/Hover.js";
|
|
@@ -46,6 +46,7 @@ export declare const commandMap: {
|
|
|
46
46
|
'ExtensionApi.getViewActionsDom': (uid: number) => readonly import("@lvce-editor/virtual-dom-worker").VirtualDomNode[] | undefined;
|
|
47
47
|
'ExtensionApi.getViewMenuEntries': (uid: number, menuId: string) => Promise<readonly import("../View/View.ts").MenuEntry[]>;
|
|
48
48
|
'ExtensionApi.getViewRegistrySnapshot': () => import("../View/View.ts").ViewRegistrySnapshot;
|
|
49
|
+
'ExtensionApi.handleFileChanges': (changes?: Readonly<import("../FileChangeHandler/FileChangeHandler.ts").FileChanges>) => Promise<void>;
|
|
49
50
|
'ExtensionApi.renderViewInstance': (uid: number) => Promise<import("../View/View.ts").ViewRenderResult>;
|
|
50
51
|
'ExtensionApi.saveViewInstanceState': (uid: number) => Promise<unknown>;
|
|
51
52
|
'ExtensionHostDebug.evaluate': (id: string, expression: string, callFrameId: string) => Promise<unknown>;
|
|
@@ -45,6 +45,7 @@ export declare const commandMap: {
|
|
|
45
45
|
'ExtensionApi.getViewActionsDom': (uid: number) => readonly import("@lvce-editor/virtual-dom-worker").VirtualDomNode[] | undefined;
|
|
46
46
|
'ExtensionApi.getViewMenuEntries': (uid: number, menuId: string) => Promise<readonly import("../View/View.ts").MenuEntry[]>;
|
|
47
47
|
'ExtensionApi.getViewRegistrySnapshot': () => import("../View/View.ts").ViewRegistrySnapshot;
|
|
48
|
+
'ExtensionApi.handleFileChanges': (changes?: Readonly<import("../FileChangeHandler/FileChangeHandler.ts").FileChanges>) => Promise<void>;
|
|
48
49
|
'ExtensionApi.renderViewInstance': (uid: number) => Promise<import("../View/View.ts").ViewRenderResult>;
|
|
49
50
|
'ExtensionApi.saveViewInstanceState': (uid: number) => Promise<unknown>;
|
|
50
51
|
'ExtensionHostDebug.evaluate': (id: string, expression: string, callFrameId: string) => Promise<unknown>;
|
|
@@ -2,6 +2,7 @@ import { executeCommand, getCommandRegistrySnapshot } from "../CommandRegistry/C
|
|
|
2
2
|
import { executeCompletionProvider, executeResolveCompletionItemProvider, getCompletionProviderRegistrySnapshot } from "../Completion/Completion.js";
|
|
3
3
|
import { executeDebugEvaluate, executeDebugGetProperties, executeDebugListProcesses, executeDebugPause, executeDebugResume, executeDebugSetPauseOnExceptions, executeDebugStart, executeDebugStep, executeDebugStepInto, executeDebugStepOut, executeDebugStepOver, } from "../Debug/Debug.js";
|
|
4
4
|
import { executeDiagnosticProvider, getDiagnosticProviderRegistrySnapshot } from "../Diagnostic/Diagnostic.js";
|
|
5
|
+
import { handleFileChanges } from "../FileChangeHandler/FileChangeHandler.js";
|
|
5
6
|
import { executeFileSystemProviderGetPathSeparator, executeFileSystemProviderIsReadonly, executeFileSystemProviderReadDirWithFileTypes, executeFileSystemProviderReadFile, getFileSystemProviderRegistrySnapshot, } from "../FileSystemProviderRegistry/FileSystemProviderRegistry.js";
|
|
6
7
|
import { executeFormattingProvider, getFormattingProviderRegistrySnapshot } from "../Formatting/Formatting.js";
|
|
7
8
|
import { getStatusBarItems } from "../GetStatusBarItems/GetStatusBarItems.js";
|
|
@@ -54,6 +55,7 @@ export const commandMap = {
|
|
|
54
55
|
'ExtensionApi.getViewActionsDom': getViewActionsDom,
|
|
55
56
|
'ExtensionApi.getViewMenuEntries': getViewMenuEntries,
|
|
56
57
|
'ExtensionApi.getViewRegistrySnapshot': getViewRegistrySnapshot,
|
|
58
|
+
'ExtensionApi.handleFileChanges': handleFileChanges,
|
|
57
59
|
'ExtensionApi.renderViewInstance': renderViewInstance,
|
|
58
60
|
'ExtensionApi.saveViewInstanceState': saveViewInstanceState,
|
|
59
61
|
'ExtensionHostDebug.evaluate': executeDebugEvaluate,
|
|
@@ -47,6 +47,7 @@ export declare const commandMap: {
|
|
|
47
47
|
'ExtensionApi.getViewActionsDom': (uid: number) => readonly import("@lvce-editor/virtual-dom-worker").VirtualDomNode[] | undefined;
|
|
48
48
|
'ExtensionApi.getViewMenuEntries': (uid: number, menuId: string) => Promise<readonly import("../View/View.ts").MenuEntry[]>;
|
|
49
49
|
'ExtensionApi.getViewRegistrySnapshot': () => import("../View/View.ts").ViewRegistrySnapshot;
|
|
50
|
+
'ExtensionApi.handleFileChanges': (changes?: Readonly<import("../FileChangeHandler/FileChangeHandler.ts").FileChanges>) => Promise<void>;
|
|
50
51
|
'ExtensionApi.renderViewInstance': (uid: number) => Promise<import("../View/View.ts").ViewRenderResult>;
|
|
51
52
|
'ExtensionApi.saveViewInstanceState': (uid: number) => Promise<unknown>;
|
|
52
53
|
'ExtensionHostDebug.evaluate': (id: string, expression: string, callFrameId: string) => Promise<unknown>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Disposable } from '../Disposable/Disposable.ts';
|
|
2
|
+
type UriRename = readonly [oldUri: string, newUri: string];
|
|
3
|
+
export interface FileChanges {
|
|
4
|
+
readonly changed?: readonly string[];
|
|
5
|
+
readonly deleted?: readonly string[];
|
|
6
|
+
readonly renamed?: readonly UriRename[];
|
|
7
|
+
}
|
|
8
|
+
export type FileChangeHandler = (changes: Readonly<FileChanges>) => unknown | Promise<unknown>;
|
|
9
|
+
export declare const registerFileChangeHandler: (handler: FileChangeHandler) => Disposable;
|
|
10
|
+
export declare const handleFileChanges: (changes?: Readonly<FileChanges>) => Promise<void>;
|
|
11
|
+
export declare const resetFileChangeHandlers: () => void;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { ExtensionManagementWorker } from '@lvce-editor/rpc-registry';
|
|
2
|
+
import { ExtensionApiError } from "../ExtensionApiError/ExtensionApiError.js";
|
|
3
|
+
const handlers = new Set();
|
|
4
|
+
const registerWithExtensionManagement = () => {
|
|
5
|
+
void ExtensionManagementWorker.invoke('Extensions.registerFileChangeHandler');
|
|
6
|
+
};
|
|
7
|
+
const unregisterWithExtensionManagement = () => {
|
|
8
|
+
void ExtensionManagementWorker.invoke('Extensions.unregisterFileChangeHandler');
|
|
9
|
+
};
|
|
10
|
+
export const registerFileChangeHandler = (handler) => {
|
|
11
|
+
if (typeof handler !== 'function') {
|
|
12
|
+
throw new ExtensionApiError('file change handler must be a function');
|
|
13
|
+
}
|
|
14
|
+
if (handlers.has(handler)) {
|
|
15
|
+
throw new ExtensionApiError('file change handler is already registered');
|
|
16
|
+
}
|
|
17
|
+
const wasEmpty = handlers.size === 0;
|
|
18
|
+
handlers.add(handler);
|
|
19
|
+
if (wasEmpty) {
|
|
20
|
+
registerWithExtensionManagement();
|
|
21
|
+
}
|
|
22
|
+
return {
|
|
23
|
+
dispose() {
|
|
24
|
+
if (!handlers.delete(handler)) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
if (handlers.size === 0) {
|
|
28
|
+
unregisterWithExtensionManagement();
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
export const handleFileChanges = async (changes = {}) => {
|
|
34
|
+
await Promise.all(Array.from(handlers, async (handler) => handler(changes)));
|
|
35
|
+
};
|
|
36
|
+
export const resetFileChangeHandlers = () => {
|
|
37
|
+
if (handlers.size === 0) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
handlers.clear();
|
|
41
|
+
unregisterWithExtensionManagement();
|
|
42
|
+
};
|