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