[英]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.