Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>fiberng-ifttt-starlarkNew to Visual Studio Code? Get it now.
fiberng-ifttt-starlark

fiberng-ifttt-starlark

fiberng

|
42 installs
| (0) | Free
LSP extension for fiberNG ifttt editing.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

一、工程概述

该插件提供 Fiber Starlark 脚本编写的能力支持,提供 local 与 provisioner 文件对比、快速部署等能力。

主要功能:

  1. Starlark 代码高亮;
  2. Fiber builtin go func 函数的 Hover 提示、代码提示、参数提示、代码补全;
  3. 支持 provisioner 的「快速部署」、「快速卸载」等功能
  4. 本地执行、Debug starlark 脚本;(TODO)
  5. 执行数据 Mock 服务;(TODO)
  6. 脚本语法检测/纠错能力;(TODO)
  7. pylint 代码检查 (支持 starlark 语法);(TODO)

二、如何使用

  1. 安装插件
  2. 在适当目录下创建 .provisioner 文件
  3. 打开/新建 Starlark 文件
  4. 使用演示:
  • 安装插件

install

  • 代码高亮

highlight

  • 代码 Hover

hover

  • 代码补全 completion

  • .provisioner 及「刷新脚本状态」

refresh

  • .star 文件中配置 trigger 信息

trigger

  • 「快速部署」

deploy

  • 脚本右键命令及「差异对比」

command & diff

三、.provisioner 文件

  1. 文件所在目录 在「刷新脚本状态」时, 会统一处理 .provisioner 所在目录(记为 root ), 且会遍历该目录下所有 .star 文件, 文件以名称进行区别, 会忽略 root 下的子目录层级。
  2. 文件格式 采用 yaml 语法进行文件编辑, 样例如下:
ns:
  - namespace: <namespace1 英文名称>
    env: 正式环境|预发布环境|测试环境
  - namespace: <namespace2 英文名称>
    env: 正式环境
user: <rtx>
  1. ns( namespaces ) ns 定义了 provisioner 上命名空间数组, 通过 env, namespace 联合指定一个命名空间. 在显示 PROVISIONER 窗口时, root 目录与某个命名空间的对比会组成该床空下的一个目录。

  2. env 和 namespace 其中 env 取值为枚举,仅支持 正式环境|预发布环境|测试环境. namespace 需要在相应环境下预创建, 在 .provisioner 文件中仅支持填写 项目英文名. <TODO 新增样例图>

  3. user 指明了 root 目录的编辑者, 在后续进行部署、卸载等操作时, 将使用该身份进行操作.

四、PROVISIONER 文件状态

Remote 指代 provisioner 相应命名空间下的文件, Local 指代本地文件

  1. Unmodify

has Remote && has Local && Remote == Local && Remote Deployed

  1. UnDeploy

has Remote && has Local && Remote == Local && Remote UnDeployed

  1. Modify

has Remote && has Local && Remote != Local && Remote Deployed

  1. Modify & UnDeploy

has Remote && has Local && Remote != Local && Remote UnDeployed

  1. Delete

has Remote && no Local && Remote Deployed

  1. Ignore

has Remote && no Local && Remote UnDeployed

  1. Add

no Remote && has Local

五、操作

  1. 刷新脚本状态
  2. 清理脚本状态
  3. 快速部署
  4. 快速卸载
  5. 差异对比
  6. 删除脚本
  7. 部署脚本

六、trigger 信息

  1. 什么是 trigger 信息?

star 脚本保存到 provisioner 上, 还需要 trigger 信息才能完成部署. 通过 trigger 信息指明了 star 脚本会被怎样的事件进行驱动.

  1. trigger 是 json 格式的.

  2. 样例

{
    "event_code": "evt_cron/ifttt_timer/notify", 
    "locator": {
        "id": "aaa0-0-register_flow_node.star"
    }
}
  1. 使用变量

目前支持的变量列表为: namespace(含义: provisioner 命名空间的英文名), 使用变量的样例如下:

{
    "locator": {
      "eventCode": "evt_workflow/node/approvalStart",
      "actionType": "liveProtectHaveSrcStart",
      "namespace": "${namespace}"
    },
    "event_code": "event_pattern_filter"
}
  1. 从 star 脚本中解析 trigger 信息

trigger 信息在 star 脚本中是可选的. 如果在 star 脚本中设置 trigger 信息, 请按照如下样例进行编写:

'''
脚本部署 locator
{
    "locator": {
      "eventCode": "evt_workflow/node/approvalStart",
      "actionType": "liveProtectHaveSrcStart",
      "namespace": "${namespace}"
    },
    "event_code": "event_pattern_filter"
  }
  
'''
def filter():
    ...

从 star 脚本中解析 trigger 信息的步骤: 1. 解析文件开头用 ''' 定义的注释内容; 2. 在注释内容中解析第一个 { 与最后一个 } 之间的内容; 3. 进行变量替换; 4. 验证替换后的字符串是一个合法的 json 经过上述4步, 得到的字符串就是提取出的 trigger 信息.

  1. 「快速部署」时 trigger 信息的优先级

优先使用 provisioner 上的 trigger(与 star 脚本状态无关). 若 provisioner 上没有 trigger 信息, 则使用 star 脚本中解析出的 trigger 信息

七、注意事项

  1. 确保 VSCode 版本在 1.52.0 或以上。

八、如何启动

npm run watch-web
npm run run-in-browser
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft