关于 Visual Studio 2022 ”将块保留在一行上“ 不生效的暂时的可能解决办法

Temporary possible solution for “Leave block on single line” not working in Visual Studio 2022

记录自己的暂时办法。
如果有读者有解决办法还希望能告诉我,非常感谢!!!
结论:可能是 bug,貌似还是 rider 好使?

问题现象

// 写自动属性的时候,出现问题
// 使用 prop 代码片段也是如此,在应用智能提示的时候也出现格式错误
public string Name
{
	get;	// 自动换行
	set;
}
// 我需要的正常情况
public string Name { get; set; }

甚至会对正常情况,编译器报告 IDE0055 修正。
或者在书写左大括号 ( “{” ) 时,会自动补全大括号并放到单独的新行。

描述

在网上也有一些办法,例如重置用户设置,删除用户设置,卸载重装,删除所有插件都不行。

最有趣的是,之前一直都没问题,过了几个月没有用它,后来就不行了。在此期间我也只新增过的代码工具也只有 Jetbrains Toolbox,总不能是它悄悄改了吧。

VS IDE 中,”工具“ -> ”选项“ -> ”文本编辑器“ -> ”c#“ -> ”代码样式“ -> ”格式设置“ -> ”换行“ 有明确的选项:”将块保留在一行上“。但即使选中也毫无作用。

实际上我感觉文本编辑器里的所有设置貌似都失效了,也不知道是哪里的干扰。

而且我发现中文的 IDE 选中”将块保留在一行上“后,把 IDE 的语言切换到英语,相同的内容 “Leave block on single line” 却没有被选中。(全局设置在哪里改?)


临时解决办法

  1. 手动生成 .editorconfig 文件,如下图,在【代码样式】这里点击【基于设置生成 .editorconfig 文件】。
    生成 editorconfig 文件

有意思的是,明明只是生成文件,什么都没动,只要 IDE 使用了它就没问题,但删除它立马就不行了。

.editorconfig 文件里的 csharp_preserve_single_line_blocks = true 确实有效,把值改为 false 保存后使用 prop 快捷生成的属性立马就改了我不需要的格式,改回 true 立马又变回我需要的格式了。


过程记录

  • 我在 VS 开发者社区也找到一个相似的问题,工程师将问题移到了 Github 的 issue 里,并贴出了发生错误的 .editorconfig 文件,说实话感觉和我的差不多。

后话

改用 rider 了,我看里面的代码样式貌似蛮详细,里面的格式设置是:如果在单行时,这个就蛮不错的。就是没有 Package Manager Console,学习写 EF Core 时候写命令还有点不方便。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值