如何让VS Code扩展SQL Formatter正常生效?
SQL Formatter 扩展不生效排查方案
- 优先确认默认格式化器配置
你已开启保存格式化但仅prettier生效,大概率是SQL文件的默认格式化器未指定为SQL Formatter。右键SQL编辑页空白区域,选择「使用...格式化文档」→「配置默认格式化程序」,在弹出列表中选中SQL Formatter即可。
也可以直接修改settings.json,添加如下配置确保规则不被覆盖:"[sql]": { "editor.defaultFormatter": "adpyke.vscode-sql-formatter", "editor.formatOnSave": true, "sqlFormatter.keywordCase": "upper" } - 校验扩展配置生效状态
打开VS Code设置,搜索sqlFormatter.keywordCase,确认用户和工作区两个维度的配置值均为upper,避免工作区局部配置覆盖全局规则。
若你使用的是其他衍生SQL方言(比如PostgreSQL、MySQL),可额外配置sqlFormatter.dialect为对应方言,避免解析失败导致格式化不执行。 - 排除扩展冲突与运行报错
临时禁用其他已安装的SQL语法校验、格式化类扩展,重启VS Code后重试格式化,排查是否存在扩展抢占格式化权限的问题。
按下Cmd+Shift+P调出命令面板,执行「开发人员:切换开发人员工具」,查看控制台是否有SQL Formatter相关的运行报错,定位问题根源。 - 重置扩展缓存
卸载SQL Formatter扩展,完全关闭VS Code后删除扩展本地缓存目录:Mac路径为~/Library/Application Support/Code/User/globalStorage/adpyke.vscode-sql-formatter,重启VS Code后重新安装扩展再测试。
pgFormatter 扩展替代方案
如果上述排查后仍无法正常使用,可以切换到pgFormatter扩展:
- 首先在本地安装pgFormatter依赖:Mac端执行
brew install pgformatter完成安装。 - VS Code安装pgFormatter扩展后,将SQL文件默认格式化器指定为
bradymholt.pgformatter,在设置中打开pgFormatter.keywordCase并设置为UPPERCASE即可实现关键字自动转大写的需求。
内容的提问来源于stack exchange,提问作者nm12
相关产品推荐
相关产品推荐

