mirror of
https://github.com/apple/pkl.git
synced 2026-01-13 15:13:38 +01:00
This adds logic so that the Kotlin code generator also supports the "addGeneratedAnnotation" flag. Also: * Add Antora documentation * Adjust names (generated-annotation -> add-generated-annotation) * Adjust doc comments
85 lines
2.7 KiB
Plaintext
85 lines
2.7 KiB
Plaintext
.--indent
|
|
[%collapsible]
|
|
====
|
|
Default: `" "` (two spaces) +
|
|
Example: `"\t"` (one tab) +
|
|
The characters to use for indenting generated source code.
|
|
====
|
|
|
|
.-o, --output-dir
|
|
[%collapsible]
|
|
====
|
|
Default: (not set) +
|
|
Example: `generated/` +
|
|
The directory where generated source code is placed.
|
|
Relative paths are resolved against the working directory.
|
|
====
|
|
|
|
.--generate-spring-boot
|
|
[%collapsible]
|
|
====
|
|
Default: (not set) +
|
|
Flag that indicates to generate config classes for use with Spring Boot.
|
|
====
|
|
|
|
.--implement-serializable
|
|
[%collapsible]
|
|
====
|
|
Default: (not set) +
|
|
Flag that indicates to generate classes that implement `java.io.Serializable`.
|
|
====
|
|
|
|
.--add-generated-annotation
|
|
[%collapsible]
|
|
====
|
|
Default: (not set) +
|
|
Flag that indicates to add the `org.pkl.config.java.Generated` annotation to generated types.
|
|
====
|
|
|
|
.--rename
|
|
[%collapsible]
|
|
====
|
|
Default: (none) +
|
|
Example: `foo.=com.example.foo.` +
|
|
Allows to change default class and package names (derived from Pkl module names) in the generated code.
|
|
|
|
When you need the generated class or package names to be different from the default names derived from the Pkl module names, you can define a rename mapping, where the key is the original Pkl module name prefix, and the value is its replacement.
|
|
When you do, the generated code's `package` declarations, class names, as well as file locations, will be modified according to this mapping.
|
|
|
|
The prefixes are replaced literally, which means that dots at the end are important.
|
|
If you want to rename packages only, in most cases, you must ensure that you have an ending dot on both sides of a mapping (except for an empty mapping, if you use it), otherwise you may get unexpected results:
|
|
|
|
----
|
|
// Assuming the following arguments:
|
|
--rename com.foo.=x // Dot on the left only
|
|
--rename org.bar=y. // Dot on the right only
|
|
--rename net.baz=z // No dots
|
|
|
|
// The following renames will be made:
|
|
"com.foo.bar" -> "xbar" // Target prefix merged into the suffix
|
|
"org.bar.baz" -> "y..baz" // Double dot, invalid name
|
|
"net.baz.qux" -> "z.qux" // Looks okay, but...
|
|
"net.bazqux" -> "zqux" // ...may cut the name in the middle.
|
|
----
|
|
|
|
When computing the appropriate target name, the longest matching prefix is used:
|
|
|
|
----
|
|
// Assuming the following arguments:
|
|
--rename com.foo.Main=w.Main
|
|
--rename com.foo.=x.
|
|
--rename com.=y.
|
|
--rename =z.
|
|
|
|
// The following renames will be made:
|
|
com.foo.Main -> w.Main
|
|
com.foo.bar -> x.bar
|
|
com.baz.qux -> y.baz.qux
|
|
org.foo.bar -> z.org.foo.bar
|
|
----
|
|
|
|
Repeat this option to define multiple mappings.
|
|
Keys can be arbitrary strings, including an empty string.
|
|
Values must be valid dot-separated fully qualified class name prefixes, possibly terminated by a dot.
|
|
====
|