如何阻止ReSharper格式化Unity中C#字段的attributes?
嘿,这个问题我太熟了!ReSharper默认的格式化逻辑确实会把同一行的多个属性挤在一起甚至折叠显示,刚好我之前也折腾过这个设置,给你一步步说怎么改:
步骤1:打开ReSharper设置
你可以用快捷键 Alt+R, S 快速调出设置面板,或者在顶部菜单找到 ReSharper → Options(如果是JetBrains Rider的话,路径是 File → Settings → Editor → Code Style → C#,核心逻辑完全一致)。
步骤2:定位到C#格式化的换行设置
在设置面板里展开 Code Editing → C# → Formatting Style → Line Breaks and Wrapping,找到 Arrangement of Attributes 这个区块,这就是控制属性排版的核心开关。
步骤3:调整关键选项
这里要改三个地方,确保你的属性和字段保持你想要的整洁格式:
- Wrap attributes:选择 Do not wrap,这样ReSharper不会把同一行的多个属性强制拆分成多行
- Maximum number of attributes on single line:把数值调大(比如设成99),允许同一行放置多个属性而不被强制换行
- Right margin (columns):在同一页面的上方区域,把这个值调得足够大(比如120或150),避免因为代码长度超过限制而被折叠显示
额外:针对Unity属性的特殊检查
如果你用的是带Unity集成的ReSharper版本,还可以去 Tools → Unity → Inspection Settings 里确认,没有开启“压缩Unity属性显示”之类的特殊选项(不过大部分情况,前面的设置就足够解决问题了)。
临时解决方案(不想改全局设置时用)
如果只是某一段代码不想被格式化,可以用ReSharper的注释指令锁定格式:
// ReSharper disable Formatting [Header("Items")] [SerializeField] private NamedAction[] items; [Space] [Header("References")] [SerializeField] private Button button; [SerializeField] private RectTransform template; [SerializeField] private RectTransform templateItem; // ReSharper restore Formatting
改完设置后点击 Save,再用快捷键 Ctrl+Alt+F 重新格式化代码,就能保持你想要的排版啦!
内容的提问来源于stack exchange,提问作者Vapid
相关产品推荐
相关产品推荐

