vscode 如何创建自定义代码片段

这里以创建一个 php class 代码片段为例:

  1. command+shift+p 输入 snippet;
  2. 选择 Preferences: Configure User Snippets
  3. 然后输入 php 回车。

注意:步骤 3 要根据你想创建的代码片段所属文件类型进行选择,比如你想创建 java 代码片段,就需要输入 java。如果想创建不区分文件类型的全局代码片段,需要输入 glo 选择 New Globle Snippets file 之后回车。

此时编辑器打开一个 php.json 文件,修改为以下内容:

{
	// Place your snippets for php here. Each snippet is defined under a snippet name and has a prefix, body and
	// description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
	// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. Placeholders with the
	// same ids are connected.
	// Example:
	"Class File Header": {
		"prefix": "myclass",
		"body": [
			"/**",
			" * $1",
			" * ",
			" * @author whoru.S.Q <[email protected]>",
			" * @created $CURRENT_YEAR/$CURRENT_MONTH/$CURRENT_DATE $CURRENT_HOUR:$CURRENT_MINUTE:$CURRENT_SECOND",
			" */",
			"class ${2:ClassName} ${3:extends ${4:AnotherClass}} ${5:implements ${6:Interface}}",
			"{",
			"\n\t${7:public} function ${8:methodName}($9)",
			"\t{",
			"\t\t$0",
			"\t}\n",
			"}"
		],
		"description": "class with header"
	}
}

保存之后,打开一个 php 文件,输入前缀 myclass 出现快捷提示窗后回车,此时已经生成了我们自定义的代码片段结构,依次按 tab 键切换到预设的每一个位置进行更改,即可快速创建我们需要的代码。

vscode snippets

基本语法说明

  • prefix 触发快捷提示的字符串前缀
  • body 代码片段主体
    • $num 是每次按 tab 键光标移动对位置,$0 表示光标最后停留位置,不设置 $0,这光标最终位置在文件末尾;
    • ${2:默认文本} 跳转到指定位置到同时选中默认文本,方便修改;
    • $CURRENT_YEAR是引用的 snippets 内置变量,其它还有:
      • TM_FILENAME 当前文件名
      • TM_FILENAME_BASE 当前文件名,不带扩展名
      • TM_DIRECTORY 当前文件所属目录的绝对路径
      • TM_FILEPATH 当前文件的绝对路径
      • CURRENT_YEAR 当前年份
      • CURRENT_YEAR_SHORT 当前年份,最后两位数字
      • CURRENT_MONTH 当前月份数字形式,两位表示
      • CURRENT_MONTH_NAME 当前月份英文形式,如 July
      • CURRENT_MONTH_NAME_SHORT 当前月份英文缩写形式,如 Jul
      • CURRENT_DATE 当前日
      • CURRENT_DAY_NAME 当前星期,如 Monday
      • CURRENT_DAY_NAME_SHORT 当前星期缩写形式,如 Mon
      • CURRENT_HOUR 当前小时,24小时格式,两位表示
      • CURRENT_MINUTE 当前分钟,两位表示
      • CURRENT_SECOND 当前秒,两位表示
    • \n 换行
    • \t 制表符
  • description 快捷提示窗对该代码片段对描述

更多功能,请参照

猜你喜欢

转载自my.oschina.net/antsky/blog/1795073