Skip to content

Commit eb91f48

Browse files
committed
Cleanup processor to remove preview param support
1 parent 1ea5dbe commit eb91f48

File tree

8 files changed

+34
-276
lines changed

8 files changed

+34
-276
lines changed

buildSrc/build.gradle

Lines changed: 0 additions & 9 deletions
This file was deleted.

buildSrc/settings.gradle

Lines changed: 0 additions & 9 deletions
This file was deleted.

gradle/aarAsJar.gradle

Lines changed: 0 additions & 114 deletions
This file was deleted.

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ bytebuddy = "1.14.19"
66
coroutines = "1.8.1"
77
javaTarget = "11"
88
kotlin = "2.0.10"
9-
kotlinPoet = "1.16.0"
9+
kotlinPoet = "1.18.1"
1010
ksp = "2.0.10-1.0.24"
1111
layoutlib = "14.0.9"
1212
moshi = "1.15.1"

paparazzi-annotations/build.gradle

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,2 @@
11
apply plugin: 'org.jetbrains.kotlin.jvm'
22
apply plugin: 'com.vanniktech.maven.publish'
3-
apply plugin: 'aar2jar'
4-
5-
aar2jar.configureForConfiguration("compileOnly")
6-
7-
dependencies {
8-
compileOnlyAarAsJar libs.compose.runtime
9-
}

paparazzi-annotations/src/main/java/app/cash/paparazzi/annotations/PaparazziPreviewData.kt

Lines changed: 0 additions & 24 deletions
This file was deleted.

paparazzi-preview-processor/src/main/java/app/cash/paparazzi/preview/processor/PaparazziPoet.kt

Lines changed: 32 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,23 @@ internal object PaparazziPoet {
1919
emptyList()
2020
} else {
2121
listOf(
22-
buildAnnotationsFile("paparazziPreviews", functions, env)
22+
buildAnnotationsFile(
23+
fileName = "PaparazziPreviews",
24+
propertyName = "paparazziPreviews",
25+
functions = functions,
26+
env = env
27+
)
2328
)
2429
}
2530

