繁体   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