Skip to content
OBKoro1 edited this page Mar 29, 2021 · 88 revisions

注释模板的设置

  • 默认配置:

    在用户首选项中搜索fileheader,默认配置为:

      "fileheader.customMade": {} // 头部注释
      "fileheader.cursorMode": {} // 函数注释 
    
  • 自定义模板:

    • 在用户设置中,搜索fileheader

    • 复制默认配置+修改配置

    • 重启编辑器生效

    如上设置,生成注释:

// 文件头部注释 快捷键:window:ctrl+alt+i,mac:ctrl+cmd+i
// 在注释之前添加内容
/*
/*
 * Author       : OBKoro1 // 提供自动对齐注释字段的功能:`wideSame`
 * Date         : 2019-09-24 20:25:33
 * LastEditors  : OBKoro1 // 自动更新最后编辑人
 * LastEditTime : 2019-12-16 21:16:08 // 自动更新最后编辑时间
 * FilePath     : /fileHead/test.js // 自动添加项目路径
 * 自定义信息, 自动移动光标到Description上
 * 遇到换行符自动换行
 */
// 在注释之后添加内容
// 函数注释 快捷键:window:ctrl+alt+t,mac:ctrl+cmd+t
/**
 * @description: 
 * @param {type} 
 * @return: 
 */

自动更新最后编辑时间、编辑人、文件路径:

要开启这个功能,需要在首选项设置中填写对应的属性:

  "fileheader.customMade": {
    "Date": "Do not edit", // 文件创建时间(不变)
    "LastEditors": "OBKoro1", // 文件最后编辑者
    "LastEditTime": "Do not edit", // 文件最后编辑时间
    "FilePath": "Do not edit" // 文件在项目中的相对路径 自动更新
  }
  // 不填写对应属性即关闭对应功能

图案注释

一键生成佛祖保佑永无BUG、神兽护体等注释图案

/*
 * ......................................&&.........................
 * ....................................&&&..........................
 * .................................&&&&............................
 * ...............................&&&&..............................
 * .............................&&&&&&..............................
 * ...........................&&&&&&....&&&..&&&&&&&&&&&&&&&........
 * ..................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&..............
 * ................&...&&&&&&&&&&&&&&&&&&&&&&&&&&&&.................
 * .......................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&.........
 * ...................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&...............
 * ..................&&&   &&&&&&&&&&&&&&&&&&&&&&&&&&&&&............
 * ...............&&&&&@  &&&&&&&&&&..&&&&&&&&&&&&&&&&&&&...........
 * ..............&&&&&&&&&&&&&&&.&&....&&&&&&&&&&&&&..&&&&&.........
 * ..........&&&&&&&&&&&&&&&&&&...&.....&&&&&&&&&&&&&...&&&&........
 * ........&&&&&&&&&&&&&&&&&&&.........&&&&&&&&&&&&&&&....&&&.......
 * .......&&&&&&&&.....................&&&&&&&&&&&&&&&&.....&&......
 * ........&&&&&.....................&&&&&&&&&&&&&&&&&&.............
 * ..........&...................&&&&&&&&&&&&&&&&&&&&&&&............
 * ................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&............
 * ..................&&&&&&&&&&&&&&&&&&&&&&&&&&&&..&&&&&............
 * ..............&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&............
 * ...........&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&......&&&&............
 * .........&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&.........&&&&............
 * .......&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&...........&&&&............
 * ......&&&&&&&&&&&&&&&&&&&...&&&&&&...............&&&.............
 * .....&&&&&&&&&&&&&&&&............................&&..............
 * ....&&&&&&&&&&&&&&&.................&&...........................
 * ...&&&&&&&&&&&&&&&.....................&&&&......................
 * ...&&&&&&&&&&.&&&........................&&&&&...................
 * ..&&&&&&&&&&&..&&..........................&&&&&&&...............
 * ..&&&&&&&&&&&&...&............&&&.....&&&&...&&&&&&&.............
 * ..&&&&&&&&&&&&&.................&&&.....&&&&&&&&&&&&&&...........
 * ..&&&&&&&&&&&&&&&&..............&&&&&&&&&&&&&&&&&&&&&&&&.........
 * ..&&.&&&&&&&&&&&&&&&&&.........&&&&&&&&&&&&&&&&&&&&&&&&&&&.......
 * ...&&..&&&&&&&&&&&&.........&&&&&&&&&&&&&&&&...&&&&&&&&&&&&......
 * ....&..&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&...........&&&&&&&&.....
 * .......&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&..............&&&&&&&....
 * .......&&&&&.&&&&&&&&&&&&&&&&&&..&&&&&&&&...&..........&&&&&&....
 * ........&&&.....&&&&&&&&&&&&&.....&&&&&&&&&&...........&..&&&&...
 * .......&&&........&&&.&&&&&&&&&.....&&&&&.................&&&&...
 * .......&&&...............&&&&&&&.......&&&&&&&&............&&&...
 * ........&&...................&&&&&&.........................&&&..
 * .........&.....................&&&&........................&&....
 * ...............................&&&.......................&&......
 * ................................&&......................&&.......
 * .................................&&..............................
 * ..................................&..............................
 */