2631
@Suppress("SameParameterValue")
2732
private fun buildAnnotationsFile(
33+
fileName: String,
2834
propertyName: String,
2935
functions: Sequence<KSFunctionDeclaration>,
3036
env: EnvironmentOptions
3137
) =
32-
FileSpec.scriptBuilder(propertyName, env.namespace)
38+
FileSpec.scriptBuilder(fileName, env.namespace)
3339
.addCode(
3440
buildCodeBlock {
3541
addStatement("internal val %L = listOf<%L.PaparazziPreviewData>(", propertyName, PACKAGE_NAME)
@@ -38,28 +44,30 @@ internal object PaparazziPoet {
3844
if (functions.count() == 0) {
3945
addEmpty()
4046
} else {
41-
functions.process { func, preview, previewParam ->
42-
val visibilityCheck = checkVisibility(func, previewParam)
47+
functions.process { func, previewParam ->
48+
val visibilityCheck = checkVisibility(func)
4349
val snapshotName = func.snapshotName(env)
4450

4551
when {
4652
visibilityCheck.isPrivate -> addError(
4753
visibilityCheck = visibilityCheck,
4854
function = func,
4955
snapshotName = snapshotName,
50-
preview = preview,
51-
previewParam = previewParam
56+
buildErrorMessage = {
57+
"$it is private. Make it internal or public to generate a snapshot."
58+
}
5259
)
53-
previewParam != null -> addProvider(
60+
previewParam != null -> addError(
61+
visibilityCheck = visibilityCheck,
5462
function = func,
5563
snapshotName = snapshotName,
56-
preview = preview,
57-
previewParam = previewParam
64+
buildErrorMessage = {
65+
"$it preview uses PreviewParameters which aren't currently supported."
66+
}
5867
)
5968
else -> addDefault(
6069
function = func,
61-
snapshotName = snapshotName,
62-
preview = preview
70+
snapshotName = snapshotName
6371
)
6472
}
6573
}
@@ -76,102 +84,56 @@ internal object PaparazziPoet {
7684
}
7785

7886
private fun Sequence<KSFunctionDeclaration>.process(
79-
block: (KSFunctionDeclaration, PreviewModel, KSValueParameter?) -> Unit
87+
block: (KSFunctionDeclaration, KSValueParameter?) -> Unit
8088
) =
8189
flatMap { func ->
8290
val previewParam = func.previewParam()
8391
func.findDistinctPreviews()
84-
.map { Triple(func, it, previewParam) }
85-
}.forEach { (func, preview, previewParam) ->
86-
block(func, preview, previewParam)
92+
.map { Pair(func, previewParam) }
93+
}.forEach { (func, previewParam) ->
94+
block(func, previewParam)
8795
}
8896

8997
private fun CodeBlock.Builder.addError(
9098
visibilityCheck: VisibilityCheck,
9199
function: KSFunctionDeclaration,
92100
snapshotName: String,
93-
preview: PreviewModel,
94-
previewParam: KSValueParameter?
101+
buildErrorMessage: (String?) -> String
95102
) {
96103
val qualifiedName = if (visibilityCheck.isFunctionPrivate) {
97104
function.qualifiedName?.asString()
98105
} else {
99-
previewParam?.previewParamProvider()?.qualifiedName?.asString()
106+
null
100107
}
101108

102109
addStatement("%L.PaparazziPreviewData.Error(", PACKAGE_NAME)
103110
indent()
104111
addStatement("snapshotName = %S,", snapshotName)
105-
addStatement("message = %S,", "$qualifiedName is private. Make it internal or public to generate a snapshot.")
106-
addPreviewData(preview)
112+
addStatement("message = %S,", buildErrorMessage(qualifiedName))
107113
unindent()
108114
addStatement("),")
109115
}
110116

111117
private fun CodeBlock.Builder.addProvider(
112118
function: KSFunctionDeclaration,
113-
snapshotName: String,
114-
preview: PreviewModel,
115-
previewParam: KSValueParameter
119+
snapshotName: String
116120
) {
117121
addStatement("%L.PaparazziPreviewData.Provider(", PACKAGE_NAME)
118122
indent()
119123
addStatement("snapshotName = %S,", snapshotName)
120124
addStatement("composable = { %L(it) },", function.qualifiedName?.asString())
121-
addPreviewParameterData(previewParam)
122-
addPreviewData(preview)
123125
unindent()
124126
addStatement("),")
125127
}
126128

127129
private fun CodeBlock.Builder.addDefault(
128130
function: KSFunctionDeclaration,
129-
snapshotName: String,
130-
preview: PreviewModel
131+
snapshotName: String
131132
) {
132133
addStatement("%L.PaparazziPreviewData.Default(", PACKAGE_NAME)
133134
indent()
134135
addStatement("snapshotName = %S,", snapshotName)
135136
addStatement("composable = { %L() },", function.qualifiedName?.asString())
136-
addPreviewData(preview)
137-
unindent()
138-
addStatement("),")
139-
}
140-
141-
private fun CodeBlock.Builder.addPreviewData(preview: PreviewModel) {
142-
addStatement("preview = %L.PreviewData(", PACKAGE_NAME)
143-
indent()
144-
145-
preview.fontScale.takeIf { it != 1f }
146-
?.let { addStatement("fontScale = %Lf,", it) }
147-
148-
preview.device.takeIf { it.isNotEmpty() }
149-
?.let { addStatement("device = %S,", it) }
150-
151-
preview.widthDp.takeIf { it > -1 }
152-
?.let { addStatement("widthDp = %L,", it) }
153-
154-
preview.heightDp.takeIf { it > -1 }
155-
?.let { addStatement("heightDp = %L,", it) }
156-
157-
preview.uiMode.takeIf { it != 0 }
158-
?.let { addStatement("uiMode = %L,", it) }
159-
160-
preview.locale.takeIf { it.isNotEmpty() }
161-
?.let { addStatement("locale = %S,", it) }
162-
163-
preview.backgroundColor.takeIf { it != 0L && preview.showBackground }
164-
?.let { addStatement("backgroundColor = %S", it.toString(16)) }
165-
166-
unindent()
167-
addStatement("),")
168-
}
169-
170-
private fun CodeBlock.Builder.addPreviewParameterData(previewParam: KSValueParameter) {
171-
addStatement("previewParameter = %L.PreviewParameterData(", PACKAGE_NAME)
172-
indent()
173-
addStatement("name = %S,", previewParam.name?.asString())
174-
addStatement("values = %L().values,", previewParam.previewParamProvider().qualifiedName?.asString())
175137
unindent()
176138
addStatement("),")
177139
}
@@ -187,17 +149,14 @@ internal object PaparazziPoet {
187149
}.joinToString("_")
188150

189151
private fun checkVisibility(
190-
function: KSFunctionDeclaration,
191-
previewParam: KSValueParameter?
152+
function: KSFunctionDeclaration
192153
) = VisibilityCheck(
193-
isFunctionPrivate = function.getVisibility() == Visibility.PRIVATE,
194-
isPreviewParamProviderPrivate = previewParam?.previewParamProvider()?.getVisibility() == Visibility.PRIVATE
154+
isFunctionPrivate = function.getVisibility() == Visibility.PRIVATE
195155
)
196156
}
197157

198158
internal data class VisibilityCheck(
199-
val isFunctionPrivate: Boolean,
200-
val isPreviewParamProviderPrivate: Boolean
159+
val isFunctionPrivate: Boolean
201160
) {
202-
val isPrivate = isFunctionPrivate || isPreviewParamProviderPrivate
161+
val isPrivate = isFunctionPrivate
203162
}

0 commit comments

Comments
 (0)