VS 2008代码片段缩进

5
在VS 2008中,有一些XML代码片段看起来非常棒 :) 然而,我们创建的片段似乎无法正确缩进。例如,如果我们有以下代码:
{
   ...
   { 
   ...
       {
          InsertSnippet here.

我们会得到类似这样的东西:
{
   ...
   { 
   ...
       {
          FirstLineofSnippet
SecondLineOfSnippet
ThirdLineOfSnippet

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

4
Ctrl-K, D 就能搞定 =) - Rubens Farias
@Rubens - 没有人有更好的想法,所以如果你回答正确,我会给你信用。 - Daniel
让我们再保留几天,你可以在几天后创建一个赏金,也许会有其他人出现并提出想法。 - Rubens Farias
5个回答

4

这通常意味着您插入的代码在插入时语义上不正确,而不是在填充片段值时才出现问题。

为了防止这种情况发生,您可以在片段中使用默认值,使片段在语法上正确。例如,声明函数参数列表:

<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为您需要的任何参数声明。


0

将第一行粘贴到没有缩进的位置,然后选择整个块并按Tab键,直到整个块缩进到您想要的位置。据我所知,您看到的是标准行为,因为您从中粘贴的位置没有缩进到您想要的程度。


0

我的单元测试片段似乎缩进正确。这可能是由于代码被包裹在CDATA块中。VisualStudio也倾向于自动格式化块,一旦它被添加到代码中。您的片段是否有与关闭括号相同数量的打开括号?如果两者匹配,并且片段被插入到有效/可编译的位置,则应该自动格式化。


0

尝试在工具>选项>文本编辑器>C#>制表符中从插入空格切换到保留制表符,这对我有用。


0

看起来 Visual Studio 对插入的行进行了自动格式化。我的片段没有正确格式化(即缩进),无论是通过片段插入还是手动格式化(Ctrl-K-F)。它包含“delegate {...}”,可能格式化程序无法处理。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接