如何让VS Code在C#中保留块声明的缩进格式?
如何让VS Code在C#中保留块声明的缩进格式?
嘿,我之前在macOS上用VS Code写C#的时候也碰到过一模一样的问题!那种没加大括号的连续块语句(就像你代码里using直接连foreach、foreach又连try的写法),被自动缩进搞得乱七八糟,看着特别闹心。别担心,咱们可以通过几个简单的设置来搞定它:
调整核心格式化规则
VS Code的C#格式化全靠OmniSharp插件撑着,咱们直接改它的规则就行:- 按
Cmd + Shift + P打开命令面板,输入Open Settings (JSON)回车,打开配置文件。 - 在里面添加或修改这段配置:
这里关键就是把"omnisharp.formatting.options": { "preserveSingleLineBlocks": true, "indentSize": 4, "indentBraces": false }preserveSingleLineBlocks设为true,它会让格式化器老老实实保留你写的单行连续块结构,不会乱改缩进。indentBraces设为false是避免给大括号本身加没必要的缩进,你也可以根据自己的习惯调整这个选项。
- 按
临时锁定指定代码块格式
要是你只是某一段代码不想被自动格式化搞乱,还能用注释标记临时关闭格式化:// @formatter:off using (var scope = _db.CreateScope()) foreach (JToken evt in payload) try { List<string> lst = new List<string>() } catch (Exception ex) { _log.LogError(ex, "XYZ"); } // @formatter:on被这两行注释包起来的代码,格式化器就不会碰它了,完美保留你自己写的格式。
检查插件版本
如果上面的配置没生效,记得去扩展面板找官方的C#插件,看看是不是有更新没装——旧版本的OmniSharp偶尔会有格式化的小bug,更新完重启VS Code说不定就正常了。
内容来源于stack exchange
相关产品推荐
相关产品推荐

