# 参数编辑器

当参数不是普通文本时，可以在 `Schema.format` 中指定编辑器。例如，使用 `application` 后，用户可以通过选择器填写应用路径。

## 字符串格式

| format | 编辑方式 |
| --- | --- |
| `application` | 选择应用程序 |
| `file` | 选择一个文件 |
| `directory` | 选择一个文件夹 |
| `file-or-directory` | 选择一个文件或文件夹 |
| `uri` | 输入包含协议的 URI |
| `hotkey` | 录入热键 |
| `screen-id` | 选择屏幕 |
| `appearance-icon` | 打开按钮图标选择器，保存图标 ID。 |
| `multiline` | 输入多行文本 |

文件和应用选择器把选中的绝对路径作为字符串传给后台。需要限制扩展名时，用 `filePicker.filters`：

```json
{
  "type": "string",
  "title": "数据文件",
  "format": "file",
  "filePicker": { "filters": [{ "name": "CSV 数据", "extensions": ["csv", "tsv"] }] }
}
```

`file` 和 `file-or-directory` 可以使用筛选器。`directory` 和 `application` 不使用扩展名筛选。

## URI 和热键

`uri` 参数要包含协议，例如 `https://example.com`。如果只允许特定协议，再填写 `allowedSchemes`。例如，自定义协议参数可以允许 `myapp:`。

`hotkey` 参数由热键编辑器录入，调用时会检查格式。发送热键的方法见 [sendHotkey()](./system.md#sendhotkey)。

## 数字输入

`number` 和 `integer` 使用数字输入框。填写 `minimum` 与 `maximum` 后，飞块按这个范围检查输入；`integer` 还要求值为整数。

## 图标

动作、预设及分类的 `icon` 使用图标库 ID（例如 `host:outline/Globe`、`host:brand/LogoGithub`）或包内静态 SVG 路径（例如 `assets/icons/tool.svg`）。插件清单顶层的 `icon` 填写包内图片路径。完整规则见[插件图标与资源](./icons.md)。

按钮外观的 `button.icon` 使用另一种结构，可以设置 emoji、图标包或应用图标，见 [ButtonIcon](./presets.md#buttonicon)。

## FilePicker

清单位置：`Schema.filePicker`。

### `FilePicker.filters`

`FileFilter[]` · 可选

文件筛选组，1–8 项。省略时可选择任意扩展名。

## FileFilter

清单位置：`Schema.filePicker.filters[]`。

### `FileFilter.name`

`string` · 必填

筛选组显示名称，1–80 个字符，例如“CSV 数据”。

### `FileFilter.extensions`

`string[]` · 必填

1–16 个扩展名，每个为 1–16 位字母或数字，不带前导点，例如 `csv`。同组不重复。
