在使用 VSCode 作为 C++ 开发工具的时候,编写头文件的时候会有大量的冗余代码,使用 Code Snippets 中的 transform 可以大幅提高该过程的效率,于是这里总结一些 VSCode 中一些开发常用的 Code Snippets 常用的笔记

动态变量 Dynamic Variables

使用动态变量可

    "File Header": {"prefix": "hdr","body": ["/**"," * @file ${1:${TM_FILENAME}}"," * @author ${2:YourName}"," * @date $CURRENT_YEAR-$CURRENT_MONTH-$CURRENT_DATE"," * @brief $0"," */"],"description": "Insert file header"}

Transform

根据文件名生成默认的 Header 模板

	"Godot Cpp Header": {"scope": "cpp","prefix": "gdcpp header","body": ["#ifndef ${TM_FILENAME_BASE/(.*)/${1:/upcase}/}_H","#define ${TM_FILENAME_BASE/(.*)/${1:/upcase}/}_H","","#include \"scene/main/node.h\"","","class ${TM_FILENAME_BASE/(^|_)([a-z])/${2:/upcase}/g} : public Node {","    GDCLASS(${TM_FILENAME_BASE/(^|_)([a-z])/${2:/upcase}/g}, Node);","public:","    ${TM_FILENAME_BASE/(^|_)([a-z])/${2:/upcase}/g}();","    ~${TM_FILENAME_BASE/(^|_)([a-z])/${2:/upcase}/g}();","$0","};","#endif // ${TM_FILENAME_BASE/(.*)/${1:/upcase}/}_H"],"description": "根据文件名生成 Godot Class 默认的 Header 模板"},

解析

${TM_FILENAME_BASE/(^|_)([a-z])/${2:/upcase}/g}(^|_):匹配行首或下划线(但不用于替换)([a-z]):捕获紧跟在行首或下划线后的小写字母(这是我们想要大写的部分)|\\.*:或者匹配从第一个 . 开始到结尾的所有内容(如 .h),目的是忽略扩展名
替换部分:${2:/upcase}
只保留第 2 个捕获组(即字母),并用 /upcase 将其转为大写
未匹配的部分(如下划线、扩展名)被丢弃

TS 中生成 PascalCase 类名

    "Class from filename": {"prefix": "cls","body": ["class ${TM_FILENAME/(.*)\\..+/${1:/capitalize}/} {","\tconstructor() {","\t\t$0","\t}","}"]}

TS 中快速添加 try-catch 包裹代码

    "Wrap in try-catch": {"prefix": "try","body": ["try {","\t$TM_SELECTED_TEXT","} catch (${1:err}) {","\tconsole.error($1);","\t$0","}"]}

选中代码 → 输入 try → 自动包裹。

自动生成 Code Snippets

在插件中搜索 Snippet Generator,并安装 wenfangdu.snippet-generator 该插件

Snippets 文件同步

个人片段

  1. 在 VSCode 中登录个人微软账号,Ctrl+Shift+P 输入 Settings Sync: Configure 并勾选 snippets 选择
  2. 立即同步:Ctrl+Shift+P 输入 Settings Sync: Sync Now

项目片段

.vscode/ 下创建 snippets/ 目录,该项目中的代码片段利于团队共享

参考

  • https://code.visualstudio.com/docs/editing/userdefinedsnippets#_transform-examples

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/935627.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!