Соглашения о стиле
Парсер OpenTofu предоставляет некоторую свободу в том, как располагать элементы в файлах конфигурации, однако в языке OpenTofu также есть общепринятые соглашения о стиле, которым мы рекомендуем всегда следовать, чтобы обеспечить единообразие файлов и модулей, написанных разными командами. Средства автоматического форматирования исходного кода могут применять эти соглашения автоматически.
Применить эти соглашения автоматически можно с помощью команды tofu fmt.
-
Используйте отступ в два пробела для каждого уровня вложенности.
-
Если несколько аргументов с однострочными значениями расположены на соседних строках на одном уровне вложенности, выравнивайте знаки равенства:
Блок кода ami = "abc123" instance_type = "t2.micro"
-
Если в теле блока вместе присутствуют аргументы и блоки, разместите все аргументы вверху, а вложенные блоки — ниже. Отделите аргументы от блоков одной пустой строкой.
-
Используйте пустые строки, чтобы разделять логические группы аргументов внутри блока.
-
В блоках, содержащих аргументы и «метааргументы» (как они определены семантикой языка OpenTofu), указывайте сначала метааргументы и отделяйте их от остальных аргументов одной пустой строкой. Блоки метааргументов размещайте последними и отделяйте их от остальных блоков одной пустой строкой.
Блок кода resource "aws_instance" "example" { count = 2 # meta-argument first ami = "abc123" instance_type = "t2.micro" network_interface { # ... } lifecycle { # meta-argument block last create_before_destroy = true } } -
Блоки верхнего уровня всегда следует отделять друг от друга одной пустой строкой. Вложенные блоки также следует разделять пустыми строками, за исключением случаев, когда вместе сгруппированы связанные блоки одного типа (например, несколько блоков
provisionerв ресурсе). -
Не группируйте несколько блоков одного типа вместе с блоками другого типа, если только семантика не определяет эти типы блоков как семейство. (Например,
root_block_device,ebs_block_deviceиephemeral_block_deviceвaws_instanceобразуют семейство типов блоков, описывающих блочные устройства AWS, поэтому их можно группировать вместе и чередовать.)
Copyright (c) The OpenTofu Authors
Copyright (c) 2014 HashiCorp, Inc.
Mozilla Public License, version 2.0
https://opentofu.org/docs/v1.10/language/syntax/style/