@lvce-editor/api 8.56.0 → 8.58.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 CHANGED
@@ -11,6 +11,7 @@ export { executeFormattingProvider, getFormattingProviderRegistrySnapshot, regis
11
11
  export { exists, mkdir, readDirWithFileTypes, readFile, remove, stat, writeFile } from './parts/FileSystem/FileSystem.ts';
12
12
  export { confirm, getWorkspaceFolder, getWorkspaceUri, handleWorkspaceRefresh, openUri } from './parts/Host/Host.ts';
13
13
  export { executeHoverProvider, getHoverProviderRegistrySnapshot, registerHoverProvider, resetHoverProviderRegistry } from './parts/Hover/Hover.ts';
14
+ export { getPlatform, type Platform } from './parts/Platform/Platform.ts';
14
15
  export { getLanguageServerRegistrySnapshot, registerLanguageServer, resetLanguageServerRegistry } from './parts/LanguageServer/LanguageServer.ts';
15
16
  export { registerBraceCompletionProvider, registerClosingTagProvider, registerCodeActionsProvider, registerCommentProvider, registerDefinitionProvider, registerImplementationProvider, registerReferenceProvider, registerRenameProvider, registerSelectionProvider, registerTabCompletionProvider, registerTypeDefinitionProvider, resetLanguageProviderRegistry, } from './parts/LanguageProvider/LanguageProvider.ts';
16
17
  export type { LanguageProvider } from './parts/LanguageProvider/LanguageProvider.ts';
package/dist/index.js CHANGED
@@ -11,6 +11,7 @@ export { executeFormattingProvider, getFormattingProviderRegistrySnapshot, regis
11
11
  export { exists, mkdir, readDirWithFileTypes, readFile, remove, stat, writeFile } from "./parts/FileSystem/FileSystem.js";
12
12
  export { confirm, getWorkspaceFolder, getWorkspaceUri, handleWorkspaceRefresh, openUri } from "./parts/Host/Host.js";
13
13
  export { executeHoverProvider, getHoverProviderRegistrySnapshot, registerHoverProvider, resetHoverProviderRegistry } from "./parts/Hover/Hover.js";
14
+ export { getPlatform } from "./parts/Platform/Platform.js";
14
15
  export { getLanguageServerRegistrySnapshot, registerLanguageServer, resetLanguageServerRegistry } from "./parts/LanguageServer/LanguageServer.js";
15
16
  export { registerBraceCompletionProvider, registerClosingTagProvider, registerCodeActionsProvider, registerCommentProvider, registerDefinitionProvider, registerImplementationProvider, registerReferenceProvider, registerRenameProvider, registerSelectionProvider, registerTabCompletionProvider, registerTypeDefinitionProvider, resetLanguageProviderRegistry, } from "./parts/LanguageProvider/LanguageProvider.js";
16
17
  export { executeSourceControlAcceptInput, executeSourceControlAdd, executeSourceControlDiscard, executeSourceControlGenerateCommitMessage, executeSourceControlGetBadgeCount, executeSourceControlGetChangedFiles, executeSourceControlGetFeatures, executeSourceControlGetFileBefore, executeSourceControlGetFileDecorations, executeSourceControlGetGroups, executeSourceControlIsActive, registerSourceControlProvider, resetSourceControlProviderRegistry, } from "./parts/SourceControl/SourceControl.js";
@@ -37,6 +37,7 @@ export declare const commandMap: {
37
37
  'ExtensionApi.getSourceControlProviderRegistrySnapshot': () => import("../SourceControlProviderRegistrySnapshot/SourceControlProviderRegistrySnapshot.ts").SourceControlProviderRegistrySnapshot;
38
38
  'ExtensionApi.getStatusBarItems': () => readonly import("../StatusBarItem/StatusBarItem.ts").StatusBarItem[];
39
39
  'ExtensionApi.getViewActions': (uid: number) => Promise<readonly import("../View/View.ts").ViewAction[]>;
40
+ 'ExtensionApi.getViewActionsDom': (uid: number) => readonly import("@lvce-editor/virtual-dom-worker").VirtualDomNode[] | undefined;
40
41
  'ExtensionApi.getViewMenuEntries': (uid: number, menuId: string) => Promise<readonly import("../View/View.ts").MenuEntry[]>;
41
42
  'ExtensionApi.getViewRegistrySnapshot': () => import("../View/View.ts").ViewRegistrySnapshot;
42
43
  'ExtensionApi.renderViewInstance': (uid: number) => Promise<import("../View/View.ts").ViewRenderResult>;
@@ -36,6 +36,7 @@ export declare const commandMap: {
36
36
  'ExtensionApi.getSourceControlProviderRegistrySnapshot': () => import("../SourceControlProviderRegistrySnapshot/SourceControlProviderRegistrySnapshot.ts").SourceControlProviderRegistrySnapshot;
37
37
  'ExtensionApi.getStatusBarItems': () => readonly import("../StatusBarItem/StatusBarItem.ts").StatusBarItem[];
38
38
  'ExtensionApi.getViewActions': (uid: number) => Promise<readonly import("../View/View.ts").ViewAction[]>;
39
+ 'ExtensionApi.getViewActionsDom': (uid: number) => readonly import("@lvce-editor/virtual-dom-worker").VirtualDomNode[] | undefined;
39
40
  'ExtensionApi.getViewMenuEntries': (uid: number, menuId: string) => Promise<readonly import("../View/View.ts").MenuEntry[]>;
40
41
  'ExtensionApi.getViewRegistrySnapshot': () => import("../View/View.ts").ViewRegistrySnapshot;
41
42
  'ExtensionApi.renderViewInstance': (uid: number) => Promise<import("../View/View.ts").ViewRenderResult>;
@@ -8,7 +8,7 @@ import { executeLanguageProvider, executeOrganizeImportsProvider } from "../Lang
8
8
  import { getLanguageServerRegistrySnapshot } from "../LanguageServer/LanguageServer.js";
9
9
  import { getOutputChannelRegistrySnapshot } from "../OutputChannel/OutputChannel.js";
10
10
  import { executeSourceControlAcceptInput, executeSourceControlAdd, executeSourceControlDiscard, executeSourceControlGenerateCommitMessage, executeSourceControlGetBadgeCount, executeSourceControlGetChangedFiles, executeSourceControlGetFeatures, executeSourceControlGetFileBefore, executeSourceControlGetFileDecorations, executeSourceControlGetGroups, executeSourceControlIsActive, getSourceControlProviderRegistrySnapshot, } from "../SourceControl/SourceControl.js";
11
- import { createViewInstance, dispatchViewEvent, disposeViewInstance, executeViewProvider, getViewActions, getViewMenuEntries, getViewRegistrySnapshot, renderViewInstance, saveViewInstanceState, } from "../ViewRegistry/ViewRegistry.js";
11
+ import { createViewInstance, dispatchViewEvent, disposeViewInstance, executeViewProvider, getViewActions, getViewActionsDom, getViewMenuEntries, getViewRegistrySnapshot, renderViewInstance, saveViewInstanceState, } from "../ViewRegistry/ViewRegistry.js";
12
12
  export const commandMap = {
13
13
  'ExtensionApi.createViewInstance': createViewInstance,
14
14
  'ExtensionApi.dispatchViewEvent': dispatchViewEvent,
@@ -43,6 +43,7 @@ export const commandMap = {
43
43
  'ExtensionApi.getSourceControlProviderRegistrySnapshot': getSourceControlProviderRegistrySnapshot,
44
44
  'ExtensionApi.getStatusBarItems': getStatusBarItems,
45
45
  'ExtensionApi.getViewActions': getViewActions,
46
+ 'ExtensionApi.getViewActionsDom': getViewActionsDom,
46
47
  'ExtensionApi.getViewMenuEntries': getViewMenuEntries,
47
48
  'ExtensionApi.getViewRegistrySnapshot': getViewRegistrySnapshot,
48
49
  'ExtensionApi.renderViewInstance': renderViewInstance,
@@ -38,6 +38,7 @@ export declare const commandMap: {
38
38
  'ExtensionApi.getSourceControlProviderRegistrySnapshot': () => import("../SourceControlProviderRegistrySnapshot/SourceControlProviderRegistrySnapshot.ts").SourceControlProviderRegistrySnapshot;
39
39
  'ExtensionApi.getStatusBarItems': () => readonly import("../StatusBarItem/StatusBarItem.ts").StatusBarItem[];
40
40
  'ExtensionApi.getViewActions': (uid: number) => Promise<readonly import("../View/View.ts").ViewAction[]>;
41
+ 'ExtensionApi.getViewActionsDom': (uid: number) => readonly import("@lvce-editor/virtual-dom-worker").VirtualDomNode[] | undefined;
41
42
  'ExtensionApi.getViewMenuEntries': (uid: number, menuId: string) => Promise<readonly import("../View/View.ts").MenuEntry[]>;
42
43
  'ExtensionApi.getViewRegistrySnapshot': () => import("../View/View.ts").ViewRegistrySnapshot;
43
44
  'ExtensionApi.renderViewInstance': (uid: number) => Promise<import("../View/View.ts").ViewRenderResult>;
@@ -0,0 +1,2 @@
1
+ export type Platform = 'electron' | 'remote' | 'test' | 'web';
2
+ export declare const getPlatform: () => Promise<Platform>;
@@ -0,0 +1,16 @@
1
+ import { executeCommand } from "../ExecuteCommand/ExecuteCommand.js";
2
+ export const getPlatform = async () => {
3
+ const platform = await executeCommand('Layout.getPlatform');
4
+ switch (platform) {
5
+ case 1:
6
+ return 'web';
7
+ case 2:
8
+ return 'electron';
9
+ case 3:
10
+ return 'remote';
11
+ case 4:
12
+ return 'test';
13
+ default:
14
+ throw new TypeError(`Unknown platform: ${platform}`);
15
+ }
16
+ };
@@ -51,6 +51,7 @@ export interface VirtualDomViewInstance {
51
51
  readonly handleEvent?: (event: ViewEvent) => unknown;
52
52
  readonly render: () => readonly VirtualDomNode[] | Promise<readonly VirtualDomNode[]>;
53
53
  readonly renderActions?: () => readonly ViewAction[] | Promise<readonly ViewAction[]>;
54
+ readonly renderActionsDom?: () => readonly VirtualDomNode[];
54
55
  readonly renderFocus?: (oldContext: Readonly<Record<string, boolean>>, newContext: Readonly<Record<string, boolean>>) => string | Promise<string>;
55
56
  readonly renderScrollPosition?: () => readonly [] | ViewScrollPosition | Promise<readonly [] | ViewScrollPosition>;
56
57
  readonly renderSelections?: () => readonly ViewSelection[] | Promise<readonly ViewSelection[]>;
@@ -1,3 +1,4 @@
1
+ import { type VirtualDomNode } from '@lvce-editor/virtual-dom-worker';
1
2
  import type { Disposable } from '../Disposable/Disposable.ts';
2
3
  import type { MenuEntry, View, ViewAction, ViewContext, ViewEvent, ViewRegistrySnapshot, ViewRenderResult } from '../View/View.ts';
3
4
  export declare const registerView: <State>(view: View<State>) => Disposable;
@@ -9,5 +10,6 @@ export declare const disposeViewInstance: (uid: number) => Promise<void>;
9
10
  export declare const saveViewInstanceState: (uid: number) => Promise<unknown>;
10
11
  export declare const getViewMenuEntries: (uid: number, menuId: string) => Promise<readonly MenuEntry[]>;
11
12
  export declare const getViewActions: (uid: number) => Promise<readonly ViewAction[]>;
13
+ export declare const getViewActionsDom: (uid: number) => readonly VirtualDomNode[] | undefined;
12
14
  export declare const getViewRegistrySnapshot: () => ViewRegistrySnapshot;
13
15
  export declare const resetViewRegistry: () => void;
@@ -528,6 +528,17 @@ export const getViewActions = async (uid) => {
528
528
  }
529
529
  return normalizeViewActions(await instance.renderActions());
530
530
  };
531
+ export const getViewActionsDom = (uid) => {
532
+ const instance = getVirtualDomInstance(uid);
533
+ if (typeof instance.renderActionsDom !== 'function') {
534
+ return undefined;
535
+ }
536
+ const dom = instance.renderActionsDom();
537
+ if (!Array.isArray(dom)) {
538
+ throw new TypeError('view renderActionsDom result must be an array');
539
+ }
540
+ return dom;
541
+ };
531
542
  export const getViewRegistrySnapshot = () => {
532
543
  return {
533
544
  views: Object.values(views).map(toRegisteredView),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/api",
3
- "version": "8.56.0",
3
+ "version": "8.58.0",
4
4
  "description": "Tree-shakeable extension API for Lvce Editor extensions.",
5
5
  "keywords": [
6
6
  "lvce-editor",