当前位置 : 主页 > 编程语言 > c语言 >

vb.net – Visual Studio的VB智能缩进和格式文件很疯狂 – 如何修复或解决?

来源:互联网 收集:自由互联 发布时间:2021-06-24
我在这里做了一点搜索,我很惊讶没有人问过这个问题.对于多行语句,Visual Studio 2010的VB智能缩进是否会被严重破坏?或者我正在做/设置错误的东西?我把它设置为4个字符的缩进与保持标
我在这里做了一点搜索,我很惊讶没有人问过这个问题.对于多行语句,Visual Studio 2010的VB智能缩进是否会被严重破坏?或者我正在做/设置错误的东西?我把它设置为4个字符的缩进与保持标签.在VB中使用自然返回键入多行语句会产生以下内容(更改属性名称以保护无辜者).

Public Sub Sub1()
    Dim foo As New MyClassA With {.FileName = "test", 
                                  .Format = MyEnumForImageFormat.jpg,
                                            .IsReallySpecial = False,
                                                        .Name = "testN",
                                                                    .SourceId = Guid.NewGuid(),
                                                                    .VariantName = "TestV",
                                                                    .Width = 800,
                                                                    .Height = 600}
End Sub

怎么会有人想这样格式化他们的代码?我想,也许我需要重新格式化(Ctrl K Ctrl D):

Public Sub Sub1()
    Dim foo As New ImageBase With {.FileName = "test",
              .Format = MyEnumForImageFormat.jpg,
                 .IsReallySpecial = False,
                    .Name = "testN",
                       .SourceId = Guid.NewGuid(),
                       .VariantName = "TestV",
                       .Width = 800,
                       .Height = 600}
End Sub

为了更好的衡量,我再次尝试重新格式化.瞧,它把它推得更远了.我再次推了它,它又动了一些.最后,经过四次重新格式化后,我的代码如下:

Public Sub Sub1()
    Dim foo As New ImageBase With {.FileName = "test",
     .Format = MyEnumForImageFormat.jpg,
     .IsReallySpecial = False,
     .Name = "testN",
     .SourceId = Guid.NewGuid(),
     .VariantName = "TestV",
     .Width = 800,
     .Height = 600}
End Sub

更好,但我们真的希望连续的线条只缩进一个空格吗?为什么我必须重新格式化四次以获得我想要的东西?最重要的是,尝试在上面添加一个属性定义并不保持任何对齐 – 默认缩进是通过随机确定的空格和制表符数量向右级联偏移.

使用旧式的延续字符没有帮助.我怎样才能有任何理智的智能缩进?

根据您选择拆分线的确切位置,您会发现自动缩进更好或更差.在你的例子中,我的风格是将开括号和第一个项目带到下一行,之后缩进将表现得更好.

Public Sub Sub1()
    Dim foo As New MyClassA With
        {.FileName = "test",
         .Format = MyEnumForImageFormat.jpg,
         .IsReallySpecial = False,
         .Name = "testN",
         .SourceId = Guid.NewGuid(),
         .VariantName = "TestV",
         .Width = 800,
         .Height = 600}
End Sub

不想假设太多,我相信多行语句中每行的缩进由前一行控制.然而,通过这种风格选择,您会发现使用自然回归添加项目以正确定位自己.将任何粘贴片段复制到不同缩进级别的目标时,这仍然会导致缩进问题,但由于返回的位置正确,我手动重置每一行并没有太多问题(重复Down,End,Delete,输入.)

类似的解决方案对于多行lambda函数很有用,但是这些函数比直线多行语句更好.正确定位开启调用会自动纠正整个例程的缩进.

这不是很好,缩进浮动:

Public Sub Sub1()
    Dim a As New Action(Sub()
                            Dim b As Double = 4.0
                            Dim c As Double = 5.0
                            Dim d As Double = b * c
                        End Sub)
End Sub

这与压头的表现很好:

Public Sub Sub1()
    Dim a As New Action(
        Sub()
            Dim b As Double = 4.0
            Dim c As Double = 5.0
            Dim d As Double = b * c
        End Sub)
End Sub

正如个人风格我更喜欢这些,其他人可能会得到相同的结果与不同的外观.

网友评论