VSCode - 自定义片段以根据选定的 C++ 声明创建多行不同的行
VSCode - custom snippet to create multiple different lines from selected C++ declaration
我有一条线:
int INTVAR;
我想突出显示这一行,运行 一个片段,它自动创建以下一组三行来代替上面的一行。
int INTVAR;
int intvar() {return INTVAR;}
void intvar(int val){INTVAR = val;}
也就是说,应该自动生成一个getter/setter变量的函数。变量名将始终为全大写字母。 getter/setter 名称应该相同,只是它们总是小写。
int
也可以是 double
、char
等
预计到达时间:
到目前为止我所拥有的tried/know:不是突出显示该行,下面的内容看起来更直接,我只需键入一次声明并自动添加 getters/setters。
"int var set get":{
"prefix": "intsetget",
"body":[
"int ${1:VARNM};",
"int ${1:/downcase}(){return ;}",
"void ${1:/downcase}(int val){ = val;}"
]
}
这 几乎 完成了工作,除了 setter 和 getter 名称的小写不起作用。
以下代码段也将处理不同的类型:
"var set get":{
"prefix": "varsetget",
"body":[
"${1:int} ${2:VARNM};",
" ${2/(.*)/${1:/downcase}/}(){return ;}",
"void ${2/(.*)/${1:/downcase}/}( val){ = val;}"
]
}
我认为这可以用选定的文本来完成,但您必须使用键绑定插入代码段,否则没有选定的文本可供代码段使用。但复制 var 名称并使用完整代码段可能更容易。
编辑
最好使用不同的变量名约定(全部大写通常表示常量)。
要支持 fMyVar
、f_myVar
、mMyVar
和 m_myVar
成员名称,您可以使用
"var set get f m_":{
"prefix": "varsetgetfm",
"body":[
"${1:int} ${2:VARNM};",
" ${2/^(?:f|m)_?([A-Za-z])(.*)|([A-Z].*)$/${1:/downcase}${3:/downcase}/}(){return ;}",
"void ${2/^(?:f|m)_?([A-Za-z])(.*)|([A-Z].*)$/${1:/downcase}${3:/downcase}/}( val){ = val;}"
]
}
我有一条线:
int INTVAR;
我想突出显示这一行,运行 一个片段,它自动创建以下一组三行来代替上面的一行。
int INTVAR;
int intvar() {return INTVAR;}
void intvar(int val){INTVAR = val;}
也就是说,应该自动生成一个getter/setter变量的函数。变量名将始终为全大写字母。 getter/setter 名称应该相同,只是它们总是小写。
int
也可以是 double
、char
等
预计到达时间:
到目前为止我所拥有的tried/know:不是突出显示该行,下面的内容看起来更直接,我只需键入一次声明并自动添加 getters/setters。
"int var set get":{
"prefix": "intsetget",
"body":[
"int ${1:VARNM};",
"int ${1:/downcase}(){return ;}",
"void ${1:/downcase}(int val){ = val;}"
]
}
这 几乎 完成了工作,除了 setter 和 getter 名称的小写不起作用。
以下代码段也将处理不同的类型:
"var set get":{
"prefix": "varsetget",
"body":[
"${1:int} ${2:VARNM};",
" ${2/(.*)/${1:/downcase}/}(){return ;}",
"void ${2/(.*)/${1:/downcase}/}( val){ = val;}"
]
}
我认为这可以用选定的文本来完成,但您必须使用键绑定插入代码段,否则没有选定的文本可供代码段使用。但复制 var 名称并使用完整代码段可能更容易。
编辑
最好使用不同的变量名约定(全部大写通常表示常量)。
要支持 fMyVar
、f_myVar
、mMyVar
和 m_myVar
成员名称,您可以使用
"var set get f m_":{
"prefix": "varsetgetfm",
"body":[
"${1:int} ${2:VARNM};",
" ${2/^(?:f|m)_?([A-Za-z])(.*)|([A-Z].*)$/${1:/downcase}${3:/downcase}/}(){return ;}",
"void ${2/^(?:f|m)_?([A-Za-z])(.*)|([A-Z].*)$/${1:/downcase}${3:/downcase}/}( val){ = val;}"
]
}