mar*_*ark 12 terraform visual-studio-code
我使用 VS Code 开发 terraform 代码。我当前的 terraform 插件是:
Name: Terraform
Id: hashicorp.terraform
Description: Syntax highlighting, linting, formatting, and validation for Hashicorp's Terraform
Version: 1.4.0
Publisher: HashiCorp
VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=HashiCorp.terraform
Run Code Online (Sandbox Code Playgroud)
考虑以下代码:
output "sql_server" {
description = "A dictionary of objects containing various Azure Sql Server properties per respective location."
value = {
for k, instance in azurerm_sql_server.instance : k =>
{
resource_group_name = instance.resource_group_name
fully_qualified_domain_name = instance.fully_qualified_domain_name
name = instance.name
location = instance.location
is_primary = instance.location == var.primary_location
admin_login = instance.administrator_login
}
}
}
Run Code Online (Sandbox Code Playgroud)
我希望在保存文件时将其重新格式化:
output "sql_server" {
description = "A dictionary of objects containing various Azure Sql Server properties per respective location."
value = {
for k, instance in azurerm_sql_server.instance : k =>
{
resource_group_name = instance.resource_group_name
fully_qualified_domain_name = instance.fully_qualified_domain_name
name = instance.name
location = instance.location
is_primary = instance.location == var.primary_location
admin_login = instance.administrator_login
}
}
}
Run Code Online (Sandbox Code Playgroud)
这里发生了两件事:
网上有很多关于如何做到这一点的信息,但我一定是特别愚蠢,无法使其发挥作用,所以我想得到一个非常具体的答案,其中包含以下详细信息:
我当前的用户settings.json 文件是:
{
"workbench.startupEditor": "welcomePage",
"editor.minimap.enabled": false,
"terminal.integrated.scrollback": 1000,
"git.enableSmartCommit": true,
"editor.detectIndentation": false,
"window.zoomLevel": -1,
"diffEditor.renderSideBySide": false,
"extensions.ignoreRecommendations": false,
"workbench.colorTheme": "PowerShell ISE",
"powershell.codeFormatting.whitespaceBeforeOpenBrace": false,
"git.autofetch": true,
"terminal.integrated.rendererType": "dom",
"terraform.path": "C:\\Users\\mkharitonov\\.terraform\\terraform.exe"
}
Run Code Online (Sandbox Code Playgroud)
我的本地工作区 settings.json 文件是:
{
"git.ignoreLimitWarning": true,
"powershell.codeFormatting.openBraceOnSameLine": false,
"powershell.codeFormatting.whitespaceBeforeOpenBrace": false,
"editor.formatOnPaste": true,
"editor.formatOnSave": true
}
Run Code Online (Sandbox Code Playgroud)
jas*_*ard 12
很简单,安装 Prettier和HashiCorp Terraform制作的扩展。
如果需要,您可以进入 vscode settings.json 并添加 terraform 部分。
"[terraform]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "hashicorp.terraform",
"editor.tabSize": 2, // optionally
},
"[terraform-vars]": {
"editor.tabSize": 2 // optionally
},
Run Code Online (Sandbox Code Playgroud)
小智 5
建议 terraform 代码使用 2 个空格,而不是制表符或 4 个空格。您可能会在样式约定中看到它
配置 VS 代码:
settings.json并添加以下内容:"[terraform]": {
"editor.formatOnSave": true
}
Run Code Online (Sandbox Code Playgroud)
此后,您的所有*.tf文件将在保存时自动格式化。
macOS + VSCode 的解决方案
如果您在自动格式化方面遇到问题,可以尝试这样做:
安装 HashiCorp Terraform 插件
安装 Terraform 版本管理器:
brew install tfenv
Run Code Online (Sandbox Code Playgroud)
要求tfenv使用您的项目使用的特定版本,例如:
tfenv use 0.12.20
Run Code Online (Sandbox Code Playgroud)
在您的 中添加以下内容settings.json:
"[terraform]": {
"editor.formatOnSave": true
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31284 次 |
| 最近记录: |