插件配置

参考模板设置的方式,找到配置项"fileheader.configObj",修改这个对象即可。

整体功能

所有的功能都在配置字段里面有简单的描述,可以先看一下整体的配置功能,然后再本文档中搜索对应的字段了解详细用法

配置:

1. 自定义语言注释符号(可选项):

用户自定义注释符号

language自定义注释形式须知

  1. 此项配置是最高级别的,会覆盖插件的语言注释格式
  2. 任何语言/文件(新的语言、特殊的文件),用户都可以设置对应的注释符号,只要像上述栗子中的格式一样即可
  3. 还有一种场景:像issue中提到的,某些库会对注释格式有特殊要求,库会对其识别、处理。插件标准的注释格式并不能满足需求,此时在config.language里添加一项配置即可。

此项配置的意义是

以防以后项目不维护了,出现新的流行语言,注释形式也不一样了。用户也可以自定以注释的符号.

看到这里,我如此用心良苦,真的不点右上角赏我一个Star⭐️吗?

language设置:

// 设置
"fileheader.configObj": {
    "language": {
        // 普通后缀文件
        "js": {
            "head": "/$$",
            "middle": " $ @",
            "end": " $/",
            // 函数自定义注释符号:如果有此配置 会默认使用
            "functionSymbol": {
              "head": "/******* ", // 统一增加几个*号
              "middle": " * @",
              "end": " */"
            }
        },
       // 一次匹配多种文件后缀文件 不用重复设置
       "h/hpp/cpp": {
          "head": "/*** ", // 统一增加几个*号
          "middle": " * @",
          "end": " */"
        },
        // 针对有特殊要求的文件如:test.blade.php
        "blade.php":{
          "head": "<!--",
          "middle": " * @",
          "end": "-->",
        }
    },
}
  1. language下面的属性可以是文件后缀,也可以是语言类型,比如test.js,js是文件后缀,javascript是语言类型.
  2. 推荐使用文件后缀来设置,这样比较不容易出错。

上述设置的注释结果

test.java文件生成的注释:

/$$
 $ @Author: OBKoro1
 $ @Date: 2019-01-19
 $ @LastEditors: OBKoro1
 $ @LastEditTime: 2019-01-19
 $ @Description: 头部注释
 $ @FilePath:  /itemName/src/index.js // 自动生成文件路径,在配置中搜索FilePath
 $/
/$$
 $ @description: 函数注释
 $ @param {type} 
 $ @return: 
 $/

一次匹配多种文件后缀文件

/***
 * Author       : OBKoro1
 * Date         : 2019-05-13 15:54:32
 * LastEditors  : OBKoro1
 * LastEditTime : 2020-02-14 22:04:52
 * FilePath     : /fileHead/test.h
 * Description  : c++的h、hpp、cpp文件都使用一样的注释
 * https://github.com/OBKoro1
 **/

有特殊要求的文件注释:

