OBKoro1/koro1FileHeader

项目年久失修,又有各种个性化需求,无法满足需求,生成文件头的推荐用 snippets 代替本插件

Closed this issue · 0 comments

项目年久失修,又有各种个性化需求,无法满足需求,生成文件头的推荐用 snippets 代替本插件

vscode 自带的 snippets 支持了很多语法,再与快捷键绑定设置,也可以方便生成自己的个性化的文件头

vscode-snippets 变量语法

少了自动添加的过程。但是自动添加,其实也需要配置排除一下文件后缀,每个人的排除需求又不一样。还不如自己写。

这里贴出我的global.code-snippets

  • 使用$BLOCK_COMMENT_START/$BLOCK_COMMENT_END的注释代码块语法,适配语言
  • 使用${RELATIVE_FILEPATH/[\\\\]/\\//g}得到当前文件相对项目的文件路径,并且统一路径分割符
  • 使用$CURRENT_YEAR-$CURRENT_MONTH-$CURRENT_DATE $CURRENT_HOUR:$CURRENT_MINUTE:$CURRENT_SECOND得到当前时间
  • 使用$2表示第二个等待输出位置
  • 使用$1表示第一个等待输出位置,Tab键到第二个输出位置
{
  "add file header": {
    "prefix": "adf",
    "body": [
      "$BLOCK_COMMENT_START",
      " @FilePath     : ${RELATIVE_FILEPATH/[\\\\]/\\//g} ",
      " @Date         : $CURRENT_YEAR-$CURRENT_MONTH-$CURRENT_DATE $CURRENT_HOUR:$CURRENT_MINUTE:$CURRENT_SECOND ",
      " @Author       : $2 ",
      " @Description  : $1 ",
      "$BLOCK_COMMENT_END"
    ],
    "description": "add file header"
  }
}

部分文件表现

::: code-group

<!--
 @FilePath     : packages/lwx-jsb_web/index.html 
 @Date         : 2024-04-02 01:50:26 
 @Author       : jawa0919 <jawa0919@163.com>  
 @Description  :  
-->
<!--
 @FilePath     : packages/lwx-jsb_vue/src/App.vue 
 @Date         : 2024-04-02 01:51:04 
 @Author       : jawa0919 <jawa0919@163.com>  
 @Description  :  
-->
/*
 @FilePath     : packages/lwx-jsb/src/core.ts 
 @Date         : 2024-04-02 01:49:53 
 @Author       : jawa0919 <jawa0919@163.com>  
 @Description  :  
*/
/*
 @FilePath     : packages/lwx_jsb_lib/lib/lwx_jsb_lib.dart
 @Date         : 2024-04-02 01:42:49
 @Author       : jawa0919 <jawa0919@163.com>
 @Description  :
*/
"""
 @FilePath     : packages/lwx-jsb/test.py
 @Date         : 2024-04-02 01:54:06
 @Author       : jawa0919 <jawa0919@163.com>
 @Description  :
"""

:::

主流语言分注释分 html 系列的<!--,java 系的/*,我测试了 py 的是"""。vscode 全都自动转换成功

我看有很多的issues是获取用户名的问题,那这个可以使用 ${name:default}的语法改成下面这样, 生成的 Author 会自动默认填充我的jawa0919 <jawa0919@163.com>

{
  "add file header": {
    "prefix": "adf",
    "body": [
      "$BLOCK_COMMENT_START",
      " @FilePath     : ${RELATIVE_FILEPATH/[\\\\]/\\//g} ",
      " @Date         : $CURRENT_YEAR-$CURRENT_MONTH-$CURRENT_DATE $CURRENT_HOUR:$CURRENT_MINUTE:$CURRENT_SECOND ",
      " @Author       : ${2:jawa0919 <jawa0919@163.com> } ",
      " @Description  : $1 ",
      "$BLOCK_COMMENT_END"
    ],
    "description": "add file header"
  }
}

快捷键绑定需要设置自定义,相关文件keybindings.json

[
  {
    "key": "ctrl+alt+1",
    "command": "editor.action.insertSnippet",
    "when": "editorTextFocus",
    "args": {
      "name": "add file header"
    }
  }
]

这样只需要ctrl+alt+1就可以在光标出添加注释

我的完整global.code-snippets

{
	"add file header": {
		"prefix": "adf",
		"body": [
			"$BLOCK_COMMENT_START",
			" @FilePath     : ${RELATIVE_FILEPATH/[\\\\]/\\//g} ",
			" @Date         : $CURRENT_YEAR-$CURRENT_MONTH-$CURRENT_DATE $CURRENT_HOUR:$CURRENT_MINUTE:$CURRENT_SECOND ",
			" @Author       : ${2:jawa0919 <jawa0919@163.com> } ",
			" @Description  : $1 ",
			"$BLOCK_COMMENT_END",
		],
		"description": "add file header"
	},
	"add file header keyboard": {
		"prefix": "adfkb",
		"body": [
			"$BLOCK_COMMENT_START",
			" ┌─────────────────────────────────────────────────────────────┐",
			" │┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐│",
			" ││Esc│!1 │@2 │#3 │\\$4 │%5 │^6 │&7 │*8 │(9 │)0 │_- │+= │|\\ │`~ ││",
			" │├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤│",
			" ││ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{[ │}] │ BS  ││",
			" │├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤│",
			" ││ Ctrl │ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│\" '│ Enter  ││",
			" │├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤│",
			" ││ Shift  │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│Shift │Fn ││",
			" │└─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴──┬┴───┴┬──┴┬─────┴───┘│",
			" │      │Fn │ Alt │         Space         │ Alt │Win│   HHKB   │",
			" │      └───┴─────┴───────────────────────┴─────┴───┘          │",
			" └─────────────────────────────────────────────────────────────┘",
			"$BLOCK_COMMENT_END",
		],
		"description": "add file header keyboard"
	},
	"add file header sakyamuni": {
		"prefix": "adfskm",
		"body": [
			"$BLOCK_COMMENT_START",
			"",
			"                      _oo0oo_",
			"                     o8888888o",
			"                     88\" . \"88",
			"                     (| -_- |)",
			"                     0\\  =  /0",
			"                   ___/`---'\\___",
			"                 .' \\|     |// '.",
			"                / \\\\|||  :  |||// \\",
			"               / _||||| -:- |||||- \\",
			"              |   | \\\\\\  - /// |   |",
			"              | \\_|  ''\\---/''  |_/ |",
			"              \\  .-\\__  '-'  ___/-. /",
			"            ___'. .'  /--.--\\  `. .'___",
			"         .\"\" '<  `.___\\_<|>_/___.' >' \"\".",
			"        | | :  `- \\`.;`\\\\ _ /`;.`/ - ` : | |",
			"        \\  \\ `_.   \\_ __\\ /__ _/   .-` /  /",
			"    =====`-.____`.___ \\_____/___.-`___.-'=====    ",
			"                      `=---='",
			"",
			"    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      ",
			"                                                     ",
			"",
			"$BLOCK_COMMENT_END",
		],
		"description": "add file header sakyamuni"
	},
	"todo snippet": {
		"prefix": "todo",
		"body": [
			"$LINE_COMMENT TODO $CURRENT_YEAR-$CURRENT_MONTH-$CURRENT_DATE $CURRENT_HOUR:$CURRENT_MINUTE:$CURRENT_SECOND $1"
		],
		"description": "new TODO snippet"
	},
	"fixme snippet": {
		"prefix": "fixme",
		"body": [
			"$LINE_COMMENT FIXME $CURRENT_YEAR-$CURRENT_MONTH-$CURRENT_DATE $CURRENT_HOUR:$CURRENT_MINUTE:$CURRENT_SECOND $1"
		],
		"description": "new FIXME snippet"
	},
	"console log with fliename lineNumber": {
		"scope": "javascript,typescript,javascriptreact,typescriptreact",
		"prefix": "log",
		"body": [
			"console.log($1,'$TM_FILENAME ~ $TM_LINE_NUMBER');"
		],
		"description": "console log snippet"
	},
	"debugPrint with fliename lineNumber": {
		"scope": "dart",
		"prefix": "log",
		"body": [
			"debugPrint('$1 $TM_FILENAME ~ $TM_LINE_NUMBER');"
		],
		"description": "debugPrint snippet"
	}
}