Dot-Net

有沒有辦法在文本文件中自動縮進 VB.NET 程式碼

  • June 28, 2022

我想正確縮進文本文件中包含的一些 VB.NET 程式碼。有沒有辦法做到這一點?

例如從這個開始:

Public Shared Function CanReachPage(page As String) As Boolean
Try
Using client = New WebClient()
Using stream = client.OpenRead(page)
Return True
End Using
End Using
Catch
Return False
End Try
End Function

完成這個:

Public Shared Function CanReachPage(page As String) As Boolean
   Try
       Using client = New WebClient()
           Using stream = client.OpenRead(page)
               Return True
           End Using
       End Using
   Catch
       Return False
   End Try
End Function

到目前為止,我搜尋的所有內容都將我帶到了IndentedTextWriter類,但我發現的唯一範例是手動縮進這樣的行:.NET Console TextWriter that Understandings Indent/Unndent/IndentLevel

額外的功勞:如果可能的話,我還想添加正確的間距:

例如Dim i As String="Hello"+"GoodBye" ->Dim i As String = "Hello" + "GoodBye"

如果您使用的是 Visual Studio(我目前正在查看 VS 2010;我不知道早期版本做了什麼),那麼您可以轉到 Edit->Advanced->Format Document ,它應該會處理你的縮進和間距。

請注意,這適用於 Visual Studio 理解的任何類型的文件。我經常使用這個技巧將 XML 文件格式化為清晰易讀的內容。

如果您可以使用預發佈軟體,您可以使用Roslyn

Dim parsed = Syntax.ParseCompilationUnit(text)
Dim normalized = parsed.NormalizeWhitespace()
Console.WriteLine(normalized)

引用自:https://stackoverflow.com/questions/21697838