Skip to content
目录

运行配置

AnyText 允许扩展使用存储API,提供一系列的 键值对 接口,可以用来存储扩展的配置信息。同一个扩展在不同分类下的配置是独立的,不会相互影响。

提示

配置选项的 API 位于 ExtensionContextoptions 属性中,你可以通过 context.options 来访问它们。 了解更多配置选项的信息,请参阅 API:选项 (Options)

声明配置

配置对象 一样,通过暴露 options 属性来声明配置。

js
export const options = [
  {
    key: "setting.fontSize",
    label: "字体大小",
    description: "设置字体大小(12~24)",
    hidden: false,
    disabled: false,
    defaultValue: 14,
    validator: (value) => value >= 12 && value <= 24,
    type: "number"
  }
]

配置选项的类型定义

ts
interface Option {
  key: string
  label: string
  description?: string
  hidden?: boolean
  disabled?: boolean
  defaultValue?: string | number | boolean
  validator?: RegExp | ((value: string | number | boolean) => boolean)
  type?: "string" | "number" | "boolean"
}

type Options = Array<Option>

提示

选项中的 description 字段支持富文本格式,了解更多信息,请参阅 useRTF

读取配置

js
ctx.options.get("setting.fontSize", 14)

设置配置

js
ctx.options.set("setting.fontSize", 16)

监听所有配置的变化

js
const destroy = ctx.options.onChanges((key, value) => {
  console.log(key, value)
})

监听指定配置的变化

js
const destroy = ctx.options.onChange("setting.fontSize", 16, (value) => {
  console.log(value)
})

Released under the MIT License.