上面配置中的blade.php,只会覆盖以blade.php为后缀的文件,不会影响到php后缀的文件。 有些库会对一些文件有特殊的要求,导致注释也需要跟着改变,如该issue中所描述的test.blade.phptest.php里面是两种内容。 注释配套的:在注释之前/之后添加内容、指定行数前添加注释

test.blade.php生成的注释:

<!--
 * @Author: OBKoro1
 * @Date: 2019-10-20 16:37:49
 * @LastEditors: OBKoro1
 * @LastEditTime: 2019-10-20 16:49:09
 * @FilePath: /xpdevtool/src/test.blade.php // 自动生成文件路径,在配置中搜索FilePath
 * @Description: 描述
-->

默认注释形式:

"fileheader.configObj": {
    "annotationStr": {
        "head": "/*", // 自定义注释头部
        "middle": " * @", // 自定义注释中间部分(注意空格,这也是最终生成注释的一部分)
        "end": " */", // 自定义注释尾部
        "use": false // 是否使用自定义注释符号
    }
}

这个配置是默认配置,如果使用的话(use:true),生成的注释为:

/*
 * @Author: OBKoro1
 * @Github: https://github.com/OBKoro1
 * @Date: 2018-12-12 18:50:10
 * @LastEditors: OBKoro1
 * @LastEditTime: 2018-12-13 15:54:05
 * @Description: 头部注释
 */
/*
 * @description: 
 * @param {type} 
 * @return: 函数注释
 */

annotationStr配置规则

  1. 匹配config.language(用户设置的自定义符号)1

  2. 匹配插件支持的语言

  3. 当上面两种注释形式都没匹配到时,并且use选项为true,才会使用此项配置。

2. 自动添加文件头部注释:

该选项为了那些(比如我自己),老是忘记添加文件头部注释的同学而添加的,配合下方的头部注释黑名单使用更佳,妈妈再也不用担心我忘记添加头部注释了!

"fileheader.configObj": {
  "autoAdd": true, // 默认开启
}

配置规则

开启该选项之后,插件会检测当前保存的文件有没有头部注释,如果没有的话,将为自动添加头部注释(就像你按了头部注释的快捷键一样)。

检测文件没有头部注释的规则:

  1. 前15行没有进入该语言/自定义的注释

  2. 进入注释之后,注释中没有LastEditorsLastEditTimeFilePathDate这四个特殊字段

  3. 如果使用了自定义特殊字段,那么插件将改为检测自定义的特殊字段。

    也就是说你注释模板中没有这四个字段,那就不要开启这项功能,因为会无限添加头部注释(一直检测不到头部文件注释,一直自动添加)

    在本插件中,这四个设置都有其自己的功能,所以以这四个字段为检测标准

满足上述两个条件,插件将视该文件没有头部注释,将在保存文件时自动为其添加头部注释。

autoAlready:只让支持的语言,自动添加头部注释

autoAlready: 自动添加头部注释:只允许插件支持的语言,以及用户通过language 选项自定义的注释。

"fileheader.configObj": {
  "autoAdd": true, // 自动添加头部注释开启才能自动添加
  "autoAlready": true, // 默认开启
}

为什么增加这项配置?

  • .json文件这种类型的文件,文件不能添加注释

  • 有一些语言,插件没有支持,添加默认注释,并不适配,导致问题。 (可以通过language选项添加自定义注释来解决。)

将autoAlready关闭,即给所有文件自动添加头部注释,选择权在你们手上

自动添加文件头部注释限制

自动添加头部注释文件白名单

"fileheader.configObj": {
    "supportAutoLanguage": [ ] // 设置过后只有该数组里面的文件 才会自动添加头部注释
}

规则与黑名单prohibitAutoAdd相同,该功能是为了防止语言实在太多,黑名单设置不过来,提供仅支持特定的几种特定语言的自动添加。

自动添加头部注释黑名单

"fileheader.configObj": {
    "prohibitAutoAdd": [ "json", "md" ] // 禁止.json .md文件,自动添加头部注释
}

插件黑名单的参数接收的是文件后缀,当文件后缀匹配跟黑名单数组内的元素匹配时,该文件不会自动添加头部注释

