VS Code 自动为源文件设置许可证 Headers

VS Code Setting License Headers Automatically for Source Files

我是 VS Code 的新手,因为多年来我主要使用 IntelliJ。我现在想在我的 VS Code 中全局设置许可证 header 作为模板,以便它自动应用于我创建的任何新文件。

我安装了 psioniq psi header 并尝试按照文档进行操作,但我不确定如何设置它。根据文档,我需要按 F1 并输入 Header Change Log Insert,但是一旦我这样做,我就会看到一条错误消息,如下面的屏幕所示:

知道问题出在哪里吗?

我自己想出来了,这是我必须做的:

要将 header 配置为模板,我必须通过从文件 -> 首选项 -> 设置导航打开 settings.json,然后按照下面的屏幕截图进行操作。

我的settings.json内容如下:

{
    "workbench.iconTheme": "vscode-icons",
    "workbench.editorAssociations": [
        {
            "viewType": "jupyter.notebook.ipynb",
            "filenamePattern": "*.ipynb"
        }
    ],
    "files.autoSave": "afterDelay",
    "psi-header.variables": [
        ["author", "myuser"],
        ["url", "<https://my.github.com/myuser>"]
    ],
    "psi-header.templates": [
        {
            "language": "*",
            "template": [
                "Copyright (c) <<year>> <<author>> <<url>>",
                "",
                "Created Date: <<filecreated('dddd, MMMM Do YYYY, h:mm:ss a')>>",
                "Author: <<author>>",
                "",
                "Redistribution and use in source and binary forms, with or without",  
                "modification, are permitted provided that the following conditions are", 
                "met:",
                "",
                "1. Redistributions of source code must retain the above copyright notice,", 
                "this list of conditions and the following disclaimer.",
                "",
                "2. Redistributions in binary form must reproduce the above copyright", 
                "notice, this list of conditions and the following disclaimer in the",   
                "documentation and/or other materials provided with the distribution.",
                "",
                "3. Neither the name of the copyright holder nor the names of its", 
                "contributors may be used to endorse or promote products derived from this",
                "software without specific prior written permission.",
                "",
                "THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS", 
                "IS AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,", 
                "THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ",
                "PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR", 
                "CONTRIBUTORS BE", 
                "LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR",
                "CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF", 
                "SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS", 
                "INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN", 
                "CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)", 
                "ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF", 
                "THE POSSIBILITY OF SUCH DAMAGE.",
                "",
                "HISTORY:",
                "Date      \tBy\tComments",
                "----------\t---\t----------------------------------------------------------"
            ],
            "changeLogCaption": "HISTORY:",
            "changeLogHeaderLineCount": 2,
            "changeLogEntryTemplate": [
                "<<dateformat('YYYY-MM-DD')>>\t<<initials>>\t"
            ]
        }
    ]
}

这样会生成一个 header 文件,如下所示:

/*
 * Copyright (c) 2020 myuser <https://my.github.com/myuser>
 * 
 * Created Date: Thursday, October 29th 2020, 9:08:05 am
 * Author: myuser
 * 
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are
 * met:
 * 
 * 1. Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 * 
 * 2. Redistributions in binary form must reproduce the above copyright
 * notice, this list of conditions and the following disclaimer in the
 * documentation and/or other materials provided with the distribution.
 * 
 * 3. Neither the name of the copyright holder nor the names of its
 * contributors may be used to endorse or promote products derived from this
 * software without specific prior written permission.
 * 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS
 * IS AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
 * CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 * THE POSSIBILITY OF SUCH DAMAGE.
 * 
 * HISTORY:
 * Date         By  Comments
 * ----------   --- ----------------------------------------------------------
 */

反对你点击这个进行展示许可证header

clt+alt+h x 2