【问题标题】:How to make Visual Studio format dictionary initialization?如何使 Visual Studio 格式字典初始化?
【发布时间】:2012-06-04 10:00:44
【问题描述】:

所有 Visual Studio(2012 也是)不格式化以下内容:

_messageProcessor = new Dictionary<ServerDataTypes, MessageProcessor>()
{
    {ServerDataTypes.FrameData,       ProcessFrameData  }   ,
    {    ServerDataTypes.ServerStatusResult,ProcessServerStatusResult     },
    {   ServerDataTypes.PlayerMessage,    ProcessPlayerMessage},
    ....
};

如何让我的 Visual Studio 2010(或 2012)自动格式化?我需要以下结果:

_messageProcessor = new Dictionary<ServerDataTypes, MessageProcessor>()
{
    { ServerDataTypes.FrameData, ProcessFrameData },
    { ServerDataTypes.ServerStatusResult, ProcessServerStatusResult },
    { ServerDataTypes.PlayerMessage, ProcessPlayerMessage },
     ...
};

就像在新创建对象的自动属性中一样。该格式正在为此工作。但不是为了这个。那么,如何解决呢?

【问题讨论】:

  • resharper 的“代码清理”将执行与此非常相似的操作。这是一个选择吗?
  • 当我删除最后一个;用退格键然后输入;它做你想做的事。但正如我可以理解的那样,您希望使用 Format Document 命令来处理它。是真的吗?
  • @er-v 重新输入分号 format line 工具; format document formats 所有行,但这两个选项都不格式化上述文本。
  • 哦,因为我有一个磨刀器。 Clean VS 真的不行。
  • 直到 vs2013 仍然存在数组和列表初始化器的问题

标签: c# visual-studio-2010 visual-studio c#-4.0 autoformatting


【解决方案1】:

简短的回答:你不能用 VS 开箱即用。 Resharper 接近了,但它的重新格式化也不太适合这种风格。我实际上已经提交了一个请求,请这样做。

您可能会寻找其他一些扩展或开发某种宏。

【讨论】:

  • 这适用于所有集合初始化器(至少没有 Resharper)。 :( 如果您对当前问题感兴趣:github.com/dotnet/roslyn/issues/779
  • 赞成不是因为我对答案感到满意,但至少我可以停止尝试让它发挥作用。
猜你喜欢
  • 1970-01-01
  • 2011-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-29
  • 1970-01-01
  • 1970-01-01
  • 2021-12-20
相关资源
最近更新 更多