自动添加头部注释,本身是一个相当不错的功能,但因为有些文件不适合自动添加注释,比如.json文件是不能有注释的,在这些不适宜的情景下,自动添加会被关闭。

很多人在关闭之后,就会忘记再打开了,这个功能可以很好的解决这个问题,有了这个功能,相信各位以后的注释习惯会越来越好

自动添加头部注释项目黑名单

场景: 某些项目没有推广头部注释,然后leader/团队成员反感这种行为时,使用该功能。

"fileheader.configObj": {
    "prohibitItemAutoAdd": [ "test_koro", "test_koro2" ] // 禁止test_kro/test_koro2项目自动添加头部注释
}
  1. 要禁止项目的全称, 整个项目禁止自动添加头部注释, 可以使用快捷键自行添加头部注释。

  2. test_koro项目, 需要以test_koro为根目录打开项目,才可以禁止自动添加,如果将其包含,或者打开该项目的一部分则不会被禁止

  3. 电脑中如果有其他项目也是完全一样的项目名,那么以该项目为根目录时,也会被禁止自动添加头部注释。(这种场景比较少见)

文件超过一定行数不再自动添加头部注释

"fileheader.configObj": {
    "autoAddLine": 100 // 默认文件超过100行就不再自动添加头部注释
}

文件夹或文件名禁止自动添加头部注释

插件会对地址进行切割,如果完全匹配到文件夹或者文件名字符串则禁止添加。

"fileheader.configObj": {
  "folderBlacklist": [
    "node_modules",
    "文件夹或文件名禁止自动添加头部注释",
    // "webpack.config.js" // 可以禁止某些文件自动添加注释
  ]
}

只允许文件自动添加头部注释一次:

如果某个文件曾经自动添加过头部注释,那么插件会记录该文件的路径,在这次VsCode编辑器关闭前,都将不再允许该文件自动添加头部注释。

有时候我们并不希望该文件自动添加头部注释,删除也没有用,它会一直手动添加,该功能就是为了用于防止这种情况的。

FilePath:文件相对于项目的路径

"fileheader.customMade": {
  "Author": "OBKoro1",
  "Date": "Do not edit",
  "LastEditors": "OBKoro1",
  "LastEditTime": "Do not edit",
  "FilePath": "Do not edit" // 增加此项配置即可
}
  1. FilePath4.6.0+将会自动更新,防止因为文件被移动、重命名导致文件路径错误。
  2. FilePath设为no item name可以去掉项目名称。
  3. 如果想给字段换一个名字,可以在specialOptions中修改它。
  4. 字段的值为:生成头部注释时,文件相对于当前VsCode窗口打开的文件夹的路径(如下所示)。
  5. 该配置的作用在于:项目的文件夹层级较为复杂或者项目中存在大量相同的文件名(比如一大堆index.js)

比如:

/*
 * Author: OBKoro1
 * Date: 2019-10-20 15:43:37
 * LastEditTime: 2019-10-20 17:37:45
 * FilePath: /文件夹名称/src/index.js // 默认带上项目名称
 * FilePath: /src/index.js  // "FilePath": "no item name" 去掉项目名称
 */

filePathColon: 修改路径分隔符

配置示例:

"fileheader.configObj": {
   "filePathColon": "\\\\" // \ 路径要转义 所以要写两遍
}
old: FilePath: //test.js
now: FilePath: \\文件夹名称\\test.js

头部注释等宽设置wideSame

"fileheader.configObj": {
   "wideSame": false, // 设置为true开启
   "wideNum": 13 // 字段长度 默认为13
}

开启效果:

wideNum为13长度充足,每个字段都有空格:

/*
 * Author       : OBKoro1
 * Date         : 2019-09-24 20:25:33
 * LastEditors  : OBKoro1
 * LastEditTime : 2019-12-16 21:16:08
 * FilePath     : /fileHead/test.js
 */

之前没有对齐的注释 插件也会更新它的修改时间, 效果如下

/*
 * @Author: OBKoro1
 * @Date: 2019-09-24 20:25:33
 * LastEditors  : OBKoro1 // 字段会填充空格
 * LastEditTime : 2019-12-17 19:43:01  // 字段会填充空格
 * @FilePath: /fileHead/test.js
 */

