簡體   English   中英

具有不同縮進大小的文件的Visual Studio 2015縮進行為

[英]Visual Studio 2015 indentation behavior for files with different indent size

我正在使用Visual Studio Enterprise 2015(RTM)和已安裝的擴展程序Productivity Power Tools 2015。

我對C#的縮進設置是智能縮進,制表符+縮進大小4,插入空格。 我在關閉大括號,分號和粘貼時啟用了自動格式化。

但是,在我的項目中,我有許多舊的代碼文件,這些代碼文件是使用縮進(空格)大小為2創建的。

namespace Foo
{
  public class Bar
  {
    public void Method()
    {
    }
  }
}

使用上面的例子,在Visual Studio 2013旗艦版,以添加代碼時Method ,它會檢測到縮進Method是6位,並在編寫代碼時對身體會不會有加4位。

同樣,在向類添加新方法時,它會在關閉大括號時修復縮進,以便與其他方法正確對齊。

namespace Foo
{
  public class Bar
  {
    public void Method()
    {
        // New line starts here
    }

    public void NewlyAdded()
    {
    } // Typing this fixes intendation
  }
}

現在在VS 2015中,這種行為已經消失。 它嚴格使用設置中定義的空間大小。 因此,當我在方法體中編寫代碼時,它會插入3 * 4 = 12個空格。 在VS 2013中鍵入右括號時,它也不會對齊方法。

namespace Foo
{
  public class Bar
  {
    public void Method()
    {
            // New line starts here   
    }

        public void NewlyAdded()
        {
        } // Typing closing brace doesn't align
  }
}

更糟糕的是,粘貼代碼或使用重構部分地格式化了周圍的代碼,完全弄亂了縮進。 在更深層次的嵌套塊中,它確實很煩人,必須修復縮進以使代碼保持可讀性。

我想避免必須格式化整個文檔並檢查這些更改到版本控制,只是為了能夠在編寫時修改代碼而不會出現縮進問題。

這是一個錯誤,還是我錯過了VS 2015中的擴展或設置?

我在dotnet / roslyn項目的相關GitHub問題中發布了同樣的問題。 https://github.com/dotnet/roslyn/issues/4351

盡管此問題至今仍未解決,但討論的結果是Microsoft不希望在roslyn的單個文件中支持混合縮進。

如GitHub問題中所述,Microsoft對此的部分答案是新的.editorconfig文件: https ://blogs.msdn.microsoft.com/visualstudio/2016/11/28/productivity-in-visual-studio-2017-rc /

因此,我根據我更新的代碼樣式重新格式化了所有遺留代碼文件,並將其檢入版本控制。 這樣,沒有縮進問題,git責備可以忽略那些空格的變化。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM