2015-08-20 34 views
3

我使用Visual Studio 2015年企業(RTM)與安裝的擴展生產力電動工具2015年視覺與不同的縮進大小的文件

我縮進設置爲C#是聰明的縮進,標籤+縮進大小工作室2015年壓痕行爲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個空格。它還鍵入右括號像在2013年VS

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

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

更糟糕的是,當未對齊的方法,粘貼代碼或使用周圍的代碼,完全搞亂了縮進重構部分格式。在更深的嵌套塊中,它真的變得煩人,不得不修復縮進,以便代碼保持可讀性。

我想要避免必須格式化整個文檔並檢查這些更改以進行版本控制,只是爲了能夠修改代碼而不會在寫入時發生縮進問題。

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

+1

@CodeCaster它在VS中的「文本編輯器」 - >「C#」 - >「格式化」下。 – BartoszKP

回答

0

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

儘管問題仍然存在,但討論的結果是Microsoft不想在roslyn的單個文件中支持混合縮進。

微軟的答案,這部分在GitHub的問題說是新.editorconfig文件:https://blogs.msdn.microsoft.com/visualstudio/2016/11/28/productivity-in-visual-studio-2017-rc/

由於這個原因,我去了,重新格式化根據我更新的代碼樣式的所有遺留代碼的文件,並檢查進入版本控制。這樣,就沒有縮進問題,而git blame可以忽略這些空白變化。