跳转到内容

Manifest

声明用于申请能力,宿主负责校验和授权。apiVersion 是包协议版本,requires.pluginApi 是宿主 API 最低版本。access 默认为 read。Background 要求 Lite API 3.4,模板要求 3.2,hooks 要求 3.3,文件属性和目录树要求 3.1。

使用指南: views. API 索引.

签名、参数及返回类型从 SDK 自动生成;可选成员不保证在每个宿主和上下文中存在。

源码

apiVersion: 1;
kind?: "theme";
id: string;
name: string;

可选的非空单行纯文本,最多 1024 个 UTF-16 代码单元。

description?: string;
version: string;
i18n?: {
defaultLocale: string;
messages: Record<string, string>;
readme?: Record<string, string>;
};
requires?: {
pluginApi: string;
};
icon?: PluginIconDefinition;
extension?: string;

独立的 Worker 风格入口。network: true 经授权允许公网 HTTPS/WSS,可用最多八个精确 networkOrigins 收窄。bluetooth: true 授权选中设备,可用服务白名单限制。设备 ID 由宿主选择。API 3.6 支持 autoStart: true,经授权随 Space 打开自动启动;fileHistory: true 监听所属窗口和 Space 的文件打开元数据,不授予文件内容。

background?: {
entry: string;
network?: true;
networkOrigins?: string[];
bluetooth?: true | {
services: BluetoothServicePermission[];
};
fileHistory?: true;
autoStart?: true;
};
views?: ViewDeclaration[];

静态 UTF-8 模板,每个最多 256 KiB。引用的 document View 必须有匹配的 file/open 挂载声明。

fileTemplates?: FileTemplateDeclaration[];
actions?: ActionDeclaration[];
formatters?: FormatterDeclaration[];
hooks?: FileHookDeclaration[];
placements?: Placement[];
settings?: Record<string, SettingDeclaration>;
browser?: {
workers?: boolean;
network?: true;
networkOrigins?: string[];
};
storage?: {
maxBytes: number;
};
workspace?: {
files?: boolean | {
read?: boolean;
write?: boolean;
};
filemeta?: {
namespaces: string[];
write?: boolean;
};
};
connections?: Record<string, {
title: string;
url: string;
configurable?: boolean;
}>;
theme?: ThemeDeclaration;

关联类型: PluginIconDefinition, BluetoothServicePermission, ViewDeclaration, FileTemplateDeclaration, ActionDeclaration, FormatterDeclaration, FileHookDeclaration, Placement, SettingDeclaration, ThemeDeclaration.

源码

stylesheet: string;

源码

id: string;
title: string;
extension: string;
view: string;
content: string;

源码

id: string;
title: string;
entry: string;
kind: "page" | "file";
capabilities?: ViewCapability[];
access?: "read" | "write";
configuration?: ViewConfiguration;
icon?: PluginIconDefinition;

关联类型: ViewCapability, ViewConfiguration, PluginIconDefinition.

源码

type: "object";
properties: Record<string, SettingDeclaration & {
"x-field"?: true;
}>;

关联类型: SettingDeclaration.

源码

id: string;
title: string;
context: "workspace" | "file" | "document" | "table";
access?: "read" | "write";
extensions?: string[];
icon?: PluginIconDefinition;

关联类型: PluginIconDefinition.

源码

id: string;
title: string;
extensions: string[];

源码

id: string;
title: string;
event: FileHookEventType;
extensions: string[];
access?: "read" | "write";

关联类型: FileHookEventType.

源码

export type Placement = {
location: "plugin/settings";
view: string;
} | {
location: "navigation";
view: string;
} | {
location: "sidebar/explorer";
view: string;
} | {
location: "file/open";
view: string;
extensions: string[];
} | {
location: "table/view";
view: string;
} | {
location: "command-palette";
action: string;
} | {
location: "file/context";
action: string;
} | {
location: "table/context";
action: string;
} | {
location: "view/toolbar";
action: string;
view: string;
} | {
location: "keybinding";
action: string;
key: string;
mac?: string;
linux?: string;
};

源码

uuid: string;
read?: boolean;
write?: boolean;
notify?: boolean;

源码

export type SettingDeclaration = {
title: string;
description?: string;
} & ({
type: "boolean";
default: boolean;
} | {
type: "string";
default: string;
enum?: string[];
} | {
type: "number";
default: number;
minimum?: number;
maximum?: number;
});