# 高级用法

# 自定义参数类型

你可以通过定义加载器来创建自定义参数类型。

// src/extension/extension.ts
import { extension, blockType } from "fs-context";

export default extension("my-extension")
    .name("My Extension")
    .description("This is my extension")
    .loader("my-loader", (value: string) => {
        // 自定义处理逻辑
        return value.toUpperCase();
    })
    .block(
        blockType.command("my-command")
            .text("Process [value:my-loader]")
            .action(({ value }) => {
                console.log(value);
            })
            .build()
    )
    .build();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

# 菜单

你可以创建自定义菜单。

// src/extension/extension.ts
import { extension, blockType, menu } from "fs-context";

const myMenu = menu("my-menu")
    .item("Option 1", "option1")
    .item("Option 2", "option2")
    .build();

export default extension("my-extension")
    .name("My Extension")
    .description("This is my extension")
    .menu(myMenu)
    .block(
        blockType.command("my-command")
            .text("Select [option:menu=my-menu]")
            .action(({ option }) => {
                console.log(option);
            })
            .build()
    )
    .build();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21