wideNum为9,字段长度超出会导致长度不齐

/*
 * Author   : OBKoro1
 * Date     : 2019-09-24 20:25:33
 * LastEditors: OBKoro1
 * LastEditTime: 2019-12-17 10:35:19
 * FilePath : /fileHead/test.js
 */

函数注释等宽设置

"fileheader.configObj": {
    "functionWideNum": 0 // 0 默认关闭 设置一个正整数即可开启 比如12
}

开启效果

/**
 * @description 设置为13
 * @param       {*}
 * @return      {*}
 */
/**
 * @description 设置为0 关闭
 * @param {*}
 * @return {*}
 */

新建文件自动添加头部注释

"fileheader.configObj": {
  "createHeader": true // 默认打开
}

插件匹配到language自定义语言注释配置、自定义注释配置时才会自动添加头部注释,如果匹配不到不会使用默认注释。

如果该文件被添加进黑名单,将不会自动添加头部注释。

这样在创建一些项目配置文件时,不会出现不必要的注释。

3. 头部注释第几行插入:

"fileheader.configObj": {
  "headInsertLine": {
    "php": 2, // php后缀的文件,在第二行插入文件头部注释
    "*": 3, // 所有文件都在第3行插入注释(除了php)
  }
}

规则

  • 默认都是将头部注释插入到第一行
  • 格式就是上面演示的那样。
  • 插入行数问题:文件行数不足设置的行数,注释将会插入到最后一行(下面有演示)

演示

原文件(两行):

<?php
?>

头部注释插入到第二行:

<?php
/*
 * @Author: OBKoro1
 * @Github: https://github.com/OBKoro1
 * @Date: 2018-12-21 10:49:35
 * @LastEditors: OBKoro1
 * @LastEditTime: 2018-12-21 17:06:07
 * @Description: 
 */
?>

头部注释插入到第3行,行数不足的演示

<?php
?>/*
 * @Author: OBKoro1
 * @Github: https://github.com/OBKoro1
 * @Date: 2018-12-21 10:49:35
 * @LastEditors: OBKoro1
 * @LastEditTime: 2018-12-21 17:12:46
 * @Description: 
 */

4. Date字段时间选项:

当前时间/创建文件时间:

"fileheader.configObj": {
   "createFileTime": true, // 设为false更改为当前生成注释的时间
 }

头部注释:createFileTime默认为此文件的创建时间,将该字段设为false即可更改为当前注释的插入时间。

函数注释:V3.0 函数注释也支持Date字段了,该字段会生成函数注释插入的时间。

时间格式化:

"fileheader.configObj": {
   "dateFormat": "YYYY-MM-DD HH:mm:ss" // 默认格式
}

默认格式:

 * @Date: 2019-01-19 21:29:11

修改配置,可以精确自定义时间的格式,配置参数来自第三方:moment.jsformat方法的参数。

比如:

"fileheader.configObj": {
  "dateFormat": "YYYY-MM-DD HH:mm:ss ZZ" // 输出:2019-05-20 15:42:07 +0800
}

PS: 该功能将影响所有时间字段。

5. 头部注释前面插入内容:

"fileheader.configObj": {
  "beforeAnnotation": {
    "py": "#!/usr/bin/env python\n# coding=utf-8", // py文件默认,可修改
    "*": "\n" // 所有文件的头部注释都在前面增加一个换行(除了py)
  }
}

规则

  1. 填写对应文件后缀,如py
  2. 要添加的内容直接写进去就可以了,换行符\n

如这两个issueissue中提到的,python文件头部还需要类似下面两行必备内容。

如上设置,最后在test.py文件中按头部注释的快捷键出现的效果是:

#!/usr/bin/env python
# coding=utf-8
'''
@Author: OBKoro1
@Date: 2019-02-18 13:03:37
@LastEditors: OBKoro1
@LastEditTime: 2019-02-19 12:26:24
'''

头部注释后面插入内容:

设置位置如下,其他规则跟上方《头部注释前面插入内容》的规则一样。

