【发布时间】:2018-12-22 12:17:17
【问题描述】:
是否有任何解决方案(设置或其他方式)强制 Visual Studio 仅自动格式化一行的前导空格,之后什么都没有?这主要是在 Visual C# 或 Visual C++ 项目中。
作为一个故意设计的例子,我想要这样的代码:
namespace Foo
{
public static class Bar
{
private static int a = 1;
public static int some_very_long_b = 2;
public static double Derp(double value)
{
if (value < a ) return 0;
else if (a > some_very_long_b) return 1;
return value;
}
}
}
自动格式化为:
namespace Foo
{
public static class Bar
{
private static int a = 1;
public static int some_very_long_b = 2;
public static double Derp(double value)
{
if (value < a ) return 0;
else if (a > some_very_long_b) return 1;
return value;
}
}
}
请特别注意,当范围正确缩进时,行的初始前导空白之后的任何间距都保持不变。
这个问题的另一种表述方式是:当自动格式设置超出自动格式设置的要求时,我可以防止自动格式与行内空格混淆吗?
如果启用了Formatting > Spacing > Set spacing for operators > Insert space before and after binary operators 设置,我可以将a+b 转换为a + b,但我希望通过某种方式使a + b 不会删除其多余的空格。
我查看了Options > Text Editor > C# > CodeStyle > Formatting,我相当确定那里的选项不提供这样的功能。我有什么遗漏吗?
【问题讨论】:
-
公平,我已从问题中删除了对 3rd 方工具的引用。
-
我在 VS 选项中看不到任何内容来指定仅格式化前导空格。如果它格式化,它将按照配置格式化所有内容。我看到的唯一选项是自动格式化(即触发格式化而不是显式命令的东西)。
标签: c# visual-studio visual-studio-2017 code-formatting