Skip to main content
运行时会将所有系统函数与扩展函数导出为 fluxon-functions.json,供 VS Code 补全、文档与其他工具共享。
本页是关于函数目录结构的 canonical 参考页。其他页面如需引用字段定义,应链接到这里而不是重复粘贴。

文件位置

默认输出:core/build/fluxon-functions.json(由 :core:dumpFluxonCatalog 任务生成)。

结构定义

目录由 org.tabooproject.fluxon.tool.FunctionDumper 输出,包含三个顶级字段:
  • generatedAt:生成时间戳(ISO-8601)。
  • system:系统函数清单(全局函数;是否需要 import 由条目中的 namespace 决定)。
  • extensions:扩展函数清单,按宿主类型分组(键为 Class#getName()),用于 target::method() 的补全与检索。
示例(截取结构,字段含义以表格为准):
{
  "generatedAt": "2025-11-12T13:13:17.378940900Z",
  "system": [
    { "name": "print", "params": [1], "async": false, "primarySync": false },
    { "name": "base64", "namespace": "fs:crypto", "params": [0], "async": false, "primarySync": false }
  ],
  "extensions": {
    "java.io.File": [
      { "name": "readText", "namespace": "fs:io", "params": [0], "async": false, "primarySync": false }
    ]
  }
}

函数条目字段

字段说明
name函数名(脚本侧的调用名)。
namespace可选。若存在,脚本侧需要 import 'namespace' 才能解析到该函数/扩展。
params合法的参数个数列表(用于补全与语义检查,不包含参数类型)。
async是否异步函数。若为 true,调用通常会返回异步句柄,并需要在支持的上下文中 await
primarySync是否强制在“主线程执行器”上运行(由宿主通过 FluxonRuntime#setPrimaryThreadExecutor 提供执行器)。

如何生成

推荐使用 Gradle 任务(自动准备 classpath):
./gradlew :core:dumpFluxonCatalog
# 输出:core/build/fluxon-functions.json
如需自定义输出路径,可直接调用导出器(需先构建 jar):
./gradlew :core:jar
java -cp core/build/libs/fluxon-core-*.jar org.tabooproject.fluxon.tool.FunctionDumper ./out/catalog.json

何时重新导出

  • 新增 / 删除 / 重命名运行时函数或扩展函数。
  • 变更参数个数、命名空间或同步/异步属性。
  • 发布 VS Code 扩展或更新文档参考页前。

典型消费方

  • vscode-extension/scripts/sync-catalog.js:将目录复制到扩展数据目录,驱动补全。
  • 文档:用于说明内置函数与扩展函数的“可用性边界”(但字段定义仅以本页为准)。
  • 外部工具:可按字段含义解析 JSON,自行生成提示或校验。
保持函数目录与源码一致,可以避免补全缺失、文档不匹配等问题。