自定义代码完成到Visual Studio代码?

时间:2018-07-24 15:33:44

标签: visual-studio-code vscode-extensions vscode-settings code-completion

我有一个JavaScript库的定义文件(如下)。
如何将其连接到 Visual Studio代码完成

它具有以下格式:

{
    "!name": "SomeLibrary",
    "someMethod" : 
    {
        "!doc" : "Description of some method.",
        "!type" : "fn(someParameter: someType) -> someReturnType"
    },
    "SomeClass" :
    {
        "!doc" : "Description of some class.",
        "someOtherMethod" :
        {
            "!doc" : "Description of some other method.",
            "!type" : "fn(someParameter: someType) -> someReturnType"
        }
    }
}

奖金问题:这种格式的名称是什么?


更新:我发现应该创建一个Typescript definition file,但是我真的不知道如何从我拥有的这个文件中转换它。这是标准格式吗?

1 个答案:

答案 0 :(得分:0)

您要创建的内容称为snippet

  

您可以定义自己的代码段,既可以是全局代码段,也可以定义特定语言的代码段。要打开片段文件进行编辑,请在文件>首选项(在MacOS上为代码>首选项)下选择用户片段,然后选择语言(按language identifier),应为其显示片段或创建新的全局片段(新的全局片段文件... )。

由于代码片段本身被定义为JSON,因此您的示例可能会有些混乱,但是基本上看起来像这样:

{
    "You Interface Definition": {
        "prefix": "idef",
        "body": [
          "{",
          "\t\"!name\": \"<LIBRARY_NAME>\",",
          "\t\"<METHOD_NAME>\" : ",
          "\t\t{",
          "\t\t\"!doc\" : \"<DESCRIPTION>\",",
          "\t\t\"!type\" : \"fn(<PARAMETER_NAME>: <PARAMETER_TYPE>) -> <RETURN_TYPE>\"",
          "\t\t},",
          "\t\"<CLASS_NAME>\" : {",
          "\t\t\"!doc\" : \"<DESCRIPTION>\",",
          "\t\t\"<METHOD_NAME>\" : {",
          "\t\t\t\"!doc\" : \"<DESCRIPTION>\",",
          "\t\t\t\"!type\" : \"fn(<PARAMETER_NAME>: <PARAMETER_TYPE>) -> <RETURN_TYPE>\"",
          "\t\t}",
          "\t}",
          "}",
        ]
    },
}

请注意,我使用的是\t而不是空格,因为那样会尊重用户的缩进设置

现在,一旦您输入前缀idef并按 Tab ,该代码段将展开。如果您想更改<DESCRIPTION><PARAMETER_NAME>,则可以添加带有占位符文本的制表位。这是一个简化的示例:

\"fn(${1:<PARAMETER_NAME>}: ${2:<PARAMETER_TYPE>}) -> ${3:<RETURN_TYPE>}\""

请注意用大括号括起来的那些部分。扩展代码段后,您可以使用 Tab 在这些制表位之间跳转并修改所选的文本。如果需要在多个位置插入相同的文本,则同一制表位可以重复多次。