Skip to content

TypeScript 插件

a-calc 提供了 TypeScript 语言服务插件,在编辑器中为 calcfmt 等函数的表达式字符串提供智能补全。

功能特性

  • 变量补全 - 自动提示第二个参数中的变量名
  • 格式化语法补全 - 在 | 后提示所有可用的格式化选项
  • 预设补全 - 输入 ! 后提示预设名称和值
  • 单位补全 - 根据项目配置提示可用单位
  • 深层属性支持 - 支持 user.name 这样的嵌套属性补全

配置方法

在项目的 tsconfig.json 中添加插件配置:

json
{
  "compilerOptions": {
    "plugins": [
      { "name": "a-calc/ts-plugin" }
    ]
  }
}

VS Code 配置

VS Code 默认使用内置的 TypeScript 版本,需要切换到工作区版本才能加载插件。

方法一:手动切换

  1. 打开任意 .ts 文件
  2. Ctrl+Shift+P(Mac: Cmd+Shift+P
  3. 输入 TypeScript: Select TypeScript Version
  4. 选择 Use Workspace Version

方法二:自动切换

.vscode/settings.json 中添加:

json
{
  "typescript.tsdk": "node_modules/typescript/lib"
}

补全示例

变量补全

在表达式区域输入变量名前缀,自动提示可用变量:

typescript
const data = { price: 100, quantity: 3, user: { name: 'test' } }

calc('pri', data)      // 输入 pri 后提示 price
calc('user.', data)    // 输入 user. 后提示 name

格式化语法补全

| 后触发补全,显示所有格式化选项:

typescript
calc('100 | ')   // 提示 =N, <=N, %, ,, !t, !c 等

预设补全

输入 ! 后提示预设类型:

typescript
calc('100 | !')   // 提示 t(千分位), c(紧凑), u(单位) 等
calc('100 | !t:') // 提示 en, indian, wan 等千分位预设

格式化区域变量补全

=@>< 后可以补全变量:

typescript
const opts = { price: 100, decimals: 2, max: 1000 }

calc('price | =', opts)   // = 后提示 decimals 等数字变量
calc('price | >', opts)   // > 后提示 max 等数字变量

支持的函数

插件支持以下函数的字符串参数补全:

  • calc
  • fmt
  • calc_sum
  • calc_wrap
  • calc_space
  • calc_avg
  • calc_max
  • calc_min
  • calc_count

注意事项

  1. 修改 tsconfig.json 后需要重启 VS Code 或重新加载窗口
  2. 确保项目中安装了 typescript 依赖
  3. 插件仅在 TypeScript 文件中生效

基于 MIT 许可发布