我正在尝试创建一些 Visual Studio 片段来减少我的工作量。
我使用快捷方式
transpos
创建了一个片段,让我只需四个选项卡即可更改 Unity 变换位置:
但是有时,您只需要更新 X 位置。有时您只需要更新 X 和 Y,但保持 Z 不变。
Var
关键字填写0
我知道理论上我可以创建当前代码片段的克隆,将其快捷方式更改为
transposX
,手动编辑代码,使其保持 y
和 z
不变,但我必须对所有 7 个代码段执行此操作变体。
是否有可能让这一切发生在一个条件
transpos
片段中?我的想法是,您选择转位片段,然后它会以一种或另一种方式询问您是否想要哪种变体(x
,y
,z
,xy
,xz
, yz
或 xyz
)。
我觉得这比编写 7 个不同的片段并将它们全部导入更容易编码。
这是我当前的代码片段:
<Snippet>
<Code Language="CSharp">
<![CDATA[$transformName$.position = new Vector3($transformName$.position.x + $varX$, $transformName$.position.y + $varY$, $transformName$.position.z + $varZ$);]]>
</Code>
<Declarations>
<Literal>
<ID>transformName</ID>
<ToolTip>Variable name of the transform.</ToolTip>
<Default>transform</Default>
</Literal>
<Literal>
<ID>varX</ID>
<ToolTip>Position X.</ToolTip>
<Default>Var</Default>
</Literal>
<Literal>
<ID>varY</ID>
<ToolTip>Position Y.</ToolTip>
<Default>Var</Default>
</Literal>
<Literal>
<ID>varZ</ID>
<ToolTip>Position Z.</ToolTip>
<Default>Var</Default>
</Literal>
</Declarations>
</Snippet>
您只需将每个 x,y,z Literal 的默认值更改为 0。
然后,如有必要,您只需按 Tab 键 3 次或输入一个变量而不是 0。
此外,值得一提的是,“new”关键字与垃圾收集相关,最佳实践是将数据缓存在临时变量中,修改它,然后将原始变量设置为该变量。 正如这里所做的:
<Snippet>
<Declarations>
<Literal>
<ID>varPos</ID>
<ToolTip>Variable name of the position.</ToolTip>
<Default>position</Default>
</Literal>
<Literal>
<ID>varT</ID>
<ToolTip>Variable name of the transform.</ToolTip>
<Default>transform</Default>
</Literal>
<Literal>
<ID>varX</ID>
<ToolTip>x position.</ToolTip>
<Default>0</Default>
</Literal>
<Literal>
<ID>varY</ID>
<ToolTip>y position.</ToolTip>
<Default>0</Default>
</Literal>
<Literal>
<ID>varZ</ID>
<ToolTip>z position.</ToolTip>
<Default>0</Default>
</Literal>
</Declarations>
<Code Language="CSharp">
<![CDATA[Vector3 $varPos$ = $varT$.position; position.x += $varX$; position.y += $varY$; position.z += $varZ$; $varT$.position = $varPos$;$end$]]>
</Code>
</Snippet>
无法使代码片段成为有条件的,但正如前面的答案中提到的,您可以更新默认值。这是我在需要多个片段的情况下使用的策略。
确定最少的片段数量,以覆盖您正在处理的内容。我尽量保持最小值不超过 4。
不要填写代码中出现的值,而是按逻辑优先顺序在每个变量的主区域上方添加注释行。然后,每个遗嘱都会显示可以按顺序接受或更改的默认值;快速通过。让生活比跳来跳去填补替换更容易。
这是一个,最初跨越多行,我在注释中添加了所有默认值。填写,相对于默认值来说很容易:
-- Create $schema$.$table$.$column$ To $targetSchema$.$targetTable$ FK
alter table [$schema$].[$table$] ...
使代码片段在不同的编辑器中保持打开状态,以根据需要调整默认值。 VS 在每次使用时重新加载代码片段,因此可以方便地更改频繁的值。
为特定场景创建 Visual Studio 替换正则表达式。我已经学习了正则表达式和 Visual Studio 的正则表达式版本以及某些情况(例如一个行项目),可以使用替换正则表达式(例如交换值)
Aval1 = Aval2
\s([\w+])[\s=)([^\s;]+)
更换
$2 = $1;
结果
Aval2 = Aval1;
括号中的所有内容都是匹配的。每场比赛都有一个替换号码。上面将匹配 1 替换为匹配 2。不匹配的内容将被丢弃。
这确实是我过去 25 年的工作方式。事实上,您正在做代码片段,这可能使您领先于 75% 的 Visual Studio 用户。欢迎来到俱乐部。