跳至内容

关于补全的 json 文件结构

json
{
  "meta": [],
  "root": [],
  "options": [],
  "common_options": [],
  "config": [],
  "info": {}
}
  • 以上是 json 文件的总体结构
  • json 文件使用了 schema 架构来验证 json 内容的正确和完整
    • 在 vscode 中,你可以通过悬浮提示了解属性
  • 其实很简单,多看几个已有的 json 文件,就能看懂了

属性详解

1. meta

  • 值类型: 对象
  • 定义补全命令的相关信息
  • 它需要两个属性
    • url:补全命令的地址
    • description:补全命令的简单描述

2. root

  • 值类型: 数组
    • 数组中的每一项是一个对象
    • 对象可用属性: name(必需)、aliasnextoptionstiphide

3. options

  • 值类型: 数组
  • root 中的每一项的 options 相同
json
{
  "name": "-V",
  "alias": [
    "--version"
  ],
  "tip": [
    "U: -V, --version\n",
    "显示版本信息。"
  ]
}

4. common_options

  • 值类型: 数组
  • 结构与 options 相同
json
{
  "name": "-h",
  "alias": [
    "--help"
  ],
  "tip": [
    "U: -h, --help\n",
    "显示帮助信息"
  ]
}

5. config

  • 值类型: 数组
  • 定义补全的特殊配置
  • git 的特殊配置为例
    json
    "config": [
        {
          "name": "max_commit",
          "value": 20,
          "values": [
              -1,
              20
          ],
          "tip": [
              "可以为当前项目解析的 commit 的最大数量,默认为 20。\n",
              "如果设置为 <@Magenta>-1<@Blue>, 会解析所有 commit,这对补全加载速度有影响。"
          ]
        }
    ]

6. info

  • 值类型: 对象
  • 定义的所有值,可以在其他的 tip 中通过以下语法使用
    json
    {
      "root": [
        {
          "name": "test",
          "tip": "{{ $info.test_tip }}"
        }
      ],
      "info": {
        "test_tip": "这是一个测试内容"
      }
    }