ここで少し検索しましたが、誰もこの質問をしていないことに驚いています。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
一応、再フォーマットしてみました。ほら、それはそれをさらに左に押しました。もう一度押すと、さらに動きました。最後に、4 回の再フォーマットの後、私のコードは次のようになります。
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
良いですが、継続する行をスペースだけでインデントしたいですか? また、必要なものを取得するために、4 回再フォーマットする必要があるのはなぜですか? さらに、上記のプロパティ定義をもう 1 つ追加しようとすると、何も整列されません。デフォルトのインデントは、ランダムに決定された数のスペースとタブ文字によって右にオフセットをカスケードすることです。
古いスタイルの継続文字を使用しても役に立ちません。どの程度の正気でもスマートなインデントを行うにはどうすればよいですか?