我使用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
请考虑以下代码:
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
}
}
}
保存文件时,我希望它被重新格式化为这样:
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
}
}
}
这里有两个步骤:
- 应用了4个空格的缩进
- 同一块中的所有赋值都被对齐
网络上有很多关于如何做到这一点的信息,但我可能太蠢了,不能使它起作用,所以我希望得到一个非常具体的答案,其中包含以下细节:
- 要使用哪个terraform插件
- 在我的settings.json文件中要写什么
我的当前用户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"
}
我的本地工作区 settings.json 文件如下:
{
"git.ignoreLimitWarning": true,
"powershell.codeFormatting.openBraceOnSameLine": false,
"powershell.codeFormatting.whitespaceBeforeOpenBrace": false,
"editor.formatOnPaste": true,
"editor.formatOnSave": true
}
terraform fmt
命令。这是一种基于自己观点的、零选项的自动格式化程序,可以带来规范化的样式。即使它使用2个空格缩进,我也不会偏离这个样式。意见领袖式的自动格式化程序有益处,可以让好的Terraform代码始终保持相同的外观。 - ydaetskcoR