"fileheader.configObj": {
  "afterAnnotation": {
    "js": "// js文件头部注释之后的内容", 
    "*": "\n" // 所有文件新增头部注释之后都空一行(除了js)
  } // 需要特殊定制的文件后缀
}

6. 特殊字段允许自定义

目前在插件中有五个特殊字段:DateLastEditTimeLastEditorsDescriptionFilePath

类似Date字段,在静态博客中有自己定义的字段(如:updated_at),不是Date

你可以像下面这样设置:

  "fileheader.customMade":{
    "Author": "OBKoro1",
    "Date": "Do not edit",
    "LastEditTime": "Do not edit",
    "LastEditors": "Do not edit",
    "FilePath": "Do not edit",
    "Description": ""
  },
"fileheader.configObj": {
  "specialOptions":{
    "Date": "since",
    "LastEditTime": "lastTime",
    "LastEditors": "LastAuthor",
    "Description": "message",
    "FilePath": "文件相对于项目的路径"
  }
}
  1. 默认为空对象,也就是不更改特殊字段。
  2. 你可以只设置一个对应的字段,也可都设置。
  3. 当你更改了特殊字段,那些使用老的特殊字段的注释,插件也进行过处理了,可以放心食用。
  4. 注意如果是团队使用,需要团队成员一起修改。否则将不会自动更新最后编辑时间/最后编辑人以及打开自动添加注释的话,会检测不出来新的特殊字段,导致插件自动添加头部注释。

最后效果是:

/*
 * @Author: OBKoro1
 * @since: 2019-05-13 15:54:32
 * @lastTime: 2019-08-08 16:25:22
 * @LastAuthor: Do not edit
 * @文件相对于项目的路径: /testItem/src/index.js
 * @message: 
 */

7. 在注释中输出一段自定义信息

customMade/cursorMode中设置特殊属性custom_string_obkoro1~custom_string_obkoro100,用来输入一段自定义信息,设置如下:

PS:还有两个特殊字段custom_string_obkoro1_copyright(版权)、custom_string_obkoro1_date(时间)

  "fileheader.customMade": {
     "custom_string_obkoro1_date": "Do not edit", // 不带Date前缀的时间
    "Github": "https://github.com/OBKoro1",
    "custom_string_obkoro2": "custom_string_obkoro1~custom_string_obkoro100都可以输出自定义信息",
    "Author": "OBKoro1",
    "custom_string_obkoro1_copyright": "Copyright ${now_year} OBKoro1, All Rights Reserved. ", // 版权声明 保留所有权利 自动替换年份
    "custom_string_obkoro1": "可以输入预定的版权声明、个性签名、空行等"
  }

test.js文件中的效果:

/** 
 * 2020-07-03 14:50:17 // 不带Date字段的时间
 * @Github: https://github.com/OBKoro1
 * custom_string_obkoro1~custom_string_obkoro100都可以输出自定义信息
 * @Author: OBKoro1
 * Copyright 2020 OBKoro1, All Rights Reserved // 版权字段
 * 可以输入预定的版权声明、个性签名、空行等 // 使用atSymbol字段可以去掉@
 */

8. 遇到换行添加注释符号

遇到\r\n\n\r换行情况时,自动在下一行开头添加应该有的注释标识符,设置如下:

// 设置
  "fileheader.customMade": {
    "Author": "OBKoro1",
     "test": "哈哈哈哈\n啦啦啦\r\n黑呵呵呵"
  }
// 效果 a.js
/*
 * @Author: OBKoro1
 * @---aaaa: 哈哈哈哈
 * 啦啦啦
 * 黑呵呵呵
 */

为避免出现问题,插件提供了一个开关来关闭它:

"fileheader.configObj": {
  "switch": {
    "newlineAddAnnotation": true // 默认开启
  }
}

移动光标到Description :所在行

"fileheader.configObj": {
    "moveCursor": true // 移动光标到`Description :`所在行
}
  1. 该选项默认开启
  2. 如果视图中没有注释,将会移动视图到顶部。
  3. 必须在customMade/cursorMode中有Description选项,没有该选项的话,将不生效。
  4. Description可在configOptions.specialOptions中修改。

