VS Code中PowerShell代码格式化规则的自定义例外配置咨询
VS Code中PowerShell代码格式化规则的自定义例外配置咨询
你遇到的这个问题我之前也帮不少开发者解答过——开启了PowerShell插件的括号内空格格式化后,双括号{{...}}被拆成带空格的{ { ... } }确实挺闹心的,尤其是写模板或者嵌套语法的时候。
目前VS Code的PowerShell插件自带的格式化配置里,powershell.codeFormatting.whitespaceInsideBrace是个全局开关,并没有直接提供针对双括号场景的例外选项,但有几个可行的解决方案:
临时绕过单处代码的格式化:如果只是个别双括号内容不想被修改,可以在对应代码行的上方添加注释
# pssuppressmessagecategory formatting,这样该行的格式化规则会被跳过。示例:# pssuppressmessagecategory formatting {{some code}}保存时这段代码就会保持
{{some code}}的格式,不会被拆分成带空格的版本。自定义PSScriptAnalyzer规则实现全局生效:如果想要全局范围内自动识别双括号并保留格式,需要自定义PSScriptAnalyzer的格式化规则。这个需要一点PowerShell脚本开发能力,大致步骤是:
- 参考PSScriptAnalyzer的自定义规则开发指南创建规则项目
- 修改
WhitespaceInsideBraces规则的逻辑,让它判断当左括号是连续两个{{时,不添加空格 - 将自定义规则模块安装到PowerShell的模块路径,再在VS Code的
settings.json中配置powershell.scriptAnalyzer.settingsPath指向你的自定义规则配置文件
替代方案:更换格式化工具:如果自定义规则太麻烦,也可以考虑用其他PowerShell格式化工具(比如
PSScriptFormatter),配置好它的自定义规则后,在VS Code中替换默认的格式化工具为你配置好的版本。
另外,你也可以在PowerShell插件的官方仓库提交功能请求,让官方考虑添加这种双括号的例外配置——毕竟这个需求在处理模板、JSON嵌套等场景下确实很实用。
内容来源于stack exchange
相关产品推荐
相关产品推荐

