在VS 2008中,有一些XML代码片段看起来非常棒:)但是,我们创建的代码片段似乎没有正确缩进。例如,如果我们有以下代码:
{
...
{
...
{
InsertSnippet here.
我们得到类似的东西:
{
...
{
...
{
FirstLineofSnippet
SecondLineOfSnippet
ThirdLineOfSnippet
有没有办法让所有行保持相同的缩进?
答案 0 :(得分:4)
这通常表示您插入的代码在语义上不正确 - 在插入时,而不是在您填写代码段值时。
为了防止这种情况,您可以使用代码段中的默认值来使剪切的syntactivaly正确无误。例如。声明函数的参数列表:
<Literal Editable="true">
<ID>methodArguments</ID>
<ToolTip>methodArguments</ToolTip>
<Default>params object[] args</Default>
<Function>
</Function>
</Literal>
<Default>
元素提供声明。因此,在声明功能的片段中使用此功能将导致此问题:
public void FunctionName(params object[] args) { }
然后它允许你用你需要的任何参数声明替换params object[] args
。
答案 1 :(得分:0)
粘贴第一行而不缩进,然后选择块和制表符,直到您将整个块放到所需的缩进处。您看到的AFAIK是标准行为,它发生的原因是您粘贴的位置没有缩进到您想要的位置。
答案 2 :(得分:0)
我的unit test snippet似乎正确缩进。这可能是由于代码被包装在CDATA块中。一旦将块添加到代码中,VisualStudio也会自动格式化块。你的代码片段是否与结束代码一样多?如果两者匹配,并且片段插入有效/可编辑位置,则应自动格式化。
答案 3 :(得分:0)
尝试在Insert spaces
&gt;中从Keep tabs
切换到Tools
{{1st}}&gt; Options
&gt; TextEditor
&gt; C#
,它对我有用。
答案 4 :(得分:0)
似乎Visual Studio在插入的行上执行自动格式化。我的代码段也没有正确格式化(即缩进),既不是通过代码段插入,也不是通过手动格式(Ctrl-K-F)。它包含“delegate {...}”,也许格式化程序无法处理它。