如何通过 HashiCorp Terraform 插件在 VSCode 上使用 tflint?

lip*_*sum 8 terraform visual-studio-code

我尝试在 VSCode 上使用 tflint,但无法正确配置它。
在我的终端上, 和terraformtflint运行良好。

terraform --version
Terraform v0.12.28

tflint --version
TFLint version 0.17.0

which tflint
/usr/local/bin/tflint
Run Code Online (Sandbox Code Playgroud)

但在 VSCode 上,linting 不起作用。
我已经安装了 HashiCorp Terraform 插件 v2.0.2,并启用了 terraform 语言服务器。现在我检查了我的setting.json. 网上很多文章说可以在terraform.lintPathfield上配置,但是没有这样的字段。

{
  "editor.tabSize": 2,
  "editor.formatOnSave": true,
  "terraform.languageServer": {},
}
Run Code Online (Sandbox Code Playgroud)

我尝试添加terraform.lintPathinside 或 Outside terraform.languageServer,但失败了。有什么方法可以检查 VSCode 可以引用的路径吗?

yda*_*coR 15

tflint自 v2.0 起,Visual Studio Code 的 Terraform 插件不再支持。

您可以在每个版本的自述文件中看到支持的功能的差异。v1.4.0版本显示了以下功能:

  • 自动完成支持
    1. Terraform高级类型(variable, resource, data, module ...)自动完成支持。
    2. resource类型自动(aws_dynamodb_table ...)完成支持awsazuredatadoggoogleociopenstack
    3. resource | data | module | output | variable属性类型自动完成支持
    4. resource | data1 级嵌套块属性类型自动完成支持
  • .tf.tfvars文件 (and .hcl)的语法突出显示
  • 自动格式化使用terraform fmt
  • 自动关闭大括号和引号
  • 添加运行命令terraform validate
  • 在tflint的帮助下进行 Linting 支持
  • 浏览文档符号
  • 浏览工作区符号
  • 查看定义
  • 转到定义
  • 查找参考资料
  • 变量和输出的完成
  • 重命名变量、资源、数据类型以及所有引用
  • 悬停时显示变量值
  • CodeLens 显示某个部分是否被引用

虽然v2 版本显示了以下功能:

  • 管理Terraform 语言服务器 (terraform-ls)的安装和更新,公开其功能:
    • 初始化提供者完成(资源名称、数据源名称、属性名称)
  • 包括.tf.tfvars文件 (and .hcl) 的语法突出显示 - 包括 Terraform 0.12 新增的所有语法更改
  • 关闭大括号和引号
  • 包括for_each语法variable快捷方式 ( fore, vare, varm)

跟踪重新添加支持时出现问题tflint,但尚未对此进行任何工作。