blob: 86547b11775c971e85c0b4cf2087a2eb01150154 [file] [log] [blame] [view] [edit]
Code Block Format Strings
=========================
Code blocks may specify the values for their placeholders in a few ways. Only one style may be used
for each operation on a code block.
## Relative Arguments
Pass an argument value for each placeholder in the format string to `CodeBlock.add()`. In each
example, we generate code to say "I ate 3 tacos"
```kotlin
CodeBlock.builder().add("I ate %L %L", 3, "tacos")
```
## Positional Arguments
Place an integer index (1-based) before the placeholder in the format string to specify which
argument to use.
```kotlin
CodeBlock.builder().add("I ate %2L %1L", "tacos", 3)
```
## Named Arguments
Use the syntax `%argumentName:X` where `X` is the format character and call `CodeBlock.addNamed()`
with a map containing all argument keys in the format string. Argument names use characters in
`a-z`, `A-Z`, `0-9`, and `_`, and must start with a lowercase character.
```kotlin
val map = LinkedHashMap<String, Any>()
map += "food" to "tacos"
map += "count" to 3
CodeBlock.builder().addNamed("I ate %count:L %food:L", map)
```