使用 ReSharper 将代码格式化为一行

Posted

技术标签:

【中文标题】使用 ReSharper 将代码格式化为一行【英文标题】:Formatting code into a single line using ReSharper 【发布时间】:2012-02-08 01:42:55 【问题描述】:

我在使用 ReSharper 格式化代码时遇到问题。

我已禁用换行选项。使用此选项,以下代码将被格式化为单行。如何让 ReSharper 不格式化以下代码?

Mapper.CreateMap<CountryEntity, Country>()
 .ForMember(dest => dest.CreatedBy, map => map.MapFrom(src => src.CreatedBy))
 .ForMember(dest => dest.DateCreated, map => map.MapFrom(src => src.DateCreated))
 .ForMember(dest => dest.Id, map => map.MapFrom(src => src.Id))
 .ForMember(dest => dest.Name, map => map.MapFrom(src => src.Name))
 .ForMember(dest => dest.CountryCodeChar2, map => map.MapFrom(src => src.CountryCodeChar2))
 .ForMember(dest => dest.CountryCodeChar3, map => map.MapFrom(src => src.CountryCodeChar3));

如果我启用换行,格式化的代码将如下所示:

Mapper.CreateMap<CountryEntity, Country>().ForMember(
  dest => dest.CreatedBy, map => map.MapFrom(src => src.CreatedBy)).ForMember(
    dest => dest.DateCreated, map => map.MapFrom(src => src.DateCreated)).ForMember(
      dest => dest.Id, map => map.MapFrom(src => src.Id)).ForMember(
        dest => dest.Name, map => map.MapFrom(src => src.Name)).ForMember(
          dest => dest.CountryCodeChar2, map => map.MapFrom(src => src.CountryCodeChar2)).ForMember(
            dest => dest.CountryCodeChar3, map => map.MapFrom(src => src.CountryCodeChar3));

这种格式也是不可取的。

【问题讨论】:

我有 Resharper 6.1.37.86,默认设置为格式化。我将 Resharper 的“清理代码...”功能与所有预设一起使用,并获得了正常行为(您在第一个示例中显示的内容)。您确定没有其他可能会导致格式混乱的 VS 扩展吗? 您的清理配置文件是否使用 C# 部分下的“重新格式化代码”选项? @chafnan 是的,我什至尝试了“完全清理”,几乎所有东西都打开了 【参考方案1】:

使用换行和换行保留现有格式保留现有换行

【讨论】:

对应的设置(对于C#)是:&lt;s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/KEEP_USER_LINEBREAKS/@EntryValue"&gt;True&lt;/s:Boolean&gt; 【参考方案2】:

确保 ReSharper → 选项代码编辑C#格式化样式换行符和 Wrapping“Wrap Long Lines” 被关闭

【讨论】:

以上是关于使用 ReSharper 将代码格式化为一行的主要内容,如果未能解决你的问题,请参考以下文章

在 Visual Studio 中将多行代码格式化为单行

如何用每行一个参数告诉 ReSharper 自动格式化

Resharper 格式化链式方法

有没有办法将 ReSharper 代码清理设置应用于 .scss (SASS) 文件?

在单元格中将日期格式化为 yyyy-mm-dd

如何仅使用货币代码将数字格式化为货币?