【发布时间】:2009-08-24 08:58:36
【问题描述】:
是否有一个选项如何在 Visual Studio 中的 Edit -> Advanced -> Format document 之后禁用 #if、#endif 和其他指令不缩进?
谢谢!
【问题讨论】:
标签: c# visual-studio
是否有一个选项如何在 Visual Studio 中的 Edit -> Advanced -> Format document 之后禁用 #if、#endif 和其他指令不缩进?
谢谢!
【问题讨论】:
标签: c# visual-studio
看StyleCop。
StyleCop 分析 C# 源代码以强制执行一组样式和一致性规则。它可以从 Visual Studio 内部运行或集成到 MSBuild 项目中。 StyleCop 也被集成到许多第三方开发工具中。
您甚至可以添加自定义规则:Creating Custom Rules for Microsoft Source Analyzer
希望对你有帮助。
【讨论】:
恐怕在 Visual Studio 中没有直接设置。对于 C#,这是由 Roslyn issue 12306 跟踪的,它于 2016 年年中开放,到 2021 年底仍然开放(Visual Studio 自 2015 年以来一直提供 a similar option for C/C++)。
作为替代方案,您可以尝试使用外部工具来格式化您的代码(例如AStyle)。您可以在 VS 中创建一个宏来关闭当前文件,在文件上运行外部工具并重新打开它(并且可能将光标重新定位在以前的位置),这样您就可以从 Visual 格式化您的代码工作室。
无论如何,我不确定这项任务是否值得努力......
否则,您可能会编写自己的宏来缩进当前文件中的预处理器指令在它已被 VS 格式化后,甚至无需使用外部工具(在为了获得与 VS 中完全相同的格式)。
【讨论】:
您可以将其隐藏在某个静态帮助程序类中。
internal class Helper
{
internal static bool IsDebugBuild
{
get
{
#if DEBUG
return true;
#endif
return false;
}
}
}
那么你可以像下面这样使用它:
if (Helper.IsDebugBuild)
{
...
}
【讨论】: