配置EditorConfig允许对象初始化器与new关键字对齐
解决IDE0055格式错误的.editorconfig修改方案
IDE0055是强制代码格式匹配.editorconfig规则的诊断项,你碰到的错误是因为Resharper的格式化配置和公司.editorconfig的规则冲突了。下面是具体修改方案:
方案一:调整格式规则匹配Resharper的对齐设置
根据你说的“对象初始化器与new关键字对齐”,分三种常见场景修改:
- 场景1:初始化器大括号和new所在行对齐,成员缩进
你的.editorconfig里已经有正确配置了,试试用Resharper重新格式化代码(快捷键Ctrl+E,C),如果还是报错,检查项目里有没有嵌套的.editorconfig文件覆盖了当前设置。 - 场景2:初始化器成员和new关键字对齐(成员不缩进)
修改.editorconfig的缩进规则:
注意:这个设置会让所有代码块(比如if、for的代码块)都不再缩进,可能不符合公司代码规范,谨慎使用。csharp_indent_block_contents = false - 场景3:对象初始化器和new在同一行
修改大括号换行规则,排除对象初始化器:csharp_new_line_before_open_brace = methods, properties, control_blocks, delegates, anonymous_methods, anonymous_types
方案二:降低IDE0055的严重性(仅在公司允许时使用)
如果公司允许放宽这个规则,把IDE0055的严重性从error改成silent,这样就不会触发错误:
dotnet_diagnostic.IDE0055.severity = silent
额外建议(更稳妥)
让Resharper直接遵循.editorconfig的规则:打开VS里的Resharper设置(快捷键Alt+R,O),找到Code Editing -> C# -> Formatting Style -> General,勾选Use EditorConfig settings,这样Resharper格式化后的代码自动符合公司规范,从根源避免冲突。
内容的提问来源于stack exchange,提问作者Dirk Declercq
相关产品推荐
相关产品推荐