自定义注释中的艾特和冒号:

如下放注释中的@: ,有几个issue中都提到了注释中的@: 符号希望能够自定义

/*
 * @Author: OBKoro1
 * @Github: https://github.com/OBKoro1
 * @Date: 2019-05-13 15:54:32
 * @LastEditors: OBKoro1
 * @LastEditTime: 2019-05-13 15:54:32
 * @Description: 
 */

增加了以下四项配置,用以修改所有文件的@: 以及单独修改某个文件类型的@:

 "fileheader.configObj": {
    "atSymbol": [ "@", "@"], // 所有文件的头部注释和函数注释的默认值
    "atSymbolObj": {
      "js": ["", "@"], // .js文件的头部注释@符号去掉,所有文件的函数注释默认为@
      "java": [ "#", "@"] // .java文件 头部注释@改为#, 函数注释还是@
    },
    "colon": [ ": ", ": " ], // 所有文件的头部注释和函数注释的默认值
    "colonObj": {
      "js": [ " ", ": " ], // .js文件 头部注释去掉: 留一个空格 函数注释保留冒号
      "java": [ ": ", "$"] // .java文件 头部注释是冒号 函数注释是$
    }
  }

隐藏插件抛出的错误通知

"fileheader.configObj": {
  "showErrorMessage": false // 默认不显示错误通知 用于debugger
}

错误日志

"fileheader.configObj": {
  "writeLog": false // 默认不生成错误日志
}

开启错误日志后,每次重启vscode如果有报错都将会清空日志,这是防止日志过多的情况。

设置错误日志生成地址

按快捷键ctrl+p,调出命令行面板,输入以下命令即可选择文件夹设置日志地址。

>空格fileheader.errPathSet

单个文件保存时进行diff检查

每次保存之后,会进行一次diff检查, 如果文件只变更了LastEditors/LastEditTime,该文件将会回滚到本地仓库的最新版本.

"fileheader.configObj": {
  "CheckFileChange": false // 默认关闭
}

使用场景:

对文件进行修改之后又撤销,但是LastEditorsLastEditTime已经变更了,在提交代码的时候很容易忘记恢复它,导致无意义的提交,反正我很经常遇到这个问题。

运行逻辑

  1. 检测VSCode当前打开的文件夹的根目录是够有.git文件夹, 没有的话,则退出
  2. 获取触发保存文件的diff,进行diff检查。
  3. 检测当只有LastEditorsLastEditTime变更,其他任何变更都没有的情况下。
  4. 将该文件回滚到本地仓库的最新版本。

关于功能的安全性:

鉴于之前该功能采用pre-commit的方案,造成过严重的BUG,新功能的破坏性会小很多,并且文件很容易就可以恢复:

目前该功能只针对单个文件进行操作,影响范围会比较小,并且挽回方式也比较简单快捷

假如,我是说假如,再有出现文件被回滚的情况,因为这个操作是即时的,并且在每次保存都会触发,如果误将文件回滚了,在该文件上撤销一次即可将文件内容恢复恢复

useWorker 区分工作区配置模板

"fileheader.configObj": {
  "useWorker": false // 默认关闭
}

如该issue通过该设置我们可以区分工作区设置的模板和用户设置的通用模板,默认情况下是合并工作区设置和用户设置的字段。

头部注释customMade 和函数注释cursorMode都可以区分。

函数注释自动提取函数的参数

开启关闭自动提取添加函数参数

"fileheader.configObj": {
  "openFunctionParamsCheck": true // 默认开启
 }

使用效果:

koroFileHeader函数参数提取

目前支持函数参数自动提取的文件后缀

支持语言

函数内生成函数注释

设为true开启:

"fileheader.configObj": {
  "cursorModeInternal": false // 默认关闭
}

示例:

/**
 * @description: 未开启:注释在函数外
 * @param {*} a
 * @param {*} b
 * @return {*}
 */
function test(a, b) {

}
// 某些语言的注释是写在函数内的
function test(a, b) {
/**
 * @description: 开启后:注释在函数内
 * @param {*} a
 * @param {*} b
 * @return {*}
 */

} 
Clone this wiki locally