Composeのプレビューを表示しておくとアプリをビルドしなくても大体の見た目を確認できるので便利です。しかし普通に@Previewアノテーションだけつけてもプレビューは一つしか表示されません。複数のプレビューを表示したい時はPreviewParameterProviderを使うと2個以上のプレビューを表示できます。

import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.PreviewParameter

internal class AlertDialogPreviewParameterProvider : PreviewParameterProvider<AlertDialogPreviewParameterProvider.AlertDialogPreviewParameter> {
    data class AlertDialogPreviewParameter(
        val iconRes: Int?,
        val iconDescription: String?
    )

    override val values: Sequence<AlertDialogPreviewParameter>
        get() = sequenceOf(
            AlertDialogPreviewParameter(null, null),
            AlertDialogPreviewParameter(android.R.drawable.ic_delete, "iconDescription"),
        )
}

@Preview
@Composable
internal fun AlertDialogPreview(
    @PreviewParameter(AlertDialogPreviewParameterProvider::class) parameter: AlertDialogPreviewParameterProvider.AlertDialogPreviewParameter,
) =
    AlertDialog(
        iconRes = parameter.iconRes,
        iconDescription = parameter.iconDescription,
        title = "title",
        text = "text",
        dismissText = "dismissText",
        confirmText = "confirmText",
        onDismissRequest = {},
        onConfirmation = {},
    )

@Composable
fun AlertDialog(
    @DrawableRes iconRes: Int? = null,
    iconDescription: String? = null,
    title: String,
    text: String,
    confirmText: String,
    dismissText: String,
    onDismissRequest: () -> Unit,
    onConfirmation: () -> Unit,
) {
    // iconResとiconDescriptionはnullの場合に表示が異なるAlertDialog
}

これで2個以上のプレビューがAndroidStudio上に表示されます。ちなみにkoverでカバレッジを計測している場合は@Previewの関数やPreviewParameterProviderを継承しているクラスがカバレッジ対象のコードとして判定されてしまいますが、下記のような設定をbuild.gradle.ktsに記載すればカバレッジ対象から外すことができます。

koverReport {
    filters {
        excludes {
            classes(
                // PreviewParamterProviderというクラス名を除外する
                "*PreviewParameterProvider*",
            )
            // @Previewアノテーションがついている関数を除外する
            annotatedBy("androidx.compose.ui.tooling.preview.Preview")
        }
    }
}