如何在Visual Studio/Visual Studio Code中生成更智能/复杂的片段?



问题:我正在寻找一种创建复杂片段的方法。在我们公司,我们有更大的功能,几乎看起来像样板,我觉得可以变得容易得多。

期望的解决方案:我想创建一些类似于片段工作的东西,但适合更复杂的代码生成。例如,请参阅以下代码,这是我们生成的典型代码:

private readonly DependencyOne dependencyOne;
private readonly DependencyTwo dependencyTwo;
public ClassName(DependencyOne dependencyOne, DependencyTwo dependencyTwo)
{
this.dependencyOne = dependencyOne;
this.dependencyTwo = dependencyTwo;
}

基本上我只想键入两个类名,然后从中生成构造函数和两个关联的字段。如果可能的话,我想将这些字段添加到代码中的正确位置,就像 IntelliSense 的快速修复自动在代码中找到正确的位置来放置字段一样。

我不能只在构造函数上方生成它的原因是,将生成一些方法,这些方法不是构造函数,因此不驻留在代码顶部。

如何实现此所需的解决方案?

VisualStudio Code 1.24的解决方案:

在 Visual Studio 代码中,可以通过创建代码段 JSON 文件来根据需要指定代码段。请参阅此文档以了解如何在 VS Code 中创建新代码段。

在 language.json 中编写以下内容,语言将是您要为其创建代码段的任何语言:

"Constructor - A unique name" : {
"prefix" : "constructor",
"body": [
"private readonly ${DependencyOne} ${dependencyOne};",
"private readonly ${DependencyTwo} ${dependencyTwo};",
"",
"public ClassName(${DependencyOne} ${dependencyOne}, ${DependencyTwo} ${dependencyTwo})",
"{",
"    this.${dependencyOne} = ${dependencyOne};",
"    this.${dependencyTwo} = ${dependencyTwo};",
"}",
],
"description": "description of what it does"
}

按照文档中的步骤操作并编写 JSON 后,您可以通过键入代码段的"前缀"constructor来使用该代码段。

在 v1.25 版本中,以下内容有效:

"Constructor and variables" : {
"prefix" : "ctor",
"body": [
"private readonly ${1/(.*)/${1:/capitalize}/} ${1:var1};",
"private readonly ${2/(.*)/${1:/capitalize}/} ${2:var2};",
"",
"public ClassName(${1/(.*)/${1:/capitalize}/} $1, ${2/(.*)/${1:/capitalize}/} $2)",
"{",
"    this.$1 = $1;",
"    this.$2 = $2;",
"}",
],
"description": "your description"
},

为此,您只需键入两个名称 - 我已经做到了,因此您键入未大写的版本,代码段将自动将类名大写。 反转这些很容易,但会有更多的代码。 输入第二个类名/var 命中选项卡后,您的代码将正确大写。您可以将"var1/var2"替换为您想要的任何内容。

最新更新