VS 2008 Code Snippet缩进

时间:2010-02-03 00:22:27

标签: visual-studio code-snippets

在VS 2008中,有一些XML代码片段看起来非常棒:)但是,我们创建的代码片段似乎没有正确缩进。例如,如果我们有以下代码:

{
   ...
   { 
   ...
       {
          InsertSnippet here.

我们得到类似的东西:

{
   ...
   { 
   ...
       {
          FirstLineofSnippet
SecondLineOfSnippet
ThirdLineOfSnippet

有没有办法让所有行保持相同的缩进?

5 个答案:

答案 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 {...}”,也许格式化程序无法处理它。