You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让VS Code在C#中保留块声明的缩进格式?

如何让VS Code在C#中保留块声明的缩进格式?

嘿,我之前在macOS上用VS Code写C#的时候也碰到过一模一样的问题!那种没加大括号的连续块语句(就像你代码里using直接连foreach、foreach又连try的写法),被自动缩进搞得乱七八糟,看着特别闹心。别担心,咱们可以通过几个简单的设置来搞定它:

  • 调整核心格式化规则
    VS Code的C#格式化全靠OmniSharp插件撑着,咱们直接改它的规则就行:

    1. 按Cmd + Shift + P打开命令面板,输入Open Settings (JSON)回车,打开配置文件。
    2. 在里面添加或修改这段配置:
      "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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 13:14:52