应安装 HashiCorp 官方 terraform 扩展、配置 .tf/.tfvars 文件关联为 terraform 语言、设置 hashicorp.terraform 为默认格式化器、指定本地 terraform CLI 路径,并禁用冲突的第三方 HCL 扩展。

如果您在使用 vscode 编辑 Terraform 配置文件(.tf 文件)时遇到语法高亮异常、自动补全失效或格式化错误,通常是因为 HCL 语言支持未正确配置或扩展冲突。以下是解决此问题的步骤:
本文运行环境:macBook Pro,macOS Sequoia。
一、安装官方 HashiCorp 官方扩展
VSCode 默认不内置 HCL 语言支持,需通过官方扩展启用完整语法解析、资源类型提示及变量引用跳转功能。
1、打开 VSCode,点击左侧活动栏中的扩展图标(或按快捷键 Cmd+Shift+X)。
2、在搜索框中输入 HashiCorp Terraform。
3、在搜索结果中找到由 HashiCorp 官方发布的扩展,确认发布者为 HashiCorp,点击“安装”按钮。
4、安装完成后,重启 VSCode 或重新打开一个 .tf 文件以激活语言服务器。
二、配置 HCL 语言关联与默认格式化器
VSCode 需明确将 .tf 和 .tfvars 文件识别为 HCL 语言,并指定 terraform fmt 作为默认格式化 工具,否则保存时无法自动格式化。
1、按下 Cmd+, 打开设置界面,在右上角点击“打开设置(jsON)”图标。
2、在 settings.json 中添加以下配置项:
3、在 “files.associations” 下添加:“*.tf”: “terraform”, “*.tfvars”: “terraform”。
4、在 “editor.defaultFormatter” 下添加:“hashicorp.terraform”: “hashicorp.terraform”。
5、保存 settings.json 文件并关闭编辑器窗口。
三、启用本地 terraform CLI 路径绑定
VSCode 的 Terraform 扩展依赖本地 terraform 可执行文件提供语义验证与计划预览能力,若路径未指定,将无法显示资源依赖图或 plan 输出预览。
1、在终端中执行 which terraform,记录返回的完整路径(例如 /usr/local/bin/terraform)。
2、进入 VSCode 设置(Cmd+,),搜索 terraform.path。
3、在“Terraform: Path”设置项中,粘贴上一步获取的路径。
4、确保该路径下 terraform 版本不低于 1.0.0,可通过终端运行 terraform version 验证。
四、禁用冲突的语言扩展
部分第三方 HCL 或 json 扩展会劫持 .tf 文件的语言模式,导致语法高亮错乱或 lsp 功能失效,需手动排除干扰。
1、在扩展面板中搜索关键词 HCL 或 JSON。
2、逐一检查已安装扩展的描述页,识别非 HashiCorp 官方发布的 HCL 支持扩展(如“HCL Language Support”、“Better HCL”等)。
3、对每个疑似冲突扩展,点击其右侧“禁用”按钮。
4、禁用后重新打开任意 .tf 文件,观察右下角语言模式是否显示为 Terraform(而非 HCL 或 Plain Text)。