如果觉得本插件还不错的话,给个Star吧~
配置文档 - 有所有功能的简介的 json 文件
配置 - 所有配置的详细描述的文档,用于查看详细介绍。
如下面的js、md,会针对后缀文件进行单独的特殊字段设置。
"fileheader.configObj": {
"specialOptions":{
"Author": "creater",
"Date": "since",
"LastEditTime": "lastTime",
"LastEditors": "LastAuthor",
"Description": "message", // 头部注释大写的描述Description
"description": "function message", // 函数注释小写的描述:description
"FilePath": "文件相对于项目的路径"
"param": "param2", // 函数注释parm参数别名
// 文件后缀、或者语言后缀,可针对单个文件后缀进行配置:language的自定义语言配置
"js": {
"Description": "message2", // 合并specialOptions第一层级的配置,覆盖Description的配置
"return": "return2", // 单独为js文件添加return 特殊字段配置
},
"md": {
"Date": "date",
"Description": "tag"
}
}
}
- feat: 函数注释特殊字段为description,头部注释的特殊字段为Description,用于区分 #512
文档:特殊字段允许自定义、移动光标到Description :所在行
- fix: now_year改为全局匹配 #522
- fix: now_year、用户名和邮箱不再绑定 #509
- fix: param等宽错误 #495
- fix: 修复vscode默认快捷键和插件简介描述 #498
- fix: VSCode 1.74.0 兼容,解决函数注释无法使用的问题
- feat:
NoMatchParams
当没有匹配到函数注释参数时是否显示param
和return
"fileheader.configObj": {
"NoMatchParams": "no param" // 默认不显示param那一行
}
示例:
// "NoMatchParams": "no show param"
/**
* @description: 没匹配到函数参数,不显示@param那行
* @return {type} 填写返回值
*/
export const download = async () => {
// do something
console.log('空参数 匹配不到函数参数: NoMatchParams')
return 'something'
}
// "NoMatchParams": "no show param and return"
/**
* @description: 只显示description 不显示@param与@return这两行
*/
export const download = async () => {
// do something
console.log('空参数 匹配不到函数参数: NoMatchParams')
return 'something'
}
// "NoMatchParams": "show param"
/**
* @description: 没匹配到函数参数 也显示@param与@return
* @param {type}
* @return {type}
*/
export const download = async () => {
console.log('空参数 匹配不到函数参数: NoMatchParams')
}
- feat:
functionParamAddStr
在type param
后面增加字符串, 在 type param 后面增加字符串 可能是冒号,方便输入参数描述。 #443
"fileheader.configObj": {
"functionParamAddStr": "" // 默认不增加字符串
}
示例:
// "functionParamAddStr": ":"
/**
* @description: 增加冒号 方便输入参数描述
* @param {type} a:
* @param {type} b:
* @param {array} c:
* @return {type}
*/
function test2(a, b, ...c) {}
- fix: 在 VSCode 打开的对应项目中获取
git config
信息 #469 - fix: 修复
java
函数注释参数提取不精准的问题 #470 - fix: 修复不设置
Author
和LastEditors
时出现的无法生成注释的 bug - fix: c、java、solidity 不支持连续的容器对象作为参数 #468
- feat: 新增头部注释模板
Author
和LastEditors
从 git config 中读取user.name
、user.email
的功能。 - feat: 新增版权声明获取 git config 配置:
${git_name}、${git_email}、${git_name_email}
配置:
// 头部注释模板
"fileheader.customMade": {
// 获取当前项目下git config中的: 用户名、邮箱
// 公司项目和个人项目可以配置不同的用户名与邮箱 搜索: gitconfig includeIf 比如: https://ayase.moe/2021/03/09/customized-git-config/
"Author": "git config user.name && git config user.email", // 同时获取用户名与邮箱
// "Author": "git config user.name", // 仅获取用户名
// "Author": "git config user.email", // 仅获取邮箱
// "Author": "OBKoro1", // 固定值 不从git config中获取
"Date": "Do not edit",
// 设置后,保存文件更改默认更新最后编辑人
"LastEditors": "git config user.name && git config user.email", // 配置规则与Author字段一致
"LastEditTime": "Do not edit",
"FilePath": "",
// 个人版权声明: ${git_name} ${git_email} ${git_name_email}
// 公司版权声明: 写死即可
"custom_string_obkoro1_copyright": "Copyright (c) ${now_year} by ${git_name} email: ${git_email}, All Rights Reserved. "
},
示例:
// "Author": "git config user.name && git config user.email"
// "LastEditors": "git config user.name"
// "custom_string_obkoro1_copyright": "Copyright (c) ${now_year} by ${git_name} email: ${git_email}, All Rights Reserved. "
/*
* Author : OBKoro1 [email protected]
* Date : 2022-05-01 15:35:12
* LastEditors : OBKoro1
* LastEditTime : 2022-05-02 11:31:09
* FilePath : /fileHead/function-params/test.js
* Copyright (c) 2022 by OBKoro1 email: [email protected], All Rights Reserved.
*/
- feat: 函数注释匹配到 param 但是不需要 type 时 只显示 param 比如: [*] 改成 []
配置:
"fileheader.configObj": {
"functionTypeSymbol": "match param no type"
}
示例:
/**
* @description: 这边匹配到param 但是没有type 正常是 [number] c [string] b
* @param [] c
* @param [] b
* @return []
*/
function test2(c: number, b: string = '2') {}
- feat: 新建文件自动添加头部注释,不再自动打开。
"fileheader.configObj": {
"createHeader": false // 默认关闭 之前是true
}
- feat:
specialOptions
特殊字段新增Author
- fix: 函数注释特殊字段与函数注释等宽共同使用的问题. #434
-
feat: 多行函数参数支持选中后按函数注释快捷键自动提取
- 鼠标左键选择多行函数声明区域,函数声明区域尽量精准
- 按生成函数注释快捷键
-
fix: afterAnnotation 只有一个换行,取消自动输入换行 防止换行两次 #430
-
fix: 佛祖保佑与永不宕机之间是否多了两个空格 #424
- feat: 新增光标移动快捷键,用于函数参数填写时使用(光标移动到下一行的末尾)
// 快捷键
{
"command": "koroFileheader.table",
"key": "alt+y", // window系统
"mac": "cmd+y", // mac
"linux": "meta+y", // linux
"when": "editorTextFocus"
}
- feat: 函数注释参数提取新增支持
tsx
- feat: typeParamOrder支持函数参数提取只显示函数参数,不展示 type 类型, 关联#397
"fileheader.configObj": {
"typeParamOrder": "param"
}
// "typeParamOrder": "param"
/**
* @description: 只有参数 没有类型
* @param axiosMethods
* @param apiLink
* @param opts
* @param fileName
* @return {type}
*/
export const download = async (axiosMethods, apiLink, opts, fileName) => {}
- docs: 文档更新。
- fix: 修复箭头函数参数的提取错误, 关联#394
"fileheader.configObj": {
"specialOptions": { // 特殊字段自定义
"param": "paramAlias", // 别名
"return": "returnAlias", // 别名
}
}
// 效果
/**
* description:
* param2 [type] 字段重命名
* return2 [type] 字段重命名
*/
function test(a, b) {}
- feat: 自定义语言支持函数参数提取
"fileheader.configObj": {
// 自定义语言
"language": {
"tsx": { // jsx后缀的文件
"head": "/**",
"middle": " * ",
"end": "*/",
"functionParams": "typescript" // 函数注释使用ts语言的解析逻辑
}
}
}
使用下列对象的key
,即可获取对应语言解析函数参数的逻辑。
// 支持函数注释的语言
const supportLanguage = {
javascript: 'function-js.js',
javascriptreact: 'function-js.js', // react jsx
vue: 'function-js.js', // vue
html: 'function-js.js', // html
typescript: 'function-ts.js', // ts
typescriptreact: 'function-ts.js', // react tsx
java: 'function-java.js', // java
python: 'function-python.js', // py
rust: 'function-rust.js', // rust
go: 'function-go.js', // go
c: 'function-c.js',
cpp: 'function-c.js',
php: 'function-php.js',
solidity: 'function-solidity.js', // 智能合约的语言
}
- feat: 支持
solidity
智能合约语言 #365
ps: vscode 本身不支持solidity
,需要安装solidity
插件来支持该语言,而后才能开启函数注释。
/**
* description:
* param x [uint256]
* param y [uint256]
* return [type]
*/
function multiply(uint256 x, uint256 y) returns (uint256 z) {
z = x * y;
}
- fix: C++函数注释无法提取带有引用符号&的参数 #379
- fix: 修复文档错误。
- fix: 修复
Ubuntu
下的快捷键:ctrl+super+i
、ctrl+super+t
- fix: 修复
functionParamsShape
为no type
时,函数注释return
返回值出错的问题 #382。 - fix: 修复文件未保存到系统中,就进行读取 diff,导致 diff 重置不准的问题
- feat: throttleTime 节流时间自定义, 自定义同一个文件触发保存的频率。
"fileheader.configObj": {
"throttleTime": 60000 // 对同一个文件 需要过1分钟再次修改文件并保存才会更新注释
}
一个文件第一次修改内容并保存后,会触发更新注释的最后编辑人,最后编辑时间。
之后在该文件上进行修改,并且再次保存后,是否更新注释,取决于throttleTime
所设定的时间。
当:(当前时间 - 上次执行事件 > throttleTime 设定的时间),即触发更新注释函数。
PS:插件会保存最近 30 个文件的最后更新注释的时间,并使用 LRU 算法,在每次更新注释后,会将该文件更新成最新的。
这个配置的意义在于,通过减少触发更新注释的方式,降低撤销更改重新保存后,导致被撤销内容被注释的更新所覆盖的问题 #358。
/**
* @description:
* @param t2 [my_type]
* @param str [string]
* @param str2 [string]
* @param t [my_type]
* @return [type]
*/
void test(struct my_type t2, const std::string str, const std::string str2, struct my_type t){
}
- fix: 修复 getColon 获取@没有置空的问题
- fix: 修复头部注释最后编辑人和最后编辑时间冒号使用错误的问题
- feat: customHasHeadEnd自定义语言注释,自定义取消 head、end 部分。
注意该配置只在自定义语言注释language
也配置了,才会生效
// 配置示例
"fileheader.configObj": {
// ... 其他配置
// "customHasHeadEnd": {} // 默认为空对象 默认都有head和end
// 不设置自定义配置language无效
"customHasHeadEnd": {
"js": "cancel head and function", // 头部注释和函数注释均不取消head和end - 单独设置文件 js文件后缀
"ts": "cancel function", // 函数注释不带有head和end-ts文件后缀
"python": "cancel head", // 头部注释不带有head和end
// "defaultSetting": '' // 不设置 默认所有文件都有head和end
},
}
示例:
// 配置:
"fileheader.configObj": {
"language": {
"js": {
"head": "这里无效",
"middle": "// ", // 设置中间部分即可
"end": "这里无效"
},
},
// 不设置自定义配置language无效
"customHasHeadEnd": {
"js": "cancel head and function", // 头部注释和函数注释均不取消head和end - 单独设置文件 js文件后缀
}
}
// Author : OBKoro1
// Date : 2021-03-27 18:16:43
// LastEditors : OBKoro1444
// LastEditTime : 2021-07-26 15:04:49
// FilePath : test.js
// description : 头部注释效果 需要设
// koroFileheader VSCode插件
// Copyright (c) 2021 by OBKoro1, All Rights Reserved.
// description: 函数注释效果
// param option [type]
// return [type]
function updateFillBuilderYAML(option) {}
- feat: functionBlankSpaceAll函数缩进长度控制不同文件、语言类型。
// 配置示例
"fileheader.configObj": {
// ... 其他配置
// "functionBlankSpace": 0 // 所有语言函数缩进 废弃
// "functionBlankSpaceAll": {} // 默认为空对象 默认值为0 不缩进
"functionBlankSpaceAll": {
// "js": 2, // 单独设置文件:js文件后缀 缩进两格
"python": 4, // 设置语言:python语言类型 函数注释空格缩进4格
"defaultSetting": 0 // 不设置 默认值为0
},
}
示例:
// js 不设置 默认不缩进
/**
* @description defaultSetting: 0 默认不缩进
* @param a
* @param b
* @return {*}
*/
async function test(a, ...b) {}
# py
def printinfo( arg1, **vardict ):
'''
@description: python语言类型缩进4格
@param arg1 [type]
@param vardict [object]
@return [type]
'''
- fix: vscode 自带配置 editor.codeActionsOnSave、editor.formatOnSave 的闪烁问题
- feat: cursorModeInternalAll用于根据不同的文件、语言类型来配置在函数内或者函数外添加注释。
"fileheader.configObj": {
// ... 其他配置
// "cursorModeInternal": false // 这个默认值被defaultSetting给替代了 设置了defaultSetting 不设置该值也没关系
"cursorModeInternalAll": {
"ts": true, // ts文件后缀是函数内生成函数注释
"js": false, // js文件后缀是在函数外生成函数注释
"python": true, // python语言类型文件时在函数内生成函数注释
"defaultSetting": false // 默认是在函数外生成注释
},
}
示例:
// js
/**
* @description: 未开启:注释在函数外
* @param {*} a
* @param {*} b
* @return {*}
*/
function test(a, b) {}
// ts
function test2(c: number, b: string = '2') {
/**
* @description:
* @param c [number]
* @param b [string]
* @return [type]
*/
}
- fix: 修复
functionParamsShape
的兼容问题。
- feat: 加强函数注释参数部分的自定义程度: functionParamsShape、functionTypeSymbol、typeParamOrder #328
- functionParamsShape 参数类型外面的符号
// functionParamsShape: [ "{", "}"] // 默认值
/**
* @description: type包围起来的大括号: {}
* @param {number} c
* @param {string} b
* @return {type}
*/
function test2(c: number, b: string = '2') {}
// functionParamsShape: [ "[", "]"]
/**
* @description:
* @param [number] c
* @param [string] b
* @return [type]
*/
function test2(c: number, b: string = '2') {}
- functionTypeSymbol 参数没有类型时的默认值
// "functionTypeSymbol": "*" // 默认值
/**
* @description:
* @param {*} axiosMethods
* @param {*} apiLink
* @param {*} opts
* @param {*} fileName
* @return {*}
*/
export const download = async (axiosMethods, apiLink, opts, fileName) => {}
// "functionTypeSymbol": "type"
/**
* @description:
* @param {type} axiosMethods
* @param {type} apiLink
* @param {type} opts
* @param {type} fileName
* @return {type}
*/
export const download = async (axiosMethods, apiLink, opts, fileName) => {}
- typeParamOrder 参数类型 和 参数的位置自定义
// "typeParamOrder": "type param" // 默认值
/**
* @description: 类型在前面 参数在后面
* @param {type} axiosMethods
* @param {type} apiLink
* @param {type} opts
* @param {type} fileName
* @return {type}
*/
export const download = async (axiosMethods, apiLink, opts, fileName) => {}
// "typeParamOrder": "param type"
/**
* @description: 参数在前面 类型在后面
* @param axiosMethods {type}
* @param apiLink {type}
* @param opts {type}
* @param fileName {type}
* @return {type}
*/
export const download = async (axiosMethods, apiLink, opts, fileName) => {}
- feat:
FilePath
增加单独文件 name #322。
// 配置
"fileheader.customMade": {
// 头部注释模板其他选项
"FilePath": "only file name", // 只有文件名
},
// 头部注释效果
/*
* Author : OBKoro1
* Date : 2020-07-03 14:50:17
* LastEditors : OBKoro1
* LastEditTime : 2021-06-28 11:37:25
* FilePath : function.js
* Description : FilePath没有路径只有文件名
* Copyright (c) 2021 by OBKoro1, All Rights Reserved.
*/
- fix: 修复自定义冒号和@符号使用文件后缀失效的问题 #328。
- fix: 修复 C++按照谷歌编程格式函数无法提取参数的问题 #325
- fix: 修复箭头函数 async 函数参数提取问题 #335
- fix: 修复了一个问题
- feat: 新增用户自定义缩进空格数量 #320
"fileheader.configObj": {
"functionBlankSpace": 0 // 默认不缩进
}
示例:
// "functionBlankSpace": 0
/**
* @description functionBlankSpace为0默认不缩进
* @param a
* @param b
* @return {*}
*/
async function test(a, ...b) {}
// "functionBlankSpace": 2 缩进两格
// "cursorModeInternal": true 将注释写在函数内部
async function test(a, ...b) {
/**
* @description 缩进两格 否则应该在async下面
* @param * a
* @param array b
* @return {*}
*/
}
- fix: 修复 python@符号切割自定义字段的问题#321
- feat: 新增函数参数外形自定义,参数显示更加自由,喜欢的话,就点个 Star 吧 😊~
"fileheader.configObj": {
"functionParamsShape": "normal" // 正常
// "functionParamsShape": "no bracket" // **没有方括号**
// "functionParamsShape": "no type" // 没有类型
}
示例:
/**
* @description normal
* @param {number} c
* @param {string} b
* @return {*}
*/
/**
* @description "no bracket" 没有方括号
* @param number c
* @param string b
* @return {*}
*/
/**
* @description "no type" 没有类型
* @param c
* @param b
* @return {*}
*/
function test(c: number, b: string = '2') {}
-
feat: 新增folderBlacklist 文件夹或文件名禁止自动添加头部注释 #302
插件会对地址进行切割,如果完全匹配到文件夹或者文件名字符串则禁止添加。
"fileheader.configObj": { "folderBlacklist": [ "node_modules", "文件夹或文件名禁止自动添加头部注释", // "webpack.config.js" // 可以禁止某些文件自动添加注释 ] }
-
feat: 新增openFunctionParamsCheck 用于控制开启关闭自动提取添加函数参数 #303
"fileheader.configObj": { "openFunctionParamsCheck": true // 默认开启 }
-
fix: 修复自定义语言@符号出错的问题#296
- feat: 拦截异步错误以及增加错误日志功能
- feat: 匹配 php 的类型声明, #285
- feat: 新增
@
符号在自定义信息中自动删除(custom_string_obkoro1
~custom_string_obkoro100
) - feat: 兼容
VSCode Insider
版本 - fix: 修复 c 语言添加关键字导致参数解析失败的问题 ##289
- fix: 修复获取符号未考虑文件的情况
- fix: 修复函数注释提取箭头函数参数位置错误的问题, #282
- fix: 修复无法自定义文件后缀的冒号和
@
符号的问题, #280。
- feat: 新增函数注释自定义
// 设置
"fileheader.configObj": {
"language": {
// js后缀文件
"js": {
"head": "/*",
"middle": " * @",
"end": " */",
// 函数自定义注释符号:如果有此配置 会默认使用
"functionSymbol": {
"head": "/******* ", // 统一增加几个*号
"middle": " * @",
"end": " */"
}
}
},
}
- feat: 新增
functionWideNum
函数注释等宽, 默认为 0 即关闭。 - feat: 支持
tsx
文件后缀 - fix: 支持
async
函数的参数提取
- feat: 支持
rust
语言,自动添加头部注释与函数参数识别 - feat: 支持
c
和c++
的函数参数自动提取 - feat: 支持
php
的函数参数自动提取 - fix: 修复 ts 在 class 中方法前面的 static 等字段导致的参数识别失败
- fix: 修复
go
函数注释参数提取时,提取函数签名的问题。
- fix:
specialOptions
设置FilePath
失效 - fix:
custom_string_obkoro2
~custom_string_obkoro100
设置异常
- add: 增加在函数内生成函数注释的功能,配置。
设为 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 {*}
*/
}
- 废弃
typeParam
: 函数注释默认生成 type
/**
* description: 多了{*}
* param {*}
* return {*}
*/
- fix: 修复版权声明和时间字段的 bug
- fix: 创建文件自动添加头部注释问题修复
- fix: 修复获取冒号和感叹号没有做兼容的问题
- fix: 修复自定义语言冒号未修改成数组形式的问题
- add:
js
、html
、vue
、ts
、go
、java
、python
文件后缀的函数参数自动提取。 - add: @符号
atSymbol
和冒号colon
在函数注释和头部注释中可以分别设置,现在值改为数组形式:第一个元素是头部注释的设置,第二个元素。ps: 原先字符串模式也做了兼容。 - fix: 修复 linux 文件创建时间错误的问题。
- 随机注释图案:命令行随机注释图案、快捷键默认随机图案注释
- 新增快捷键 window:
ctrl+alt+j
, mac:ctrl+cmd+j
: 快速添加图案注释。 - 功能: 所有生成头部注释的场景都会生成图案注释
- 新增
typeParam
,该选项用于控制是否需要{type}
, 默认为true
。 - 修复
specialOptions
特殊字段修改后,值为Do not edit
的情况
- 新增自动添加头部注释白名单
supportAutoLanguage
, 设置后只允许指定的文件自动添加文件头部注释。 - 新增支持语言
lua
:--[[--]]
- 新增支持输出多个自定义信息(
custom_string_obkoro1
~custom_string_obkoro100
)。 - 新增版权(
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", // 版权声明 自动替换年份
"custom_string_obkoro1": "可以输入预定的版权声明、个性签名、空行等"
}
/**
* 2020-07-03 14:50:17 // 不带Date字段的时间
* @Github: https://github.com/OBKoro1
* custom_string_obkoro1~custom_string_obkoro100都可以输出自定义信息
* @Author: OBKoro1
* Copyright 2020 OBKoro1 // 版权字段
* 可以输入预定的版权声明、个性签名、空行等 // 使用atSymbol字段可以去掉@
*/
- 修复了 linux 无法获取文件创建时间的问题,如果无法获取该值则默认设为当前时间。
- 新增草泥马、甩葱少女、全键盘、小键盘、草泥马 2 多种注释图案,查看所有注释图案。
甩葱少女
/*
* _______________#########_______________________
* ______________############_____________________
* ______________#############____________________
* _____________##__###########___________________
* ____________###__######_#####__________________
* ____________###_#######___####_________________
* ___________###__##########_####________________
* __________####__###########_####_______________
* ________#####___###########__#####_____________
* _______######___###_########___#####___________
* _______#####___###___########___######_________
* ______######___###__###########___######_______
* _____######___####_##############__######______
* ____#######__#####################_#######_____
* ____#######__##############################____
* ___#######__######_#################_#######___
* ___#######__######_######_#########___######___
* ___#######____##__######___######_____######___
* ___#######________######____#####_____#####____
* ____######________#####_____#####_____####_____
* _____#####________####______#####_____###______
* ______#####______;###________###______#________
* ________##_______####________####______________
*/
草泥马 2
/*
*
* ┏┓ ┏┓
* ┏┛┻━━━┛┻┓
* ┃ ┃
* ┃ ━ ┃
* ┃ > < ┃
* ┃ ┃
* ┃... ⌒ ... ┃
* ┃ ┃
* ┗━┓ ┏━┛
* ┃ ┃
* ┃ ┃
* ┃ ┃
* ┃ ┃ 神兽保佑
* ┃ ┃ 代码无bug
* ┃ ┃
* ┃ ┗━━━┓
* ┃ ┣┓
* ┃ ┏┛
* ┗┓┓┏━┳┓┏┛
* ┃┫┫ ┃┫┫
* ┗┻┛ ┗┻┛
*/
全键盘
/*
* ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
* │Esc│ │ F1│ F2│ F3│ F4│ │ F5│ F6│ F7│ F8│ │ F9│F10│F11│F12│ │P/S│S L│P/B│ ┌┐ ┌┐ ┌┐
* └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ └┘ └┘ └┘
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐
* │~ `│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│ BacSp │ │Ins│Hom│PUp│ │N L│ / │ * │ - │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤
* │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│ | \ │ │Del│End│PDn│ │ 7 │ 8 │ 9 │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ├───┼───┼───┤ + │
* │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│ Enter │ │ 4 │ 5 │ 6 │ │
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ ├───┼───┼───┼───┤
* │ Shift │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│ Shift │ │ ↑ │ │ 1 │ 2 │ 3 │ │
* ├─────┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤ E││
* │ Ctrl│ │Alt │ Space │ Alt│ │ │Ctrl│ │ ← │ ↓ │ → │ │ 0 │ . │←─┘│
* └─────┴────┴────┴───────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘
*/
- 设置
linux
下的注释快捷键为:ctrl+meta+i
、ctrl+meta+t
- 修复
headInsertLine
结合注释图案无效的问题。
/*
* 江城子 . 程序员之歌
*
* 十年生死两茫茫,写程序,到天亮。
* 千行代码,Bug何处藏。
* 纵使上线又怎样,朝令改,夕断肠。
*
* 领导每天新想法,天天改,日日忙。
* 相顾无言,惟有泪千行。
* 每晚灯火阑珊处,夜难寐,加班狂。
*
*
* Author : OBKoro1
* Date : 2020-04-30 15:51:08
* LastEditors : OBKoro1
* LastEditTime : 2020-05-13 13:48:01
* FilePath : \fileHead\test.js
* Description : 注释图案和头部注释结合
* https://github.com/OBKoro1
*/
- 新增使用工作区注释模板:
useWorker
, 用以区分工作区配置模板。 - 新建文件黑名单文件不再自动添加头部注释。
- 插件新增支持
dart
注释。 - 修复
CheckFileChange
diff 检查的精准度以及将FilePath
字段也加入 diff 检查。 - 修复
filePathColon
在 window 系统下的问题以及无法全部转换的问题。 - 修复包含特殊字段的变量自动转化为注释的问题。
- 修复自定义语言注释等宽失效的问题。
- 修复特殊文件自定义注释失效的问题。
- 修复更新字段问题
- 新增新建文件自动添加头部注释,默认开启,配置项为
createHeader
。 - 新增自动添加头部注释项目黑名单(
prohibitItemAutoAdd
),场景: 某些项目没有推广头部注释,然后 leader/团队成员反感这种行为时,使用该功能。 - 新增保存时更新
FilePath
, 防止因文件迁移导致路径没有更新的情况。 - 新增自定义语言注释,一次匹配多种文件, 比如 c 语言的
h/hpp/cpp/cxx/cc
统一修改。 - 新增通配符
*
, 如果设置了通配符当没有匹配到文件时,会自动使用通配符设置,目前支持headInsertLine
(第几行插入)、beforeAnnotation
(注释之前添加)、afterAnnotation
(注释之后添加) - 新增默认配置中的一些说明。
- 修复更新 LastEditors/LastEditTime 时没有开启
wideSame
, 没有限制等宽的问题. - 修复因
wideSame
功能,导致光标无法移动到Description
的 bug。
-
推荐一个新开源的插件:Auto Commit
这是一个用于 Git 自动 commit 的 VSCode 插件,它可以用来补充之前忘记提交 commit,帮助你把首页的绿色格子填满。
- 文件 diff 检查: 检测文件只变更
LastEditors
和LastEditTime
字段,将回滚该文件,减少无意义的提交。
功能配置以及说明:
"fileheader.configObj": {
"CheckFileChange": false // 默认关闭
}
使用场景:
对文件进行修改之后又撤销,但是LastEditors
和LastEditTime
已经变更了,在提交代码的时候很容易忘记恢复它,导致无意义的提交,反正我很经常遇到这个问题。
运行逻辑:
- 检测 VSCode 当前打开的文件夹的根目录是够有
.git
文件夹, 没有的话,则退出 - 获取触发保存文件的 diff,进行 diff 检查。
- 检测当只有
LastEditors
和LastEditTime
变更,其他任何变更都没有的情况下。 - 将该文件回滚到本地仓库的最新版本。
鉴于之前该功能采用pre-commit
的方案,造成过严重的 BUG,新功能的破坏性会小很多,并且文件很容易就可以恢复:
目前该功能只针对单个文件进行操作,影响范围会比较小,并且挽回方式也比较简单快捷。
假如,我是说假如,再有出现文件被回滚的情况,因为这个操作是即时的,并且在每次保存都会触发,如果误将文件回滚了,在该文件上撤销一次即可将文件内容恢复恢复。
configObj.wideSame
: 新增支持头部注释等宽, 点击查看配置,效果如下
/*
* Author : OBKoro1
* Date : 2019-09-24 20:25:33
* LastEditors : OBKoro1
* LastEditTime : 2019-12-16 21:16:08
* FilePath : /fileHead/test.js
*/
- 修复
php
文件无法自动添加注释的问题。 - 修复
shell
头部注释第一行没有对齐的问题。
- 修复
filePathColon
。 - 关闭报错信息展示,设置
showErrorMessage
为true
重新开启。
filePathColon
: 修改FilePath
的路径分隔符- 隐藏插件抛出的错误通知
-
文件超过一定行数不再自动添加头部注释(默认为 100 行)。
-
只允许文件自动添加头部注释一次:
如果某个文件曾经自动添加过头部注释,那么插件会记录该文件的路径,在这次 VsCode 编辑器关闭前,都将不再允许该文件自动添加头部注释。
有时候我们并不希望该文件自动添加头部注释,删除也没有用,它会一直手动添加,该功能就是为了用于防止这种情况的。
-
通过
showErrorMessage
抛出错误到用户界面。
- 新增
FilePath
去掉项目名称的配置 - 修复
FilePath
在 window 下的路径问题。
- 修复
FilePath
在 window 下面的问题
- 新增
FilePath
字段: 生成头部注释时,自动添加文件相对于当前项目的文件路径 - 有特殊要求的文件注释: 特殊文件头部注释, 以及配套的在注释之前/之后添加内容、指定行数前添加注释
- 支持移动光标到函数注释的
Description
上。 - 新增函数注释输出自定义信息(
custom_string_obkoro1
)。 - 修复函数注释
Date
字段默认为字段顺序问题。 - 修复自动添加注释, 插入顺序混乱的问题。
- 修复 readme 文档中的快捷键错误
- 测试
command 'extension.fileheader' not found
的问题
- 修复已知问题
-
pre-commit hooks
:对改动的文件进行 diff 检查。- 用于检测文件只有最后编辑人/最后编辑时间变更的情况下,将其恢复,并取消
commit
。 - 功能配置完整的
.git
文件夹检查,详细的控制台日志输出等。 - 配置、运行流程以及检测规则。
- 用于检测文件只有最后编辑人/最后编辑时间变更的情况下,将其恢复,并取消
-
更新最后编辑人、最后编辑时间以及自动添加注释的触发机制更改:
- 文件变更并且触发保存事件的情况下,才会触发以上事件。
- 之前是监听
vscode
保存事件,只要按command
+s
就会触发以上事件。
-
wiki 新增配置字段,方便更快速查找配置
-
使用
process.on('uncaughtException',fn)
拦截错误, 弹窗显示,方便反馈问题
-
自定义注释中的
@
和:
:允许全局修改@
和:
,和单独为某些文件修改它们,配置。 -
自动添加注释,现在改为默认打开:自动添加头部注释功能现在比较稳定,应该很多同学不知道这个能力,反正我非常喜欢用!不喜欢的话也可以这样关闭它:
"fileheader.configObj": {
"autoAdd": false, // 关闭它
}
-
破坏性修改:由于配置选项对象会被覆盖,导致默认配置不生效,将
fileheader.configObj.config
移除,并将以下三个选项移动到fileheader.configObj
中prohibitAutoAdd
:自动添加头部注释黑名单dateFormat
:时间格式化, 使用moment
的 format 方法moveCursor
:移动光标到Description
// 以前
"fileheader.configObj": {
"config": {
"prohibitAutoAdd": [
"json",
"md",
"js"
],
"moveCursor": true,
"dateFormat": "YYYY-MM-DD HH:mm:ss",
}
}
// 现在
"fileheader.configObj": {
"prohibitAutoAdd": [
"json",
"md",
"js"
],
"moveCursor": true,
"dateFormat": "YYYY-MM-DD HH:mm:ss",
}
- 修复多个换行符,导致换行不彻底的问题。
- 将 typescript 加入默认支持语言,以使用自动添加注释的功能
- 修复
xxx.component.html
匹配不到html
类型的 bug
- 修复
afterAnnotation
添加在前面的 bug
- 新增功能:自动添加头部注释黑名单:禁用特殊某些文件类型下的自动添加。
- 新增功能:时间格式化:用户可以自行设定要修改的时间格式,时间格式化使用moment库,同时
configObj.timeNoDetail
配置删除。
- 新增支持
a.sh
类型注释。 - 新增功能:在
customMade
(文件头部注释)中,遇到回车、换行情况时,自动在下一行开头添加对应的注释标识符,插件提供了一个开关来关闭它,详情。 - 新增功能:在
customMade
配置中,使用custom_string_obkoro1
属性,允许输出一段自定义的字段,配置信息。 - 修复了
---aaaa
、===aaaa
、for test
这类乱七八糟的配置,插件模板不能工作的问题。 - 修改了自定义语言匹配逻辑,匹配不到语言,将会匹配一次文件名后缀.类似这个issue提的。
- 还有一种情况是,比如
a.sh
文件,实际上,vscode 中的语言为:shellscript
不是shell
,但是用户不知道该语言的名字,导致配置无法生效,所以会在匹配不到语言的时候会再去匹配一下后缀,用户食用起来比较简单。
- 还有一种情况是,比如
- 新增afterAnnotation 配置,用于在注释后方添加配置,场景类似于issue
- 修复
Date
和LastEditTime
字段的顺序与配置中的顺序不同(总是插入到最后) - 修复自定义注释有多余空格时,无法自动更新时间的bug
- 默认在
py
文件头部注释前面增加内容去掉,有需要的自行添加。
- 文件头部注释前面增加内容,
py
文件前面一般要加两行内容,如:
#!/usr/bin/env python
# coding=UTF-8
'''
@Author: TavisD
@Date: 2017-10-16 13:03:37
@LastEditors: TavisD
@LastEditTime: 2019-01-11 12:26:24
@Description: file content
'''
- 特殊字段:
Date
、LastEditTime
、LastEditors
,允许用户自定义 。
-
新增配置autoAlready:开启了自动添加头部注释功能后,默认只给支持语言的文件自动添加头部注释。
这是非常必要的,因为发现存在一些问题,了解配置
-
插件支持根据文件后缀,头部注释插入到不同行,比如
php
:<?php // 第一行需要为`<?php`否则注释不生效 /* * @Author: OBKoro1 * @Github: https://github.com/OBKoro1 * @Date: 2018-12-21 10:49:35 * @LastEditors: OBKoro1 * @LastEditTime: 2018-12-21 13:12:37 * @Description: */ ?>
-
插件新增支持
md
后缀文件的头部注释,效果如下:<!-- * @Author: OBKoro1 * @Github: https://github.com/OBKoro1 * @Date: 2018-12-20 13:43:44 * @LastEditors: OBKoro1 * @LastEditTime: 2018-12-20 13:48:36 * @Description: -->
我平常写
markdown
比较多,可以用于记录md
的创建日期和修改日期。 -
插件支持在线修改配置中的数据,修改配置,再也不用重启 VsCode 了!
-
更新函数注释的默认配置,
msg
替换为description
,这样description
在 VsCode 中也会高亮:/** * @description: * @param {type} * @return: */
- 新增自动添加头部注释功能,再也不用担心忘记给文件添加头部注释了!前往配置了解详情.
-
新增自定义注释的符号,注释生成的样子,全部由你掌控,详情请看插件配置。
-
头部注释和函数注释现在支持中文做为注释属性了,比如:
"fileheader.cursorMode": { "Date": "Do not edit", "作者": "your name", "功能": "" }
-
函数注释新增 Date 字段,设置该字段可生成函数注释的时间
-
修复文件行数不够 20 行时,无法更新最后编辑时间的 bug
-
修复函数注释在最后一行无法生成的 bug
-
插件新增支持
vue
后缀文件的头部注释,效果如下:<!-- * @Description: * @Author: OBKoro1 * @Github: https://github.com/OBKoro1 * @Date: 2018-11-16 14:38:05 * @LastEditors: OBKoro1 * @LastEditTime: 2018-11-19 14:32:45 -->
-
插件新增支持
html
后缀文件的头部注释,效果如下:<!-- * @Description: * @Author: OBKoro1 * @Github: https://github.com/OBKoro1 * @Date: 2018-11-16 14:38:05 * @LastEditors: OBKoro1 * @LastEditTime: 2018-11-19 14:32:45 -->
-
新增WiKi,关于插件的文档都在这里!
-
插件新增支持
vb
后缀文件注释,按下快捷键检测为vb
后缀的文件,效果如下// 头部注释 ' ' @Description: ' @Author: OBKoro1 ' @Github: https://github.com/OBKoro1 ' @Date: 2018-11-08 11:09:02 ' @LastEditTime: 2018-11-08 13:49:26 ' // 函数注释 ' ' description: ' param {type} ' return: '
-
修复必须
LastEditors
和LastEditTime
字段同时存在才会更新最后编辑时间的 bug同时存在或者单独使用
LastEditors
、LastEditTime
字段都支持更新最后编辑时间和最后编辑人 -
新增支持注释格式
- 新增常见问题 readme
- 修复部分场景下最后编辑时间不更新问题
- 对单个文件连续操作,最后编辑时间与上次的最后编辑时间相差 6666 毫秒才会更新
- 支持 python 注释,按下快捷键检测为 py 后缀的文件,生成
'''
形式的文件头部注释和函数注释。 - 头部注释 Date 字段(文件创建时间)从当前时间改为文件的创建时间
- 新增在光标出添加注释功能(通常用于函数/方法注释),同样的支持用户自定义注释选项
- 修复文件头部注释的默认配置不可删除,配置顺序不可移动的问题
- 新增 mac 快捷键